<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Blog posts by Dung Le</title><link href="http://world.optimizely.com" /><updated>2011-08-02T09:34:00.0000000Z</updated><id>https://world.optimizely.com/blogs/Dung-Le/</id> <generator uri="http://world.optimizely.com" version="2.0">Optimizely World</generator> <entry><title>Generate QR Code for EPiServer Page/Commerce Product</title><link href="https://world.optimizely.com/blogs/Dung-Le/Dates/2011/8/Generate-QR-Code-for-EPiServer-PageCommerce-Product/" /><id>&lt;h3&gt;What is QR Code?&lt;/h3&gt;
&lt;p&gt;A QR code (abbreviated from Quick Response code) is a specific matrix barcode (or two-dimensional code) that is readable by dedicated QR barcode readers and camera telephones. The code consists of black modules arranged in a square pattern on a white background. The information encoded may be text, URL, or other data.&lt;/p&gt;
&lt;p&gt;Common in Japan, where it was created by Toyota subsidiary Denso-Wave in 1994, the QR code is one of the most popular types of two-dimensional barcodes. The QR code was designed to allow its contents to be decoded at high speed.&lt;/p&gt;
&lt;p&gt;The technology has seen frequent use in Japan, the Netherlands, and South Korea, while the rest of the world has been slower in the adoption of QR codes.&lt;/p&gt;
&lt;p&gt;Reference: &lt;a href=&quot;http://en.wikipedia.org/wiki/QR_code&quot;&gt;http://en.wikipedia.org/wiki/QR_code&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;QR Code Generator Library:&lt;/h3&gt;
&lt;p&gt;Using open source QRCode Library: &lt;a href=&quot;http://www.codeproject.com/KB/cs/qrcode.aspx&quot;&gt;http://www.codeproject.com/KB/cs/qrcode.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Author: &lt;a href=&quot;http://www.codeproject.com/script/Membership/View.aspx?mid=349798&quot;&gt;&lt;strong&gt;twit88&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Name: &lt;strong&gt;ThoughtWorks.QRCode.NET&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Generate QR Code for EPiServer Page&lt;/h3&gt;
&lt;p&gt;Basic idea is convert to current page url to QR Code as an image. People can use mobile phone with QRCode reader to read the link.&lt;/p&gt;
&lt;p&gt;1. Create QR Code generator handler&lt;/p&gt;
&lt;p&gt;Create new class inherited from IHttpHandler&lt;/p&gt;
&lt;div class=&quot;csharpcode&quot;&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 90.76%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 210px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;&quot;&gt;
&lt;div id=&quot;codeSnippet&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color: #606060;&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color: #606060;&quot;&gt;   2:&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;///     QR Code Generator HttpModules. Retrieves QR Code from cache, render to memory, and streams to browser&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color: #606060;&quot;&gt;   3:&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color: #606060;&quot;&gt;   4:&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;class&lt;/span&gt; QRCodeGeneratorHandler : IHttpHandler&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum5&quot; style=&quot;color: #606060;&quot;&gt;   5:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum6&quot; style=&quot;color: #606060;&quot;&gt;   6:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; ProcessRequest(HttpContext context)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum7&quot; style=&quot;color: #606060;&quot;&gt;   7:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum8&quot; style=&quot;color: #606060;&quot;&gt;   8:&lt;/span&gt;         var application = context.ApplicationInstance;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum9&quot; style=&quot;color: #606060;&quot;&gt;   9:&lt;/span&gt;         &lt;span style=&quot;color: #008000;&quot;&gt;// get the url to generate qr code; this must be passed in via the querystring&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum10&quot; style=&quot;color: #606060;&quot;&gt;  10:&lt;/span&gt;         var url = application.Request.QueryString[&lt;span style=&quot;color: #006080;&quot;&gt;&quot;url&quot;&lt;/span&gt;];&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum11&quot; style=&quot;color: #606060;&quot;&gt;  11:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt; (&lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt;.IsNullOrEmpty(url))&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum12&quot; style=&quot;color: #606060;&quot;&gt;  12:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum13&quot; style=&quot;color: #606060;&quot;&gt;  13:&lt;/span&gt;             application.Response.StatusCode = 404;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum14&quot; style=&quot;color: #606060;&quot;&gt;  14:&lt;/span&gt;             context.ApplicationInstance.CompleteRequest();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum15&quot; style=&quot;color: #606060;&quot;&gt;  15:&lt;/span&gt;             &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum16&quot; style=&quot;color: #606060;&quot;&gt;  16:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum17&quot; style=&quot;color: #606060;&quot;&gt;  17:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum18&quot; style=&quot;color: #606060;&quot;&gt;  18:&lt;/span&gt;         &lt;span style=&quot;color: #008000;&quot;&gt;// generate new qr code for current url&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum19&quot; style=&quot;color: #606060;&quot;&gt;  19:&lt;/span&gt;         var qrCodeEncoder = &lt;span style=&quot;color: #0000ff;&quot;&gt;new&lt;/span&gt; QRCodeEncoder&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum20&quot; style=&quot;color: #606060;&quot;&gt;  20:&lt;/span&gt;                                 {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum21&quot; style=&quot;color: #606060;&quot;&gt;  21:&lt;/span&gt;                                     QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE,&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum22&quot; style=&quot;color: #606060;&quot;&gt;  22:&lt;/span&gt;                                     QRCodeScale = 4,&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum23&quot; style=&quot;color: #606060;&quot;&gt;  23:&lt;/span&gt;                                     QRCodeVersion = 7,&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum24&quot; style=&quot;color: #606060;&quot;&gt;  24:&lt;/span&gt;                                     QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum25&quot; style=&quot;color: #606060;&quot;&gt;  25:&lt;/span&gt;                                 };&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum26&quot; style=&quot;color: #606060;&quot;&gt;  26:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff;&quot;&gt;using&lt;/span&gt; (Bitmap qrImage = qrCodeEncoder.Encode(url))&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum27&quot; style=&quot;color: #606060;&quot;&gt;  27:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum28&quot; style=&quot;color: #606060;&quot;&gt;  28:&lt;/span&gt;             &lt;span style=&quot;color: #008000;&quot;&gt;// write the image to the HTTP output stream as an array of bytes&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum29&quot; style=&quot;color: #606060;&quot;&gt;  29:&lt;/span&gt;             qrImage.Save(application.Response.OutputStream, ImageFormat.Jpeg);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum30&quot; style=&quot;color: #606060;&quot;&gt;  30:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum31&quot; style=&quot;color: #606060;&quot;&gt;  31:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum32&quot; style=&quot;color: #606060;&quot;&gt;  32:&lt;/span&gt;         application.Response.ContentType = &lt;span style=&quot;color: #006080;&quot;&gt;&quot;image/jpeg&quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum33&quot; style=&quot;color: #606060;&quot;&gt;  33:&lt;/span&gt;         application.Response.StatusCode = 200;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum34&quot; style=&quot;color: #606060;&quot;&gt;  34:&lt;/span&gt;         context.ApplicationInstance.CompleteRequest();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum35&quot; style=&quot;color: #606060;&quot;&gt;  35:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum36&quot; style=&quot;color: #606060;&quot;&gt;  36:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum37&quot; style=&quot;color: #606060;&quot;&gt;  37:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;bool&lt;/span&gt; IsReusable&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum38&quot; style=&quot;color: #606060;&quot;&gt;  38:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum39&quot; style=&quot;color: #606060;&quot;&gt;  39:&lt;/span&gt;         get { &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;true&lt;/span&gt;; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum40&quot; style=&quot;color: #606060;&quot;&gt;  40:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum41&quot; style=&quot;color: #606060;&quot;&gt;  41:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, &quot;Courier New&quot;, courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } --&gt;
&lt;p&gt;2. Configure the handler in web.config&lt;/p&gt;
&lt;p&gt;Add new handler to &amp;lt;system.webServer&amp;gt; (IIS7) or &amp;lt;system.web&amp;gt; for IIS 6&lt;/p&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 90.72%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 55px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;&quot;&gt;
&lt;pre id=&quot;codeSnippet&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;add&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;QRCodeGenerator&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;verb&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;GET&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;QRCodeGenerator.aspx&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;EPiServer.Sample.CustomProperties.QRCodeGeneratorHandler, EPiServer.Templates.AlloyTech&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;3. Using handler as image url&lt;/p&gt;
&lt;p&gt;For AlloyTech:&lt;/p&gt;
&lt;p&gt;Open PageFooter.acx, add new &amp;lt;img&amp;gt; tag to display QR Code&lt;/p&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 88.45%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 54px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;&quot;&gt;
&lt;pre id=&quot;codeSnippet&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;img&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;&amp;lt;%# QRCodeImageUrl %&amp;gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;alt&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;QR Code for current page&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, &quot;Courier New&quot;, courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } --&gt;
&lt;p&gt;Code-behind:&lt;/p&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 90.62%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 210px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;&quot;&gt;
&lt;div id=&quot;codeSnippet&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color: #606060;&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;protected&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt; QRCodeImageUrl&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color: #606060;&quot;&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color: #606060;&quot;&gt;   3:&lt;/span&gt;     get&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color: #606060;&quot;&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum5&quot; style=&quot;color: #606060;&quot;&gt;   5:&lt;/span&gt;         var urlBuilder = &lt;span style=&quot;color: #0000ff;&quot;&gt;new&lt;/span&gt; UrlBuilder(UriSupport.Combine(UriSupport.SiteUrl.AbsoluteUri, CurrentPage.LinkURL));&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum6&quot; style=&quot;color: #606060;&quot;&gt;   6:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt; (UrlRewriteProvider.IsFurlEnabled)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum7&quot; style=&quot;color: #606060;&quot;&gt;   7:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum8&quot; style=&quot;color: #606060;&quot;&gt;   8:&lt;/span&gt;             EPiServer.Global.UrlRewriteProvider.ConvertToExternal(urlBuilder, &lt;span style=&quot;color: #0000ff;&quot;&gt;null&lt;/span&gt;, Encoding.UTF8);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum9&quot; style=&quot;color: #606060;&quot;&gt;   9:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum10&quot; style=&quot;color: #606060;&quot;&gt;  10:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum11&quot; style=&quot;color: #606060;&quot;&gt;  11:&lt;/span&gt;         var linkUrl = System.Web.HttpContext.Current.Server.HtmlEncode((&lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt;)urlBuilder);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum12&quot; style=&quot;color: #606060;&quot;&gt;  12:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum13&quot; style=&quot;color: #606060;&quot;&gt;  13:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt;.Format(&lt;span style=&quot;color: #006080;&quot;&gt;&quot;QRCodeGenerator.aspx?url={0}&quot;&lt;/span&gt;, linkUrl);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum14&quot; style=&quot;color: #606060;&quot;&gt;  14:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum15&quot; style=&quot;color: #606060;&quot;&gt;  15:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, &quot;Courier New&quot;, courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } --&gt;
&lt;p&gt;For Commerce Sample:&lt;/p&gt;
&lt;p&gt;Open ProductDisplayModule.ascx (Templates/ClickTalk/Units/Placeable)&lt;/p&gt;
&lt;p&gt;Add new img tag under “Product image” section&lt;/p&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 91.4%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 90px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;&quot;&gt;
&lt;div id=&quot;codeSnippet&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color: #606060;&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;div&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;image&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color: #606060;&quot;&gt;   2:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;img&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;&amp;lt;%# QRCodeImageUrl %&amp;gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;alt&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;=&quot;QR Code for current page&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color: #606060;&quot;&gt;   3:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Code-behind:&lt;/p&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 91.7%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 210px; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;&quot;&gt;
&lt;div id=&quot;codeSnippet&quot; style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color: #606060;&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;protected&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt; QRCodeImageUrl&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color: #606060;&quot;&gt;   2:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color: #606060;&quot;&gt;   3:&lt;/span&gt;             get&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color: #606060;&quot;&gt;   4:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum5&quot; style=&quot;color: #606060;&quot;&gt;   5:&lt;/span&gt;                 var productLink = GetProductUrl(Entry);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum6&quot; style=&quot;color: #606060;&quot;&gt;   6:&lt;/span&gt;                 var urlBuilder = &lt;span style=&quot;color: #0000ff;&quot;&gt;new&lt;/span&gt; UrlBuilder(UriSupport.Combine(UriSupport.SiteUrl.AbsoluteUri, productLink));&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum7&quot; style=&quot;color: #606060;&quot;&gt;   7:&lt;/span&gt;                 &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt; (UrlRewriteProvider.IsFurlEnabled)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum8&quot; style=&quot;color: #606060;&quot;&gt;   8:&lt;/span&gt;                 {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum9&quot; style=&quot;color: #606060;&quot;&gt;   9:&lt;/span&gt;                     Global.UrlRewriteProvider.ConvertToExternal(urlBuilder, &lt;span style=&quot;color: #0000ff;&quot;&gt;null&lt;/span&gt;, Encoding.UTF8);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum10&quot; style=&quot;color: #606060;&quot;&gt;  10:&lt;/span&gt;                 }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum11&quot; style=&quot;color: #606060;&quot;&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum12&quot; style=&quot;color: #606060;&quot;&gt;  12:&lt;/span&gt;                 var linkUrl = System.Web.HttpContext.Current.Server.HtmlEncode((&lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt;)urlBuilder);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum13&quot; style=&quot;color: #606060;&quot;&gt;  13:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum14&quot; style=&quot;color: #606060;&quot;&gt;  14:&lt;/span&gt;                 &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt;.Format(&lt;span style=&quot;color: #006080;&quot;&gt;&quot;QRCodeGenerator.aspx?url={0}&quot;&lt;/span&gt;, linkUrl);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum15&quot; style=&quot;color: #606060;&quot;&gt;  15:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum16&quot; style=&quot;color: #606060;&quot;&gt;  16:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum17&quot; style=&quot;color: #606060;&quot;&gt;  17:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum18&quot; style=&quot;color: #606060;&quot;&gt;  18:&lt;/span&gt;         &lt;span style=&quot;color: #008000;&quot;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum19&quot; style=&quot;color: #606060;&quot;&gt;  19:&lt;/span&gt;         &lt;span style=&quot;color: #008000;&quot;&gt;/// Gets the entry handler path.&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum20&quot; style=&quot;color: #606060;&quot;&gt;  20:&lt;/span&gt;         &lt;span style=&quot;color: #008000;&quot;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum21&quot; style=&quot;color: #606060;&quot;&gt;  21:&lt;/span&gt;         &lt;span style=&quot;color: #008000;&quot;&gt;/// &amp;lt;value&amp;gt;The entry handler path.&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum22&quot; style=&quot;color: #606060;&quot;&gt;  22:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt; EntryHandlerPath&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum23&quot; style=&quot;color: #606060;&quot;&gt;  23:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum24&quot; style=&quot;color: #606060;&quot;&gt;  24:&lt;/span&gt;             get&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum25&quot; style=&quot;color: #606060;&quot;&gt;  25:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum26&quot; style=&quot;color: #606060;&quot;&gt;  26:&lt;/span&gt;                 &lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt; path = Providers.StaticUrlProvider.Instance.GetUrl(Commerce.Constants.EntryViewCommandName);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum27&quot; style=&quot;color: #606060;&quot;&gt;  27:&lt;/span&gt;                 &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt; (!&lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt;.IsNullOrEmpty(path) &amp;amp;&amp;amp; path.StartsWith(&lt;span style=&quot;color: #006080;&quot;&gt;&quot;~&quot;&lt;/span&gt;, StringComparison.OrdinalIgnoreCase))&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum28&quot; style=&quot;color: #606060;&quot;&gt;  28:&lt;/span&gt;                 {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum29&quot; style=&quot;color: #606060;&quot;&gt;  29:&lt;/span&gt;                     path = path.Substring(1);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum30&quot; style=&quot;color: #606060;&quot;&gt;  30:&lt;/span&gt;                 }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum31&quot; style=&quot;color: #606060;&quot;&gt;  31:&lt;/span&gt;                 &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; path;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum32&quot; style=&quot;color: #606060;&quot;&gt;  32:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum33&quot; style=&quot;color: #606060;&quot;&gt;  33:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum34&quot; style=&quot;color: #606060;&quot;&gt;  34:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum35&quot; style=&quot;color: #606060;&quot;&gt;  35:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt; GetProductUrl(Entry entry)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum36&quot; style=&quot;color: #606060;&quot;&gt;  36:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum37&quot; style=&quot;color: #606060;&quot;&gt;  37:&lt;/span&gt;             var language = CultureInfo.CurrentUICulture.Name;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum38&quot; style=&quot;color: #606060;&quot;&gt;  38:&lt;/span&gt;             var url = &lt;span style=&quot;color: #0000ff;&quot;&gt;string&lt;/span&gt;.Empty;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum39&quot; style=&quot;color: #606060;&quot;&gt;  39:&lt;/span&gt;             Seo languageSeo = entry.SeoInfo.Where(seo =&amp;gt; seo.LanguageCode.Equals(language, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum40&quot; style=&quot;color: #606060;&quot;&gt;  40:&lt;/span&gt;             &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt; (languageSeo != &lt;span style=&quot;color: #0000ff;&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum41&quot; style=&quot;color: #606060;&quot;&gt;  41:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum42&quot; style=&quot;color: #606060;&quot;&gt;  42:&lt;/span&gt;                 url = languageSeo.Uri;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum43&quot; style=&quot;color: #606060;&quot;&gt;  43:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum44&quot; style=&quot;color: #606060;&quot;&gt;  44:&lt;/span&gt;             &lt;span style=&quot;color: #0000ff;&quot;&gt;else&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum45&quot; style=&quot;color: #606060;&quot;&gt;  45:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum46&quot; style=&quot;color: #606060;&quot;&gt;  46:&lt;/span&gt;                 url = EntryHandlerPath;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum47&quot; style=&quot;color: #606060;&quot;&gt;  47:&lt;/span&gt;                 url = UriSupport.AddQueryString(url, Commerce.Constants.ParameterEntryCode, entry.ID);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum48&quot; style=&quot;color: #606060;&quot;&gt;  48:&lt;/span&gt;                 UriSupport.AddLanguageSelection(url, language);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum49&quot; style=&quot;color: #606060;&quot;&gt;  49:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum50&quot; style=&quot;color: #606060;&quot;&gt;  50:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum51&quot; style=&quot;color: #606060;&quot;&gt;  51:&lt;/span&gt;             &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; url;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style=&quot;text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;&quot;&gt;&lt;span id=&quot;lnum52&quot; style=&quot;color: #606060;&quot;&gt;  52:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, &quot;Courier New&quot;, courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } --&gt;
&lt;p&gt;4. Result&lt;/p&gt;
&lt;p&gt;Now you can try with your mobile, open QR code scanner application and scan it!&lt;/p&gt;
&lt;p&gt;AlloyTech:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/link/9504a5baa4e3410db6507cbb749c815e.jpg&quot;&gt;&lt;img style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;clip_image002&quot; src=&quot;/link/72cd8ea472b44ad18c8bafc3a9c9bb62.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; width=&quot;338&quot; height=&quot;110&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/link/423a1700b18d4f6ebd39727f1251f3c4.jpg&quot;&gt;&lt;img style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;clip_image004&quot; src=&quot;/link/570f7e8f27d24ad5886aadb0dab1098b.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; width=&quot;339&quot; height=&quot;106&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Click Talk Commerce Sample:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/link/0dae15d18b39447c83a69a64533d8c38.jpg&quot;&gt;&lt;img style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;clip_image006&quot; src=&quot;/link/e483aece33a24f298ddf62cfd7de3548.jpg&quot; border=&quot;0&quot; alt=&quot;clip_image006&quot; width=&quot;241&quot; height=&quot;284&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope this will help marketing guy to have QR Code for your campaign. Enjoy EPiServer CMS, EPiServer Commerce and QR Code together&lt;/p&gt;</id><updated>2011-08-02T09:34:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>How to Add Facebook Like button to product page of EPiServer Commerce</title><link href="https://world.optimizely.com/blogs/Dung-Le/Dates/2010/7/How-to-Add-Facebook-Like-button-to-product-page-of-EPiServer-Commerce/" /><id>&lt;p&gt;&#183; Read the blog about &lt;a href=&quot;http://world.episerver.com/Blogs/Eric-Pettersson/Dates/2010/7/How-to-Add-Facebook-Like-Button-to-an-EPiServer-site/&quot;&gt;How to add Facebook Like button to an EPiServer site&lt;/a&gt; from Eric Pettersson and I think about “Recommend” button on EPiServer Commerce site.&lt;/p&gt; &lt;p&gt;If some product from EPiServer Commerce site is good and recommended by user, maybe his/her friends like the same product and expose that product to their friends as well. So by having a recommend button on product page of your site, you could get free advertising to a lot of users world-wide, and off course&amp;nbsp; without doing any old advertising style.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;How do we add the Facebook Recommend button?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Go to &lt;a href=&quot;http://developers.facebook.com/docs/reference/plugins/like&quot;&gt;Facebook&lt;/a&gt; and create your own button, should look something like this&lt;/p&gt; &lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 42px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt; &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;iframe&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;amp;amp;layout=standard&amp;amp;amp;show_faces=true&amp;amp;amp;width=450&amp;amp;amp;action=recommend&amp;amp;amp;colorscheme=light&amp;amp;amp;height=80&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;scrolling&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;no&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;frameborder&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;0&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;border:none; overflow:hidden; width:450px; height:80px;&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;allowTransparency&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;true&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;iframe&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;We need to change the “src” attribute of the iframe a little bit. We need to get our url instead of a static url.&lt;/p&gt;
&lt;p&gt;For that, create a property looks like this: &lt;/p&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;![CDATA[








.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, &quot;Courier New&quot;, courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.6%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 246px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
&lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;/// Gets the like URL for facebook.&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;/// &amp;lt;value&amp;gt;The like URL.&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;protected&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; LikeUrl&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt;     get&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt;     {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum9&quot;&gt;   9:&lt;/span&gt;         var siteurl = Configuration.Settings.Instance.SiteUrl;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum10&quot;&gt;  10:&lt;/span&gt;         var page = Page &lt;span style=&quot;color: #0000ff&quot;&gt;as&lt;/span&gt; PageBase;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum11&quot;&gt;  11:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (page != &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum12&quot;&gt;  12:&lt;/span&gt;         {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum13&quot;&gt;  13:&lt;/span&gt;             var code = page.CurrentPage.Property[&lt;span style=&quot;color: #006080&quot;&gt;&quot;ec&quot;&lt;/span&gt;].ToString();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum14&quot;&gt;  14:&lt;/span&gt;             Entry entry = CatalogContext.Current.GetCatalogEntry(code);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum15&quot;&gt;  15:&lt;/span&gt;             var ecfPagePath = GetProductUrl(entry, Request.QueryString[&lt;span style=&quot;color: #006080&quot;&gt;&quot;epslanguage&quot;&lt;/span&gt;] ?? ContentLanguage.PreferredCulture.Name);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum16&quot;&gt;  16:&lt;/span&gt;             var link = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; UrlBuilder(ecfPagePath);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum17&quot;&gt;  17:&lt;/span&gt;             var url = Server.UrlEncode(UriSupport.Combine(siteurl.ToString(), link.ToString()));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum18&quot;&gt;  18:&lt;/span&gt;             &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; url;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum19&quot;&gt;  19:&lt;/span&gt;         }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum20&quot;&gt;  20:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; Request.Url.ToString();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum21&quot;&gt;  21:&lt;/span&gt;     }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum22&quot;&gt;  22:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum24&quot;&gt;  24:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum25&quot;&gt;  25:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; GetProductUrl(Entry entry, &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; language)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum26&quot;&gt;  26:&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum27&quot;&gt;  27:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; str = &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;.Empty;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum28&quot;&gt;  28:&lt;/span&gt;     var languageSeo = entry.SeoInfo.Where(seo =&amp;gt; seo.LanguageCode.Equals(language,&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum29&quot;&gt;  29:&lt;/span&gt;                                     StringComparison.OrdinalIgnoreCase)).FirstOrDefault();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum30&quot;&gt;  30:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (languageSeo != &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum31&quot;&gt;  31:&lt;/span&gt;     {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum32&quot;&gt;  32:&lt;/span&gt;         str = languageSeo.Uri;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum33&quot;&gt;  33:&lt;/span&gt;     }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum34&quot;&gt;  34:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; str;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum35&quot;&gt;  35:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Then change the “src” attribute in the iframe to use our new property instead:&lt;/p&gt;
&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; height: 38px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
&lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; height: 23px; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;iframe&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;http://www.facebook.com/plugins/like.php?href=&amp;lt;%= LikeUrl %&amp;gt;&amp;amp;amp;layout=standard&amp;amp;amp;show_faces=true&amp;amp;amp;width=450&amp;amp;amp;action=recommend&amp;amp;amp;colorscheme=light&amp;amp;amp;height=80&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;scrolling&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;no&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;frameborder&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;0&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;border:none; overflow:hidden; width:450px; height:80px;&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;allowTransparency&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;true&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;iframe&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;![CDATA[








.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, &quot;Courier New&quot;, courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;Enjoy EPiServer Commerce and Facebook with this example :)&lt;/p&gt;</id><updated>2010-07-09T11:15:05.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Create Composer page type and content function using PageTypeBuilder 1.2</title><link href="http://dungle30.wordpress.com/?p=17" /><id>Introduction: Page Type Builder (a.k.a PTB) by Joel Abrahamsson is one of the most popular Open Source projects for EPiServer CMS developers. It helps increase developer productivity when creating EPiServer solutions. See http://pagetypebuilder.codeplex.com/ for information and links. EPiServer Composer: Using a very few main templates combined with independent inner templates and functions, you can use [&amp;#8230;]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://pixel.wp.com/b.gif?host=dungle30.wordpress.com&amp;#038;blog=12014610&amp;#038;post=17&amp;#038;subd=dungle30&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</id><updated>2010-06-24T13:36:23.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Create Global Navigation in EPiServer CMS 6 RC1</title><link href="https://world.optimizely.com/blogs/Dung-Le/Dates/2010/2/Create-Global-Navigation-in-EPiServer-CMS-6-RC1/" /><id>&lt;p align=&quot;left&quot;&gt;&lt;strong&gt;Intro&lt;/strong&gt;&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;The global navigation helps users navigate different integrated products such as EPiServer CMS, EPiServer Community, and EPiServer Mail but also third party products as ImageVault or similar integrated modules which would like to expose their interfaces to the logged on user.&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;The global navigation can be customized (it’s a new plugin-area) and it’s possible to insert the menu into both (custom) web forms and MVC views.&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;The menu is designed to be oriented on products and modules, so that each top menu item represents a product while the sub level menu contains the actual views/functions/parts of the product.&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;/link/fa242248a2e841e6aca9a3a02e87a733.png&quot; /&gt;&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;There are 3 solutions to make a new Global Navigation:&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;- Using MenuItemAttribute&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;- Using MenuProvider&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;- Using configuration section in web.config&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;Both MenuProvider and MenuItemAttribute need more configuration in web.config. Add assemblies section like this&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;&amp;lt;episerver.shell&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;protectedModules rootPath=&amp;quot;~/cms/UI/&amp;quot; &amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;Shell&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;assemblies&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add assembly=&amp;quot;EPiServer.Sample.GlobalNavigation.UI&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/assemblies&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/add&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add name=&amp;quot;CMS&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/protectedModules&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;publicModules rootPath=&amp;quot;~/public/&amp;quot; autoDiscovery=&amp;quot;Minimal&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/episerver.shell&amp;gt;&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;&lt;strong&gt;Print the Global Navigation menu on page&lt;/strong&gt;&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;ASP.NET MVC&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;&amp;lt;%@ Import Namespace=&amp;quot;EPiServer.Shell.Extensions&amp;quot; %&amp;gt;&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;&amp;lt;%= Html.GlobalMenu()%&amp;gt;&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;WebForms&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;&amp;lt;%@ Register TagPrefix=&amp;quot;sc&amp;quot; Assembly=&amp;quot;EPiServer.Shell&amp;quot;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Namespace=&amp;quot;EPiServer.Shell.Web.UI.WebControls&amp;quot; %&amp;gt;&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;&amp;lt;sc:ShellMenu runat=&amp;quot;server&amp;quot; SelectionPath=&amp;quot;/global/sample&amp;quot; Area=&amp;quot;Sample&amp;quot; /&amp;gt;&lt;/p&gt;  &lt;h4 align=&quot;left&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Current selection&lt;/font&gt;&lt;/h4&gt;  &lt;p align=&quot;left&quot;&gt;The menu tracks the current menu item automatically if the menu item is an route menu item. But it also supports that the user sets the selection path if they need to.&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;It is possible to set the selection directly from the Controller Action if the default MasterPage is used or it can be done from the view directly.&lt;/p&gt;  &lt;h5 align=&quot;left&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Controller Action&lt;/font&gt;&lt;/h5&gt;  &lt;h5 align=&quot;left&quot;&gt;this.ViewData[“SiteCenterMenuPath”] = “/global/sample”&lt;/h5&gt;  &lt;h5 align=&quot;left&quot;&gt;&lt;a name=&quot;_Toc245696350&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#000000&quot;&gt;View&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/h5&gt;  &lt;h5 align=&quot;left&quot;&gt;&amp;lt;%@ Import Namespace=&amp;quot;EPiServer.Shell.Extensions&amp;quot; %&amp;gt;&lt;/h5&gt;  &lt;h5 align=&quot;left&quot;&gt;&amp;lt;%= Html.GlobalMenu(&amp;quot;/global/sample&amp;quot;)%&amp;gt;&lt;/h5&gt;  &lt;h3 align=&quot;left&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Way 1: Change web.config &amp;lt;navigation&amp;gt;&lt;/font&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align=&quot;left&quot;&gt;Easiest way to do &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;left&quot;&gt;Suitable to config section, dropdown menu &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;left&quot;&gt;With Link menu item, we can provide fixed URL only &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div align=&quot;left&quot;&gt;   &lt;pre&gt;&amp;lt;episerver.shell&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160; &amp;lt;navigation&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add menuItemType=&amp;quot;Link&amp;quot; menuPath=&amp;quot;/global/sample&amp;quot;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; alignment=&amp;quot;Left&amp;quot; sortIndex=&amp;quot;1&amp;quot;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; target=&amp;quot;_self&amp;quot; text=&amp;quot;Sample&amp;quot;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; url=&amp;quot;http://localhost:81/&amp;quot; /&amp;gt; &lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160; &amp;lt;/navigation&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;lt;/episerver.shell&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;div align=&quot;left&quot;&gt;Properties of navigation item &lt;/div&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;div align=&quot;left&quot;&gt;Link is Url, like you click on EPiServer logo, or click on ViewMode (eye icon) &lt;/div&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;div align=&quot;left&quot;&gt;Section is like you click on CMS &lt;/div&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;div align=&quot;left&quot;&gt;DropDown is like you click on help (question mark) &lt;/div&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;div align=&quot;left&quot;&gt;Text and MenuPath are mandatory attributes &lt;/div&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;div align=&quot;left&quot;&gt;Link and DropDown can be nested under Section &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 align=&quot;left&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Way 2: Using MenuItemAttribute&lt;/font&gt;&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;div align=&quot;left&quot;&gt;Create webform or MVC Controller &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align=&quot;left&quot;&gt;It is possible to decorate MVC Controllers and WebForm code-behind classes with an attribute to make them appear in the menu &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align=&quot;left&quot;&gt;Easy way, but not flexible (security role, css &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h5 align=&quot;left&quot;&gt;&lt;a name=&quot;_Toc245696340&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;WebForm Attributes&lt;/font&gt;&lt;/a&gt;&lt;/h5&gt;

&lt;p align=&quot;left&quot;&gt;[MenuItem(MenuPaths.Global + &amp;quot;/sample&amp;quot;, &lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;Text = &amp;quot;Sample&amp;quot;,&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;TextResourceKey = &amp;quot;/sample&amp;quot;,&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;Url = &amp;quot;Edit/Default.aspx&amp;quot;&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;)]&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;public partial class DefaultPage : SystemPageBase&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;{&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;}&lt;/p&gt;

&lt;h5 align=&quot;left&quot;&gt;&lt;a name=&quot;_Toc245696341&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;MVC Attributes&lt;/font&gt;&lt;/a&gt;&lt;/h5&gt;

&lt;p align=&quot;left&quot;&gt;public class DashboardController : Controller&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;{&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;[MenuItem(MenuPaths.Global + &amp;quot;/sample&amp;quot;, &lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;Text = &amp;quot;Sample&amp;quot;&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;)]&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;public ActionResult Index()&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;{&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;}&lt;/p&gt;

&lt;p align=&quot;left&quot;&gt;}&lt;/p&gt;

&lt;h3 align=&quot;left&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Way 3: Using MenuProvider&lt;/font&gt;&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;div align=&quot;left&quot;&gt;A menu provider returns an enumeration of menu items &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align=&quot;left&quot;&gt;EPiServer will attach the return menu items to the Global Navigation &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align=&quot;left&quot;&gt;Items of MenuProvider live in peace with configured from navigation (in web.config) and reflection attribute. &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;[Export(typeof(IMenuProvider))]&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160; public class SampleMenuProvider : IMenuProvider&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160; &lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public IEnumerable&amp;lt;MenuItem&amp;gt; GetMenuItems()&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UrlMenuItem item = new UrlMenuItem(&amp;quot;Sample&amp;quot;, MenuPaths.Global + &amp;quot;/sample&amp;quot;, &amp;quot;/Default.aspx&amp;quot;);&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; item.SortIndex = 1;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; item.Alignment = MenuItemAlignment.Left;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; item.IsStyled = true;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; item.IsAvailable = request =&amp;gt; PrincipalInfo.HasAdminAccess;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return new MenuItem[] { item };&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/pre&gt;
&lt;/div&gt;

&lt;div align=&quot;left&quot;&gt;
  &lt;pre&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/pre&gt;
&lt;/div&gt;</id><updated>2010-02-01T12:08:47.0000000Z</updated><summary type="html">Blog post</summary></entry></feed>