<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BenEskew.com &#187; Web Development</title>
	<atom:link href="http://www.beneskew.com/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.beneskew.com</link>
	<description>Just another web developer&#039;s personal weblog.</description>
	<lastBuildDate>Sat, 28 Aug 2010 22:39:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Have A Copy of New User Welcome Message Sent to You (ASPDotNetStoreFront)</title>
		<link>http://www.beneskew.com/2010/08/have-a-copy-of-new-user-welcome-message-sent-to-you-aspdotnetstorefront/</link>
		<comments>http://www.beneskew.com/2010/08/have-a-copy-of-new-user-welcome-message-sent-to-you-aspdotnetstorefront/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 01:38:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[AspDotNetStorefront]]></category>
		<category><![CDATA[AspDotNetStorefront Mods]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[ECommerce CMS Mods]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=219</guid>
		<description><![CDATA[ASPDNSF Version: 9 (C# + MS SQL) If you would like to have a copy of the new user welcome email message sent to you whenever a new user signsup to your shop, well you'd assume they would have this feature in the system already...but that's not the case. This feature is currently lacking in [...]]]></description>
			<content:encoded><![CDATA[<p>ASPDNSF Version: 9 (C# + MS SQL)</p>
<p>If you would like to have a copy of the new user welcome email message sent to you whenever a new user signsup to your shop, well you'd assume they would have this feature in the system already...but that's not the case. This feature is currently lacking in AspDotNetStorefront as of version 9 (ML).</p>
<p>No fear, Ben is here!</p>
<p>To enable this feature it will take a bit of C# work and some tinkering.</p>
<p>First, open up createaccount.aspx.cs using your favorite text editor. Then find the lines of code where the welcome message is sent to the new user...</p>
<p><code><br />
if (AppLogic.AppConfigBool("SendWelcomeEmail") &#038;& EMailField.IndexOf("@") != -1)<br />
{<br />
    // don't let a simple welcome stop checkout!<br />
    try<br />
    {<br />
        string body = AppLogic.RunXmlPackage(...<br />
</code></p>
<p>Now, add the following code after the try and catch...</p>
<p><code><br />
try{<br />
    string body = AppLogic.RunXmlPackage(AppLogic.AppConfig("XmlPackage.WelcomeEmail"),<br />
    null,<br />
    ThisCustomer,<br />
    this.SkinID,<br />
    "",<br />
    "fullname=" + ctrlAccount.FirstName.Trim() + " " + ctrlAccount.LastName.Trim(),<br />
    false,<br />
    false,<br />
    this.EntityHelpers);<br />
    AppLogic.SendMail(AppLogic.GetString("createaccount.aspx.79", ThisCustomer.SkinID, ThisCustomer.LocaleSetting),<br />
    body,<br />
    true,<br />
    AppLogic.AppConfig("MailMe_FromAddress"),<br />
    AppLogic.AppConfig("MailMe_FromName"),<br />
    <b>"youremail@yourdomain.com"</b>,<br />
    ctrlAccount.FirstName.Trim() + " " + ctrlAccount.LastName.Trim(),<br />
    "",<br />
    AppLogic.MailServer());<br />
}catch{}<br />
</code></p>
<p>...being sure to change "youremail@yourdomain.com" to the email address where you want to receive the notifications.</p>
<p>Example:<br />
<code><br />
if (AppLogic.AppConfigBool("SendWelcomeEmail") &#038;& EMailField.IndexOf("@") != -1)<br />
{<br />
    // don't let a simple welcome stop checkout!<br />
    try<br />
    {<br />
        string body = AppLogic.RunXmlPackage(AppLogic.AppConfig("XmlPackage.WelcomeEmail"),<br />
        null,<br />
        ThisCustomer,<br />
        this.SkinID,<br />
        "",<br />
        "fullname=" + ctrlAccount.FirstName.Trim() + " " + ctrlAccount.LastName.Trim(),<br />
        false,<br />
        false,<br />
        this.EntityHelpers);<br />
        AppLogic.SendMail(AppLogic.GetString("createaccount.aspx.79", ThisCustomer.SkinID, ThisCustomer.LocaleSetting),<br />
        body,<br />
        true,<br />
        AppLogic.AppConfig("MailMe_FromAddress"),<br />
        AppLogic.AppConfig("MailMe_FromName"),<br />
        EMailField,<br />
        ctrlAccount.FirstName.Trim() + " " + ctrlAccount.LastName.Trim(),<br />
        "",<br />
        AppLogic.MailServer());<br />
    }<br />
    catch { }<br />
    <b>// below added by Benjamin Eskew (Aug 25, 2010)<br />
    try{<br />
        string body = AppLogic.RunXmlPackage(AppLogic.AppConfig("XmlPackage.WelcomeEmail"),<br />
        null,<br />
        ThisCustomer,<br />
        this.SkinID,<br />
        "",<br />
        "fullname=" + ctrlAccount.FirstName.Trim() + " " + ctrlAccount.LastName.Trim(),<br />
        false,<br />
        false,<br />
        this.EntityHelpers);<br />
        AppLogic.SendMail(AppLogic.GetString("createaccount.aspx.79", ThisCustomer.SkinID, ThisCustomer.LocaleSetting),<br />
        body,<br />
        true,<br />
        AppLogic.AppConfig("MailMe_FromAddress"),<br />
        AppLogic.AppConfig("MailMe_FromName"),<br />
        "myemail@mydomain.com",<br />
        ctrlAccount.FirstName.Trim() + " " + ctrlAccount.LastName.Trim(),<br />
        "",<br />
        AppLogic.MailServer());<br />
    }catch{}<br />
    // the above added by Benjamin Eskew (Aug 25, 2010)<br />
}</b><br />
</code></p>
<p>Now save the file and upload it to your server and that's that! Do realize that this is just a simple copy of the message, not a custom message sent to the administrator. In order to make something like that you'll have to create a custom XmlPackage to handle it and use that one in place of the current one in use (XmlPackage.WelcomeEmail).</p>
<p>As you can see from my current and previous posts, I've been working a lot with AspDotNetStorefront lately and have plans to continue posting information articles like this one here, so stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2010/08/have-a-copy-of-new-user-welcome-message-sent-to-you-aspdotnetstorefront/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The MS SQL and NTEXT Problem (SOLVED)</title>
		<link>http://www.beneskew.com/2010/08/the-ms-sql-and-ntext-problem-solved/</link>
		<comments>http://www.beneskew.com/2010/08/the-ms-sql-and-ntext-problem-solved/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 02:59:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=209</guid>
		<description><![CDATA[So, the other day I ran into the problem of trying to pull data from a field which was of type ntext in a MS SQL database using PHP. I'm fairly new with MS SQL and Windows IIS server environments for that matter so please bare with me. Well, I found the solution! When you're [...]]]></description>
			<content:encoded><![CDATA[<p>So, the other day I ran into the problem of trying to pull data from a field which was of type ntext in a MS SQL database using PHP. I'm fairly new with MS SQL and Windows IIS server environments for that matter so please bare with me. Well, I found the solution!</p>
<p>When you're using PHP's mssql_ functions and you need to pull data from a table field which is of type ntext you can't simply pull it using typical select methods, you need to cast the variable as another because <em>the ntext type is not supported in PHP's mssql_ functions</em>.</p>
<p>Code Which Wasn't Working:<br />
<code>$r = mssql_query("select ProductID, <strong>Description</strong> from myTable where id = '1'");</code></p>
<p>Solution:<br />
<code>$r = mssql_query("select ProductID, <strong>CAST(Description AS TEXT) AS Description</strong> from myTable where id = '1'");</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2010/08/the-ms-sql-and-ntext-problem-solved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Facebook &#8220;Like&#8221; Widget in product.SimpleProduct.xml XMLPackage in AspDotNetStorefront</title>
		<link>http://www.beneskew.com/2010/08/use-facebook-like-widget-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/</link>
		<comments>http://www.beneskew.com/2010/08/use-facebook-like-widget-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 14:47:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AspDotNetStorefront]]></category>
		<category><![CDATA[AspDotNetStorefront Mods]]></category>
		<category><![CDATA[ECommerce CMS Mods]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=203</guid>
		<description><![CDATA[ASPDNSF Version: 9 (C# + MS SQL) It's very easy to embed the Facebook "Like" widget into an XMLPackage (like the product pages for example) within AspDotNetStorefront. Simply add the following code to your XMLPackage: &#60;iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.yoursite.com%2F(!PAGEURL!)&#38;layout=button_count&#38; show_faces=false&#38;width=50&#38;action=like&#38;font=arial&#38;colorscheme=light&#38;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px; height:21px;" allowTransparency="true"&#62;&#60;/iframe&#62; Of course, you should adjust the iframe variables to your [...]]]></description>
			<content:encoded><![CDATA[<p>ASPDNSF Version: 9 (C# + MS SQL)</p>
<p>It's very easy to embed the Facebook "Like" widget into an XMLPackage (like the product pages for example) within AspDotNetStorefront. Simply add the following code to your XMLPackage:</p>
<p>&lt;iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.yoursite.com%2F<strong>(!PAGEURL!)</strong>&amp;layout=button_count&amp; show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px; height:21px;" allowTransparency="true"&gt;&lt;/iframe&gt;</p>
<p>Of course, you should adjust the iframe variables to your liking.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2010/08/use-facebook-like-widget-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Images as Add To Cart/Add To Wish List Buttons with AspDotNetStorefront</title>
		<link>http://www.beneskew.com/2010/08/use-images-as-add-to-cartadd-to-wish-list-buttons-with-aspdotnetstorefront/</link>
		<comments>http://www.beneskew.com/2010/08/use-images-as-add-to-cartadd-to-wish-list-buttons-with-aspdotnetstorefront/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 14:45:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AspDotNetStorefront]]></category>
		<category><![CDATA[AspDotNetStorefront Mods]]></category>
		<category><![CDATA[ECommerce CMS Mods]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=201</guid>
		<description><![CDATA[ASPDNSF Version: 9 (C# + MS SQL) By default AspDotNetStorefront uses basic form buttons for the Add To Cart and Add To Wish List features in the design. If you'd like to use images as those buttons instead you will need to make some modifications. First, make sure you have some good images to use [...]]]></description>
			<content:encoded><![CDATA[<p>ASPDNSF Version: 9 (C# + MS SQL)</p>
<p>By default AspDotNetStorefront uses basic form buttons for the Add To Cart and Add To Wish List features in the design. If you'd like to use images as those buttons instead you will need to make some modifications.</p>
<p>First, make sure you have some good images to use and then upload/FTP them to the theme images directory "App_Themes/Your_Skin_Folder/images/". Now go to the AspDotNetStorefront back-end administration and go to "Configuration > Advanced > AppConfig Parameters" and find the config "AddToCart.AddToCartButton" and update it with the image you are going to use for the Add To Cart button. Then, find the config "AddToCart.AddToWishButton" and update it with the image you are going to use for the Add To Wish List button. Finally, find the config "AddToCart.UseImageButton" and change it to true. Your Add To Cart forms should now use your images as buttons.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2010/08/use-images-as-add-to-cartadd-to-wish-list-buttons-with-aspdotnetstorefront/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Display MSRP in product.SimpleProduct.xml XMLPackage in AspDotNetStorefront</title>
		<link>http://www.beneskew.com/2010/08/display-msrp-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/</link>
		<comments>http://www.beneskew.com/2010/08/display-msrp-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 18:15:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AspDotNetStorefront]]></category>
		<category><![CDATA[AspDotNetStorefront Mods]]></category>
		<category><![CDATA[ECommerce CMS Mods]]></category>
		<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=196</guid>
		<description><![CDATA[ASPDNSF Version: 9 (C# + MS SQL) By default in AspDotNetStorefront the MSRP for products is not displayed or used within the product.SimpleProduct.xml XMLPackage, so if you would like to use or display it you will need to make some fine-tuned adjustments. The Quick and Dirty Way (not as efficient): In your product.SimpleProduct.xml XMLPackage find [...]]]></description>
			<content:encoded><![CDATA[<p>ASPDNSF Version: 9 (C# + MS SQL)</p>
<p>By default in AspDotNetStorefront the MSRP for products is not displayed or used within the product.SimpleProduct.xml XMLPackage, so if you would like to use or display it you will need to make some fine-tuned adjustments.</p>
<h3>The Quick and Dirty Way (not as efficient):</h3>
<p>In your product.SimpleProduct.xml XMLPackage find the lines where database queries are being made, like:</p>
<p><code>...<br />
&lt;query name="Products" rowElementName="Product" runif="edit"&gt;<br />
    &lt;sql&gt;<br />
        &lt;![CDATA[<br />
            exec dbo.aspdnsf_EditOrderProduct @ShoppingCartRecID, @CustomerLevelID<br />
        ]]&gt;<br />
    &lt;/sql&gt;<br />
    &lt;queryparam paramname="@ShoppingCartRecID" paramtype="request" requestparamname="CartRecID"       sqlDataType="int" defvalue="0"  validationpattern="^\d{1,10}$" /&gt;<br />
    &lt;queryparam paramname="@CustomerLevelID"   paramtype="system"  requestparamname="CustomerLevelID" sqlDataType="int" defvalue="0"  validationpattern="" /&gt;<br />
&lt;/query&gt;<br />
...<br />
</code></p>
<p>and add a new database query by adding the following after the last query:</p>
<p><code>&lt;query name="Variant" rowElementName="Price" runif="showproduct"&gt;<br />
    &lt;sql&gt;<br />
	    &lt;![CDATA[<br />
		    select MSRP from dbo.ProductVariant with(NOLOCK) where ProductID=@ProductID and IsDefault=1<br />
		]]&gt;<br />
	&lt;/sql&gt;<br />
	&lt;queryparam paramname="@ProductID"       paramtype="request" requestparamname="ProductID"       sqlDataType="int" defvalue="0"  validationpattern="^\d{1,10}$" /&gt;<br />
&lt;/query&gt;<br />
</code></p>
<p>ex.</p>
<p><code>...<br />
&lt;query name="Products" rowElementName="Product" runif="edit"&gt;<br />
    &lt;sql&gt;<br />
        &lt;![CDATA[<br />
            exec dbo.aspdnsf_EditOrderProduct @ShoppingCartRecID, @CustomerLevelID<br />
        ]]&gt;<br />
    &lt;/sql&gt;<br />
    &lt;queryparam paramname="@ShoppingCartRecID" paramtype="request" requestparamname="CartRecID"       sqlDataType="int" defvalue="0"  validationpattern="^\d{1,10}$" /&gt;<br />
    &lt;queryparam paramname="@CustomerLevelID"   paramtype="system"  requestparamname="CustomerLevelID" sqlDataType="int" defvalue="0"  validationpattern="" /&gt;<br />
&lt;/query&gt;<br />
<strong>&lt;query name="Variant" rowElementName="Price" runif="showproduct"&gt;<br />
    &lt;sql&gt;<br />
	    &lt;![CDATA[<br />
		    select MSRP from dbo.ProductVariant with(NOLOCK) where ProductID=@ProductID and IsDefault=1<br />
		]]&gt;<br />
	&lt;/sql&gt;<br />
	&lt;queryparam paramname="@ProductID"       paramtype="request" requestparamname="ProductID"       sqlDataType="int" defvalue="0"  validationpattern="^\d{1,10}$" /&gt;<br />
&lt;/query&gt;</strong><br />
...<br />
</code></p>
<p>Now, in your XMLPackage wherever you'd like to display the MSRP, simply add the following:</p>
<p><code>&lt;xsl:value-of select="aspdnsf:FormatCurrency(/root/Variant/Price/MSRP)" disable-output-escaping="yes" /&gt;<br />
</code></p>
<h3>The Efficient Way (MS SQL):</h3>
<p>Using SQL Management Studio, open up the stored procedure and locate near the bottom where it reads:</p>
<p><code>...<br />
SELECT<br />
               p.*,<br />
               pv.VariantID, pv.name VariantName, pv.Price, pv.Description VariantDescription, isnull(pv.SalePrice, 0) SalePrice, isnull(SkuSuffix, '') SkuSuffix, pv.Dimensions, pv.Weight, isnull(pv.Points, 0) Points, pv.Inventory, pv.ImageFilenameOverride VariantImageFilenameOverride,  pv.isdefault, pv.CustomerEntersPrice, isnull(pv.colors, '') Colors, isnull(pv.sizes, '') Sizes,<br />
...</code></p>
<p>simply add the MSRP table call to the select statement, like:</p>
<p><code>...<br />
SELECT<br />
               p.*,<br />
               pv.VariantID, pv.name VariantName, pv.Price, <b>pv.MSRP,</b> pv.Description VariantDescription, isnull(pv.SalePrice, 0) SalePrice, isnull(SkuSuffix, '') SkuSuffix, pv.Dimensions, pv.Weight, isnull(pv.Points, 0) Points, pv.Inventory, pv.ImageFilenameOverride VariantImageFilenameOverride,  pv.isdefault, pv.CustomerEntersPrice, isnull(pv.colors, '') Colors, isnull(pv.sizes, '') Sizes,<br />
...</code></p>
<p>Now, execute the statement.<br />
Finally, in your XMLPackage where you'd like to display the MSRP simply add the following:</p>
<p><code>&lt;xsl:value-of select="aspdnsf:FormatCurrency(MSRP)" disable-output-escaping="yes" /&gt;</code></p>
<p>Or, if you're calling it from outside of the Product template, use the full xpath, like:</p>
<p><code>&lt;xsl:value-of select="aspdnsf:FormatCurrency(/root/Products/Product/MSRP)" disable-output-escaping="yes" /&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2010/08/display-msrp-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Display SKU in product.SimpleProduct.xml XMLPackage in AspDotNetStorefront</title>
		<link>http://www.beneskew.com/2010/08/display-sku-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/</link>
		<comments>http://www.beneskew.com/2010/08/display-sku-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 16:39:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AspDotNetStorefront]]></category>
		<category><![CDATA[AspDotNetStorefront Mods]]></category>
		<category><![CDATA[ECommerce CMS Mods]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=187</guid>
		<description><![CDATA[ASPDNSF Version: 9 (C# + MS SQL) By default in AspDotNetStorefront the SKU for products is not displayed or used within the product.SimpleProduct.xml XMLPackage, so if you would like to use or display it you will need to make some fine-tuned adjustments. First: In your product.SimpleProduct.xml XMLPackage find the lines where the Product is being [...]]]></description>
			<content:encoded><![CDATA[<p>ASPDNSF Version: 9 (C# + MS SQL)</p>
<p>By default in AspDotNetStorefront the SKU for products is not displayed or used within the product.SimpleProduct.xml XMLPackage, so if you would like to use or display it you will need to make some fine-tuned adjustments.</p>
<p>First:<br />
In your product.SimpleProduct.xml XMLPackage find the lines where the Product is being handled, namely the lines starting with:</p>
<p>...<br />
<code>&lt;xsl:template match="Product"&gt;<br />
    &lt;xsl:param name="pName" select="aspdnsf:GetMLValue(Name)"&gt;&lt;/xsl:param&gt;</code><br />
    ...<br />
...</p>
<p>and add a new parameter call to the parameters by adding:</p>
<p><code>&lt;xsl:param name="pSKU" select="aspdnsf:GetMLValue(SKU)"&gt;&lt;/xsl:param&gt;</code></p>
<p>ex.</p>
<p>...<br />
<code>&lt;xsl:template match="Product"&gt;<br />
    &lt;xsl:param name="pName" select="aspdnsf:GetMLValue(Name)"&gt;&lt;/xsl:param&gt;<br />
    &lt;xsl:param name="pDescription" select="aspdnsf:GetMLValue(Description)"&gt;&lt;/xsl:param&gt;<br />
    &lt;xsl:param name="pSalesPromptName" select="aspdnsf:GetMLValue(SalesPromptName)"&gt;&lt;/xsl:param&gt;<br />
    <strong>&lt;xsl:param name="pSKU" select="aspdnsf:GetMLValue(SKU)"&gt;&lt;/xsl:param&gt;</strong></code><br />
    ...<br />
...</p>
<p>Now, in your XMLPackage wherever you'd like to display the SKU, simply add the following:</p>
<p><code>&lt;xsl:value-of select="$pSKU" disable-output-escaping="yes"/&gt;</code></p>
<p>Using this method you can call any field from the Product table including Variants, like if you simply wanted to get the ProductID so you can display it in the XMLPackage...</p>
<p>...set parameter for it:<br />
<code>&lt;xsl:param name="<strong>pID</strong>" select="aspdnsf:GetMLValue(ProductID)"&gt;&lt;/xsl:param&gt;</code></p>
<p>...use it:<br />
<code>...href="http://www.yoursite.com/EMailproduct.aspx?productid=<b>{$pID}</b>"&gt;&lt;img src="http://www.yoursite.com/App_Themes/Skin_1/images/Icon-Email.gif"...</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2010/08/display-sku-in-product-simpleproduct-xml-xmlpackage-in-aspdotnetstorefront/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make Breadcrumbs in AspDotNetStorefront template.master</title>
		<link>http://www.beneskew.com/2010/08/make-breadcrumbs-in-aspdotnetstorefront-template-master/</link>
		<comments>http://www.beneskew.com/2010/08/make-breadcrumbs-in-aspdotnetstorefront-template-master/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 14:51:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[AspDotNetStorefront]]></category>
		<category><![CDATA[AspDotNetStorefront Mods]]></category>
		<category><![CDATA[ECommerce CMS Mods]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=183</guid>
		<description><![CDATA[ASPDNSF Version: 9 (C# + MS SQL) If you've not gone through every nook and cranny of the AspDotNetStorefront manual chances are that you haven't figured out how to properly create "breadcrumbs" with your navigation. No fear, Ben is here. In your template.master skin file, located at "App_Templates/Your_Skin_Folder/template.master", simply add the following immediately after the [...]]]></description>
			<content:encoded><![CDATA[<p>ASPDNSF Version: 9 (C# + MS SQL)</p>
<p>If you've not gone through every nook and cranny of the AspDotNetStorefront manual chances are that you haven't figured out how to properly create "breadcrumbs" with your navigation.</p>
<p>No fear, Ben is here.</p>
<p>In your template.master skin file, located at "App_Templates/Your_Skin_Folder/template.master", simply add the following immediately after the opening id="content" DIV:</p>
<p><code><br />
&lt;div id="breadcrumbs"&gt;<br />
    &lt;a href="http://www.yoursite.com/default.aspx"&gt;HOME&lt;/a&gt; ::<br />
    &lt;asp:Literal ID="SectionTitle" runat="server" Text='' /&gt;<br />
&lt;/div&gt;<br />
</code><br />
ex.</p>
<p><code>...<br />
&lt;div id="content"&gt;<br />
    &lt;!-- CONTENTS START --&gt;<br />
    <strong>&lt;div id="breadcrumbs"&gt;<br />
        &lt;a href="http://www.yoursite.com/default.aspx"&gt;HOME&lt;/a&gt; ::<br />
        &lt;asp:Literal ID="SectionTitle" runat="server" Text='' /&gt;<br />
    &lt;/div&gt;</strong><br />
	&lt;asp:ContentPlaceHolder ID="PageContent" runat="server"&gt;<br />
    &lt;/asp:ContentPlaceHolder&gt;<br />
    &lt;!-- CONTENTS END --&gt;<br />
&lt;/div&gt;<br />
...</code></p>
<p>Although, you don't absolutely NEED to add it within the content DIV, I just placed it there because it's the top-most element within the content column in the layout. Technically, you can add it anywhere you'd like within the template.master file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2010/08/make-breadcrumbs-in-aspdotnetstorefront-template-master/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Tips and Help</title>
		<link>http://www.beneskew.com/2009/11/php-tips-and-help/</link>
		<comments>http://www.beneskew.com/2009/11/php-tips-and-help/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 22:56:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=158</guid>
		<description><![CDATA[For those of you who do not know me personally or formally, here goes a bit of helpful information. I'm currently 30 years old and I've been learning and programming with PHP for a bit over 6 years. In these past six years I've basically taught myself the language using books, ebooks, and the Internet [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you who do not know me personally or formally, here goes a bit of helpful information.</p>
<p>I'm currently 30 years old and I've been learning and programming with PHP for a bit over 6 years. In these past six years I've basically taught myself the language using books, ebooks, and the Internet as references and resources...and boy have I learned a lot. I wouldn't say that even at this point I am at an "Advanced" level of understanding/experience with PHP. I'd rather say that I'm around the "Intermediate" level of understanding with it. I know the true possibilities of PHP mingling with the other technologies, so I believe my "intermediate" rating for myself is almost even pushing it.</p>
<p>Anyways, here's some PHP tips I've picked up along the way or learned the hard way through trial and error experience. <img src='http://www.beneskew.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>1. Single Quotes Are Faster Than Double Quotes (STRINGS)</h2>
<p>Irregardless of whatever rumor you've heard, utilizing single quotes when concatenating strings is much quicker execution-wise compared to using double quotes because when double quotes are used the PHP parser parses the string looking for string names to parse before returning the string.</p>
<p><b>Slower:</b><br /><code>echo "$name is its name.";</code></p>
<p><b>Faster:</b><br /><code>echo $name.' is its name.';</code></p>
<h2>2. Absolutely, Always Sanitize User Data (MySQL)</h2>
<p>The user of your web application is never to be trusted. Absolutely make sure to sanitize ALL incoming data from the User before interacting with it and your web databases.<br />
At the very least:</p>
<p><b>Utilize mysql(i)_real_escape_string (PHP4.3+)</b><br />
mysql_real_escape_string (earlier versions use mysql_escape_string) makes sure to add slashes for required elements, also making sure to combat many SQL injection attempts. You could also use other functions like strip_tags which further help sanitize and limit abuse of your User data.</p>
<p><b>Be Sure to Use htmlspecialchars and htmlentities (STRINGS)</b><br />
Be sure, when you print data which has been submitted by the User back to the screen that you properly sanitize that data using the PHP functions htmlspecialchars and/or htmlentities.</p>
<h2>3. The Ternary Operator Is Your Friend</h2>
<p>If you usually write a lot of if/else statements with very few lines of code or better yet one line of code, using the ternary operator can drastically help your application by shortening the lines of code down to one and also helping the readability of your code as a whole. Take the following example into consideration:</p>
<p><code>if($aString == '1'){<br />
&nbsp;&nbsp;&nbsp;$retVal = true;<br />
}else{<br />
&nbsp;&nbsp;&nbsp;$retVal = false;<br />
}<br />
</code><br />
Wouldn't you rather use the following instead?</p>
<p><code>$retVal = ($aString == '1') ? true : false;</code></p>
<h2>4. Regardless of their Rep, Don't Completely Follow Other Developers' Techniques</h2>
<p>You could completely disregard even me with this tip, but you really shouldn't follow other developers coding techniques without studying them yourself at least. I've learned this one the hard way by utilizing (embarrassingly) short if/then and conditional statements for a year or so without completely studying the side-effects of using said statements. Always make sure your chosen coding techniques are efficient and agile.</p>
<p>This is just a short list of tips and help I have to offer you about PHP. In the future I will continue this series of posts with even more tips and help with PHP so stay tuned! <img src='http://www.beneskew.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2009/11/php-tips-and-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So You&#8217;re Developing a Web Application, aye?</title>
		<link>http://www.beneskew.com/2009/10/so-youre-developing-a-web-application-aye/</link>
		<comments>http://www.beneskew.com/2009/10/so-youre-developing-a-web-application-aye/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 00:48:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=147</guid>
		<description><![CDATA[When you first decide to create a website you're obviously hit with a first question... "Should I use a pre-made content management system or does this website and/or concept need its own custom content management system?" Depending on the type of website this question could be easily answered. "Does this website need any further customizations [...]]]></description>
			<content:encoded><![CDATA[<p>When you first decide to create a website you're obviously hit with a first question...</p>
<p><em>"Should I use a pre-made content management system or does this website and/or concept need its own custom content management system?"</em></p>
<p>Depending on the type of website this question could be easily answered.</p>
<p><em>"Does this website need any further customizations than the chosen pre-made content management system can provide?"</em></p>
<p>The answer to the previous question could be no and then you could choose from a great number of varying pre-made CMS's like WordPress, Joomla, Nuke; just to name a very few, which will get you ready for content immediately.</p>
<p>But, what if you have a specific idea or concept that you want to put into action? Like something a bit more unique than a basic news-style or cookie-cutter web system. Well, then it starts getting a bit more complicated to execute your concepts.</p>
<p>One viable option is to install and modify multiple pre-made scripts which all do the varying tasks that you wish to have. I've seen this done contently with a few of my colleagues' projects. Although, I do not recommend this.</p>
<p>Another great option is to utilize development frameworks, like Zend framework for PHP and Ext JS for JavaScript. This option is great if you are limited to time and money, but can get quite cumbersome if you're also limited to knowledge and experience with these frameworks.</p>
<p>The best option in my opinion is to create everything custom yourself. It definitely takes much more time than other methods but the physical security of the structure of your application and the ease of future updates is better and easier to do in the long run, and is the best option for creating custom CMS's. One major reason to choose this method over a framework would be because usually your own code will be less-bulky and take less overall resources to run. But, of course this method by far relies heavily on the coding skills and habits of yourself or your developers, so always keep that in mind.</p>
<p>In future related articles I'll delve into the world of custom web application development, focusing primarily on custom code development, but I'll also be wading the waters of framework deployment and utilization of pre-made code libraries and their integration into your own web applications.</p>
<p>Stay tuned. <img src='http://www.beneskew.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2009/10/so-youre-developing-a-web-application-aye/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 5&#8230;The End All Be All&#8230;Almost</title>
		<link>http://www.beneskew.com/2009/09/html-5-the-end-all-be-all-almost/</link>
		<comments>http://www.beneskew.com/2009/09/html-5-the-end-all-be-all-almost/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 06:41:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech News]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.beneskew.com/?p=135</guid>
		<description><![CDATA[The evolution of the HyperText Markup Language has definitely been a long one and now is finally coming to a crossroads where it will be putting out of business many other technologies developed in the past to handle HTML's inadequacies. The new version of HTML is almost ready for professional trials and to say the [...]]]></description>
			<content:encoded><![CDATA[<p>The evolution of the HyperText Markup Language has definitely been a long one and now is finally coming to a crossroads where it will be putting out of business many other technologies developed in the past to handle HTML's inadequacies. The new version of HTML is almost ready for professional trials and to say the least I'm pretty excited about it...and I'm sure many others are as well.</p>
<p>To start, the HTML5 syntax is no longer based on SGML (the kind-of parent of the older HTML versions), but will be backwards compatible of course. Second, an obvious change is the complete drop of purely visual elements, like the "font" and "center" elements, along with new element additions to handle basic layout presentation, like "nav" and "footer". Also, the addition of elements like "audio" and "video" will make it easier than ever to embed those types of objects into your HTML pages.</p>
<p>One major improvement to the language is the addition of Scalable Vector Graphics. With SVG you can literally add graphical elements into a web page with ease using simple element tags with their various attributes and values. This alone is a HUGE improvement compared to what is needed in order to accomplish things like this at present using older versions of HTML and XHTML. (Presently you need to utilize and embed other technologies and/or code libraries like Flash, MS Silverlight, dojox.gfx, or Java to accomplish this.)</p>
<p>Another awesome addition is the use of APIs. The APIs will include everything from utilizing offline storage databases to embedded document editing.</p>
<p>One other major improvement in my eyes which I'd like to mention is the error handling abilities within the new specification. The HTML5 specification gives detailed rules for lexing and parsing, with the intent that different compliant browsers will produce the same result in the case of incorrect syntax. What does that mean? No more jacked up looking web pages because of non-compliant code embedded within them. You will be able to safely update your pages without the entire world laughing at your non-compliant code jacking up your pages.</p>
<p>Enough rambling from me, here's an awesome HTML5 introduction video produced by Brad Neuberg from Google Developer Programs:</p>
<div align="center"><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6691519&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=6691519&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object></div>
<p>&nbsp;<br />Further reading:</p>
<p><a href="http://dev.w3.org/html5/spec/Overview.html" target="_blank">HTML5 Specification Overview (DEV)</a><br />
<a href="http://www.w3.org/TR/html5/" target="_blank">HTML5 Specification Working Draft</a><br />
<a href="http://en.wikipedia.org/wiki/HTML_5" target="_blank">HTML5 on Wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.beneskew.com/2009/09/html-5-the-end-all-be-all-almost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
