Skinsrc Query string and iFinity

Oct 22, 2009 at 9:00 AM

I have been batling for months with ecommerce systems. Finally had a look at NB_Store. Looks good, and what I like about it is it can be customised, if one had the time to play with the source.
My biggest problem with NB_Store, David help please, is that it does not work with iFinity URL Rewriter.
Trying to add a product, category, or anything via the back office module just gives me a 404 error.
This because the module uses a query string to set the store skin
Problem is that this is not constant.
Eg. When accessing any submenu on the back Office module we get the query string to look like this:
SkinSrc=%2fDesktopModules%2fNB_Store%2fSkins%2fStoreAdmin%2fNB_StoreAdmin
This works, but try to add a product, category etc and you get a query string that looks like this:
SkinSrc=/DesktopModules/NB_Store/Skins/StoreAdmin/NB_StoreAdmin
This gives me a 404 error
Why the difference.
If David or somebody can help me solve this or fix it, I'd be eternally grateful.

Oct 22, 2009 at 1:08 PM

Robert,  I did some looking at the code (I have worked with an older version -- 01.01.05).  There appears to be two places where the SkinSrc is assembled.  In the code for the backoffice menu (BackOfficeMenu.ascx -> Page_Load) and in a base class that is used for all the admin screens (BaseAdminModule.vb -> EditUrl overload).

In the backoffice menu, the value assigned to the query string parameter is encoded using the QueryStringEncode() function but in BaseAdminModule.vb it is not encoded.  Assuming you want all instances encoded I believe all that is necessary is to change the functions in BaseAdminModule.vb to encode the value assigned using the QueryStringEncode() function.  I tried this quickly on my 01.01.05 development portal and it seems to work.  Note that I did not do any extensive testing, just a quick check to see that the screens on the BackOffice menu still work -- they do.

example:

In BaseAdminModule.vb change all occurances of

SkinSrc = Request.QueryString("SkinSrc")

to

SkinSrc = QueryStringEncode(Request.QueryString("SkinSrc"))

David... If I am incorrect please correct me.  If this scenario is still present in the current version may I suggest it be changed so that all use of the query string parameter "SkinSrc" is consistant.

Coordinator
Oct 24, 2009 at 3:54 PM

I'm not in the office at the moment, so I can;t check.  But this look like a good solution.  The Skinsrc is simply a display thing so I can't see any major effects from doing this.....Although I oces had an issue with the DNN paging control and Skinsrc...so you may want to test the paging stuff well.

If that's all OK, please let me know and I'll look at adding this code to the NB_Sore code base.

Regards,

Dave.