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

<channel>
	<title>MyLifeBBS &#187; DotNetNuke</title>
	<atom:link href="http://www.mylifebbs.com/category/dotnetnuke/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mylifebbs.com</link>
	<description>The World without Boundaries</description>
	<lastBuildDate>Sat, 05 Jun 2010 14:17:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</title>
		<link>http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/</link>
		<comments>http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 08:56:30 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[DotNetNuke Captcha]]></category>
		<category><![CDATA[reCaptcha]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/283/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/</guid>
		<description><![CDATA[If you don’t know what is re-Captcha, this article: What is re-Captcha might help you to get on foot before starting this easy implement guide to install re-CaptCha into your DNN Modules. 
DotNetNuke users has long frustrated by the poor design of DotNetNuke Captcha which is has a critical flaw where the Captcha image will [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 3'>DotNetNuke Customizing your Login &#8211; PART 3</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/' rel='bookmark' title='Permanent Link: How to modify DotNetNuke Login Page? The Easy Way.'>How to modify DotNetNuke Login Page? The Easy Way.</a></li>
<li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>If you don’t know what is re-Captcha, this article: <a href="http://recaptcha.net/learnmore.html" target="_blank">What is re-Captcha</a> might help you to get on foot before starting this easy implement guide to install re-CaptCha into your DNN Modules. </p>
<p>DotNetNuke users has long frustrated by the poor design of DotNetNuke Captcha which is has a critical flaw where the Captcha image will be cached in the server and never being refresh if you set the cache the module or the whole page. One of the common error is the DotNetNuke Captcha’s image not showing issue when the DotNetNuke has <a href="http://www.snapsis.com/Default.aspx?tabid=589&amp;CATReferrer=5124" rel="nofollow" target="_blank">PageBlaster</a> installed, it is a big trade off for a big site to lack of either one of them.</p>
<p> <span id="more-283"></span>
<p>Despite the <a href="http://recaptcha.net/whyrecaptcha.html" target="_blank">advantages of using re-Captcha</a>, it has a big flaw which it has to connect to the internet to have it working properly. Else, let’s get started modifying your modules without the need of the module source code and recompiling them.</p>
<p>Step 1: <a href="https://admin.recaptcha.net/accounts/signup/" target="_blank">Register yourself a Key token</a> and <a href="http://code.google.com/p/recaptcha/downloads/list?q=label:aspnetlib-Latest" target="_blank">download the re-Captcha</a>.</p>
<p>Step 2: Unzip the download file and upload Recaptcha.dll to your DotNetNuke bin folder via FTP. (/httpdocs/bin)</p>
<p>Now the following guide uses Ventrian’s NewsArticle Module for demonstration.</p>
<p>Step 3: Download the ASCX file that handling News Article Comment layout from <em>/DesktopModules/DnnForge &#8211; NewsArticles/Controls/PostComment.ascx</em></p>
<p>Step 4: Open it with an editor and insert the reCAPTCHA control on top of the ASCX file (after Page control)</p>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;%@ Control Language=<span style="color: #006080">&quot;vb&quot;</span> AutoEventWireup=<span style="color: #006080">&quot;false&quot;</span> CodeBehind=<span style="color: #006080">&quot;PostComment.ascx.vb&quot;</span> <span style="color: #0000ff">Inherits</span>=<span style="color: #006080">&quot;Ventrian.NewsArticles.Controls.PostComment&quot;</span> %&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;%@ Register TagPrefix=<span style="color: #006080">&quot;dnn&quot;</span> <span style="color: #0000ff">Assembly</span>=<span style="color: #006080">&quot;DotNetNuke&quot;</span> <span style="color: #0000ff">Namespace</span>=<span style="color: #006080">&quot;DotNetNuke.UI.WebControls&quot;</span>%&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;%@ Register TagPrefix=<span style="color: #006080">&quot;recaptcha&quot;</span> <span style="color: #0000ff">Namespace</span>=<span style="color: #006080">&quot;Recaptcha&quot;</span> <span style="color: #0000ff">Assembly</span>=<span style="color: #006080">&quot;Recaptcha&quot;</span> %&gt;</pre>
</p></div>
</div>
<p>Step 5: Scroll down around line 28 where the default DNN Captcha is called:</p>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;dnn:captchacontrol id=<span style="color: #006080">&quot;ctlCaptcha&quot;</span> captchawidth=<span style="color: #006080">&quot;130&quot;</span> captchaheight=<span style="color: #006080">&quot;40&quot;</span> cssclass=<span style="color: #006080">&quot;Normal&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span> errorstyle-cssclass=<span style="color: #006080">&quot;NormalRed&quot;</span> /&gt;</pre>
</p></div>
</div>
<p>and insert the reCaptcha after it:</p>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;dnn:captchacontrol id=<span style="color: #006080">&quot;ctlCaptcha&quot;</span> captchawidth=<span style="color: #006080">&quot;130&quot;</span> captchaheight=<span style="color: #006080">&quot;40&quot;</span> cssclass=<span style="color: #006080">&quot;Normal&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span> errorstyle-cssclass=<span style="color: #006080">&quot;NormalRed&quot;</span> /&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;recaptcha:RecaptchaControl</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">ID=<span style="color: #006080">&quot;recaptcha&quot;</span></pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">runat=<span style="color: #006080">&quot;server&quot;</span></pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">PublicKey=<span style="color: #006080">&quot;[TOKEN]&quot;</span>            </pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">PrivateKey=<span style="color: #006080">&quot;[TOKEN]&quot;</span></pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">/&gt;</pre>
</p></div>
</div>
<p>Replace the [TOKEN] with the key you get from the registration and That’s it! Now upload and replace the PostComment.ascx and go to NewsArticle Admin Setting to disable the default comment Captcha. However, due to the limitation of not touching the VB files, it is impossible to create some condition like only show reCaptcha to unregister visitors.</p>
<p>However, if you wish to change the reCaptcha design, here’s the <a href="http://recaptcha.net/apidocs/captcha/client.html" target="_blank">guide to customize the reCaptcha design</a>.</p>
<p>Hopefully reCaptcha will be integrated into more DNN modules. Btw, the above method will not work in DotNetNuke Feedback and UserDefinedTable Module due to the way they code the module.</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 3'>DotNetNuke Customizing your Login &#8211; PART 3</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/' rel='bookmark' title='Permanent Link: How to modify DotNetNuke Login Page? The Easy Way.'>How to modify DotNetNuke Login Page? The Easy Way.</a></li>
<li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Show DNN Module in Another Module&#8217;s Generated Page.</title>
		<link>http://www.mylifebbs.com/2009/12/show-dnn-module-in-another-modules-generated-page/</link>
		<comments>http://www.mylifebbs.com/2009/12/show-dnn-module-in-another-modules-generated-page/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 01:34:20 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Request URL]]></category>
		<category><![CDATA[Show Module only specific page]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/2009/12/show-dnn-module-in-another-modules-generated-page/</guid>
		<description><![CDATA[One of the greatest feature of DotNetNuke is to allow use to show the module in the page they like based on the viewer’s role and permission. However, this only apply to DotNetNuke generated pages. So, how about showing a module only in a page that is generated by Blog Module for example?
The solution is [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
<li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
<li><a href='http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/' rel='bookmark' title='Permanent Link: Making DotNetNuke Logo Link SEO Friendly!'>Making DotNetNuke Logo Link SEO Friendly!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>One of the greatest feature of DotNetNuke is to allow use to show the module in the page they like based on the viewer’s role and permission. However, this only apply to DotNetNuke generated pages. So, how about showing a module only in a page that is generated by Blog Module for example?</p>
<p>The solution is simple, all you need to do is add the following lines into your skin.ascx file:</p>
<p> <span id="more-282"></span>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;% <span style="color: #0000ff">If</span> Regex.IsMatch (Request.URL.ToString, <span style="color: #006080">&quot;REGEX HERE&quot;</span>) <span style="color: #0000ff">Then</span> %&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;div id=<span style="color: #006080">&quot;ExtraPane&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span>&gt;&lt;/div&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;% <span style="color: #0000ff">End</span> <span style="color: #0000ff">If</span> %&gt;</pre>
</p></div>
</div>
<p>The idea is to show a module pane only when a specific page is called. In the above example, we use ASP.NET Regex to match with the requested URL with the self defined Regex value “REGEX HERE”.</p>
<p>Using Ventrian’s Article Module for example, the default URL of a Article Page looks something like this:<br />
  <br /><em>http://www.example.com/NewsArticles/tabid/218/articleType/<strong>ArticleView</strong>/articleId/384/Example-Page.aspx</em></p>
<p>In the url above, we can easily identify the unique parameter of the module’s generated url: <em><strong>ArticleView, </strong></em>we use this as the Regex filter and replace it with&#160; “REGEX HERE” and you have this:</p>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;% <span style="color: #0000ff">If</span> Regex.IsMatch (Request.URL.ToString, <span style="color: #006080">&quot;ArticleView&quot;</span>) <span style="color: #0000ff">Then</span> %&gt;</pre>
</p></div>
</div>
<p>If you worry you might have the word “ArticleView” word in other pages’ URL, you could put a longer regex value to filter it:&#160; &amp;tabid=218&amp;ArticleView=</p>
<p><strong>Important Note:</strong> The “Request.URL.ToString” calls the raw url which looks like this:</p>
<p><em>Default.aspx?TabId=88&amp;ArticleView=</em></p>
<p><strong></strong></p>
<p>Thus, your Regex Value must match with the raw url and not the Human Friendly Url that you see in the web browser.</p>
<p>If you do not know the raw url of the module generated page’s url, you could add this into your skin file to find it out:</p>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;!-- &lt;%= Request.URL.ToString %&gt; --&gt;</pre>
</p></div>
</div>
<p>Note: &lt;!&#8211;&#160;&#160; &#8211;&gt; is added so that it will not show in the normal view but you can see it via browser’s view page source function. This is to avoid interference in production site.</p>
<p>For a live demonstration, you can see this page:<br />
  <br /><em>http://www.goeatout.com.my/Restaurants/Promotions.aspx</em> and</p>
<p><em>http://www.goeatout.com.my/Restaurants/Promotions/Details/View/PID/31315/Hong-La-Qiao-Restaurant-Steamboat-Buffet.aspx</em></p>
<p>In the second link, a module “More Related Dining Promotions” is added at the page bottom which only shows in the page with “PID” in the URL but not in any of it’s parent page <em>/Promotions/</em></p>
<p>For advanced combination, you could add “AND” in the code:</p>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;% <span style="color: #0000ff">If</span> Regex.IsMatch (Request.URL.ToString, <span style="color: #006080">&quot;REGEX HERE&quot;</span>) <span style="color: #0000ff">AND</span> DotNetNuke.Security.PortalSecurity.IsInRoles(PortalSettings.AdministratorRoleName) <span style="color: #0000ff">Then</span> %&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        &lt;div id=<span style="color: #006080">&quot;ExtraPane&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span>&gt;&lt;/div&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;% <span style="color: #0000ff">End</span> <span style="color: #0000ff">If</span> %&gt;</pre>
</p></div>
</div>
<p>In the example above, it will show the extra pane only if the request url is match with your regex and the viewer has administrator role.</p>
<p>Have fun^^</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
<li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
<li><a href='http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/' rel='bookmark' title='Permanent Link: Making DotNetNuke Logo Link SEO Friendly!'>Making DotNetNuke Logo Link SEO Friendly!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/12/show-dnn-module-in-another-modules-generated-page/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Give an unique id for every DNN Containers</title>
		<link>http://www.mylifebbs.com/2009/10/give-an-unique-id-for-every-dnn-containers/</link>
		<comments>http://www.mylifebbs.com/2009/10/give-an-unique-id-for-every-dnn-containers/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 09:36:00 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Unique Container ID]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/2009/10/give-an-unique-id-for-every-dnn-containers/</guid>
		<description><![CDATA[Inspired by Think of Design&#8217;s avoid span in module title and amount of requests including myself to have a unique id for every containers in DotNetNuke, I’ve came out with this simple solution to ease the designing works in DotNetNuke Skinning.


&#60;!-- From thinkofdesign.com --&#62;
&#60;%@ Control language=&#34;vb&#34; AutoEventWireup=&#34;false&#34; Explicit=&#34;True&#34; Inherits=&#34;DotNetNuke.UI.Containers.Container&#34; %&#62;
 &#60;%@ Register TagPrefix=&#34;dnn&#34; TagName=&#34;TITLE&#34; Src=&#34;~/Admin/Containers/Title.ascx&#34; [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
<li><a href='http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 3'>DotNetNuke Customizing your Login &#8211; PART 3</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/' rel='bookmark' title='Permanent Link: How to modify DotNetNuke Login Page? The Easy Way.'>How to modify DotNetNuke Login Page? The Easy Way.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Inspired by Think of Design&#8217;s <a href="http://www.thinkofdesign.com/blog/id/66/how-to-avoid-the-span-in-the-dnntitle.aspx" target="_blank">avoid span in module title</a> and amount of requests including myself to have a unique id for every containers in DotNetNuke, I’ve came out with this simple solution to ease the designing works in DotNetNuke Skinning.</p>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;!-- From thinkofdesign.com --&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;%@ Control language=<span style="color: #006080">&quot;vb&quot;</span> AutoEventWireup=<span style="color: #006080">&quot;false&quot;</span> Explicit=<span style="color: #006080">&quot;True&quot;</span> <span style="color: #0000ff">Inherits</span>=<span style="color: #006080">&quot;DotNetNuke.UI.Containers.Container&quot;</span> %&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;%@ Register TagPrefix=<span style="color: #006080">&quot;dnn&quot;</span> TagName=<span style="color: #006080">&quot;TITLE&quot;</span> Src=<span style="color: #006080">&quot;~/Admin/Containers/Title.ascx&quot;</span> %&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;%@ Register TagPrefix=<span style="color: #006080">&quot;dnn&quot;</span> TagName=<span style="color: #006080">&quot;Actions&quot;</span> Src=<span style="color: #006080">&quot;~/Admin/Containers/Actions.ascx&quot;</span> %&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;dnn:title runat=<span style="color: #006080">&quot;server&quot;</span> id=<span style="color: #006080">&quot;dnnTitle&quot;</span> visible=<span style="color: #006080">&quot;false&quot;</span> /&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;% <span style="color: #0000ff">Dim</span> ModuleTitle <span style="color: #0000ff">As</span> <span style="color: #0000ff">String</span> = GetPortalModuleBase(dnnTitle).ModuleConfiguration.ModuleTitle %&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;div <span style="color: #0000ff">class</span>=<span style="color: #006080">&quot;common&quot;</span>&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;h3&gt;&lt;%= ModuleTitle %&gt;&lt;/h3&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;dnn:Actions runat=<span style="color: #006080">&quot;server&quot;</span> id=<span style="color: #006080">&quot;dnnActions&quot;</span> /&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;div id=<span style="color: #006080">&quot;ContentPane&quot;</span> runat=<span style="color: #006080">&quot;server&quot;</span> /&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> &lt;/div&gt; </pre>
</p></div>
</div>
<p>Using the same logic, we can retrieve the module id by modifying the DNN property code:</p>
<p><span id="more-274"></span></p>
<div style="border-bottom: gray 1px solid; border-left: gray 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: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;% <span style="color: #0000ff">Dim</span> ConModule <span style="color: #0000ff">As</span> DotNetNuke.Entities.Modules.ModuleInfo = DotNetNuke.UI.Containers.Container.GetPortalModuleBase(<span style="color: #0000ff">Me</span>).ModuleConfiguration %&gt;</pre>
<pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">&lt;div id=<span style="color: #006080">&quot;Container&lt;%=ConModule.ModuleID %&gt;&quot;</span> <span style="color: #0000ff">class</span>=<span style="color: #006080">&quot;PekoOutterCon con180&quot;</span>&gt;</pre>
</p></div>
</div>
<p>Theoretically, all you need to do is to change the .ModuleTitle to .ModuleID. Since CSS id cannot start with a number, you will need to add some word before calling out the ModuleID in the div.</p>
<p>However, you will find that if you logout from DNN, the module will failed to call out the correct ModuleID.</p>
<p>Thus, you will have to define that correct container and ModuleInfo.</p>
<p>Now you can change the individual container without interfering with other DNN Container.</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
<li><a href='http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 3'>DotNetNuke Customizing your Login &#8211; PART 3</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/' rel='bookmark' title='Permanent Link: How to modify DotNetNuke Login Page? The Easy Way.'>How to modify DotNetNuke Login Page? The Easy Way.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/10/give-an-unique-id-for-every-dnn-containers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Best Free JavaScript and CSS Compressor to Optimized your Website.</title>
		<link>http://www.mylifebbs.com/2009/10/best-free-javascript-and-css-compressor-to-optimized-your-website/</link>
		<comments>http://www.mylifebbs.com/2009/10/best-free-javascript-and-css-compressor-to-optimized-your-website/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 02:54:59 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[JS Compression]]></category>
		<category><![CDATA[Minify Javascript]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/2009/10/best-free-javascript-and-css-compressor-to-optimized-your-website/</guid>
		<description><![CDATA[If you are digging into DotNetNuke website optimization, I’m sure you have been struggling on it. It’s not easy to optimize all the JavaScript and CSS in robust web application like DotNetNuke. If you’re a heavy users and afford to pay for solution, then the simplest way is to buy all in one compressor like [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/03/a-little-talk-on-website-template-and-skin-design/' rel='bookmark' title='Permanent Link: A little Talk on website Template and skin design'>A little Talk on website Template and skin design</a></li>
<li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
<li><a href='http://www.mylifebbs.com/2008/12/malaysia-police-official-website/' rel='bookmark' title='Permanent Link: Malaysia Police Official Website.'>Malaysia Police Official Website.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>If you are digging into DotNetNuke website optimization, I’m sure you have been struggling on it. It’s not easy to optimize all the JavaScript and CSS in robust web application like DotNetNuke. If you’re a heavy users and afford to pay for solution, then the simplest way is to buy all in one compressor like S<a href="http://www.snowcovered.com/Snowcovered2/Default.aspx?tabid=242&amp;PackageID=15078&amp;r=1709a79d1b" rel="nofollow" target="_blank">napsis PageBlaster Pro</a> to merge and compress all JavaScripts. However, this is not always the solution if you have other modules and setting in your DNN. Most of the time merging the DNN Core JS will result in break functionality to you web portal.</p>
<p> <span id="more-264"></span>
</p>
<p>From my past experience, it is better not to touch the DNN JavaScript unless you know what are you doing. Thus the best practice is to compress the JavaScript and CSS into a smaller files. There are a lot of compression tools and those free only most of the time is outdated and not error proof to your script.</p>
<p>Thus, the best way is to copy a compressed script that already tested in the browser! First you need to have FireFox web Browser, then you will need to install <a href="http://getfirebug.com/" target="_blank">FireBug</a> and <a href="http://code.google.com/speed/page-speed/" target="_blank">Google Page Speed Analyzer plugin</a>.</p>
<p>Yup, it’s from Google! Having confidence now? Now fire up your PageSpeed on the webpage that have the JS loaded and expand the JS node from it:</p>
<p><a href="http://www.mylifebbs.com/wp-content/uploads/2009/10/googlepagespeedsnapshot.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="google-page-speed-snapshot" border="0" alt="google-page-speed-snapshot" src="http://www.mylifebbs.com/wp-content/uploads/2009/10/googlepagespeedsnapshot_thumb.jpg" width="637" height="252" /></a> </p>
<p>Click on the minified version link and you will be able to download the minified version of JavaScript, replace it with your original JS file and you will have a 100% safe and Free Compressed JS, Hooray!</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/03/a-little-talk-on-website-template-and-skin-design/' rel='bookmark' title='Permanent Link: A little Talk on website Template and skin design'>A little Talk on website Template and skin design</a></li>
<li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
<li><a href='http://www.mylifebbs.com/2008/12/malaysia-police-official-website/' rel='bookmark' title='Permanent Link: Malaysia Police Official Website.'>Malaysia Police Official Website.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/10/best-free-javascript-and-css-compressor-to-optimized-your-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making DIV Containers Same Height to each other.</title>
		<link>http://www.mylifebbs.com/2009/10/making-div-cotainers-same-height-to-each-other/</link>
		<comments>http://www.mylifebbs.com/2009/10/making-div-cotainers-same-height-to-each-other/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 02:25:00 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Same Height Container]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/2009/10/making-div-cotainers-same-height-to-each-other/</guid>
		<description><![CDATA[Often Portal based web design will have flexible height on all content columns. However, sometimes it will be very ugly if your content is too long and leaving your right column, for example blank.
There are many scriptless, pure CSS solutions to fix this problem but turns out you have to write a lot of CSS [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/10/give-an-unique-id-for-every-dnn-containers/' rel='bookmark' title='Permanent Link: Give an unique id for every DNN Containers'>Give an unique id for every DNN Containers</a></li>
<li><a href='http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/' rel='bookmark' title='Permanent Link: Making DotNetNuke Logo Link SEO Friendly!'>Making DotNetNuke Logo Link SEO Friendly!</a></li>
<li><a href='http://www.mylifebbs.com/2009/10/best-free-javascript-and-css-compressor-to-optimized-your-website/' rel='bookmark' title='Permanent Link: Best Free JavaScript and CSS Compressor to Optimized your Website.'>Best Free JavaScript and CSS Compressor to Optimized your Website.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Often Portal based web design will have flexible height on all content columns. However, sometimes it will be very ugly if your content is too long and leaving your right column, for example blank.</p>
<p>There are many scriptless, pure CSS solutions to fix this problem but turns out you have to write a lot of CSS and html to make it compatible in all type of browsers. This is just not applicable for heavy web applications like DotNetNuke.</p>
<p> <span id="more-262"></span>
</p>
<p>Well, the solution is simple. With the pre-installed jquery in DNN5, all you need is to include a simple script like below in your DNN Page header to adjust your content panes height:</p>
<pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"> $(<span style="color: #0000ff">document</span>).ready(<span style="color: #0000ff">function</span>() {
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"></pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        <span style="color: #0000ff">var</span> sameHeight = $(&quot;<span style="color: #8b0000">#DNN_ContentPane</span>&quot;).height();
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		  $(&quot;<span style="color: #8b0000">#DNN_RightPane</span>&quot;).height(sameHeight);
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    });
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"></pre>
</pre>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/10/give-an-unique-id-for-every-dnn-containers/' rel='bookmark' title='Permanent Link: Give an unique id for every DNN Containers'>Give an unique id for every DNN Containers</a></li>
<li><a href='http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/' rel='bookmark' title='Permanent Link: Making DotNetNuke Logo Link SEO Friendly!'>Making DotNetNuke Logo Link SEO Friendly!</a></li>
<li><a href='http://www.mylifebbs.com/2009/10/best-free-javascript-and-css-compressor-to-optimized-your-website/' rel='bookmark' title='Permanent Link: Best Free JavaScript and CSS Compressor to Optimized your Website.'>Best Free JavaScript and CSS Compressor to Optimized your Website.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/10/making-div-cotainers-same-height-to-each-other/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improve your DotNetNuke SEO Performance by knowing Long ASP.NET View State Issue in DNN.</title>
		<link>http://www.mylifebbs.com/2009/10/improve-your-dotnetnuke-seo-performance-by-knowing-long-asp-net-view-state-issue-in-dnn/</link>
		<comments>http://www.mylifebbs.com/2009/10/improve-your-dotnetnuke-seo-performance-by-knowing-long-asp-net-view-state-issue-in-dnn/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 13:26:45 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/2009/10/improve-your-dotnetnuke-seo-performance-by-knowing-long-asp-net-view-state-issue-in-dnn/</guid>
		<description><![CDATA[Recently Microsoft released its series of IIS administration tools. Finally, there’s a Search Engine Optimization Tool that best analyze ASP.NET website. Who else is better understand the limitation and problems in ASP.NET than itself? Not saying than Asp.net is not good, other framework has their own problems as well and have a lot of analysis [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
<li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
<li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-parent-portal-and-hosting-dns-setting/' rel='bookmark' title='Permanent Link: DotNetNuke Parent Portal and Hosting DNS Setting.'>DotNetNuke Parent Portal and Hosting DNS Setting.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Recently Microsoft released its series of IIS administration tools. Finally, there’s a Search Engine Optimization Tool that best analyze ASP.NET website. Who else is better understand the limitation and problems in ASP.NET than itself? Not saying than Asp.net is not good, other framework has their own problems as well and have a lot of analysis tools since long time ago.</p>
<p>I haven’t test it much since it only support IIS7, It means you have to have it running on Vista or Windows Server 2008. What a shame? Anyway, it’s best if you can analyze your DotNetNuke problem before going to a live server especially if you’re on a shared server where you can test anything on the server side.</p>
<p>Most of the DotNetNuke users will have a <a href="http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/118/threadid/332735/scope/posts/Default.aspx" target="_blank">long view_state problem</a> if there is more than 5 different modules on the same page and probably get the warning message if you run the SEO Toolkit.</p>
<p>While past argument was that Search Engine Crawlers do not read them, it still have a great impact on your DotNetNuke Website Performance because the long view_state of DNN takes an average of 50Kb extra weight for crawler to download the page before indexing it.<span id="more-256"></span></p>
<p>If you have more than hundreds of pages with a lot of modules in it, most likely the crawler stomach will be fully filled after going for hundred of pages. There’s a quota of how many pages and the total of bytes to download every time a robot visit your website. Not only that it will affect the speed of indexing, it takes a lot of bandwidth from your server which is a impact if you are putting your DNN in a low cost shared server.</p>
<blockquote><p>In summary, from my experience, most module developers do not optimize view state of their modules… &#8212; <em>Sebastian Leupold, DNN Core Team Member</em></p></blockquote>
<p>There are 2 methods to solve this problem and the common one will be moving the view state to the page bottom. This does help little on the page rendering while a page is loaded but it won’t help much in Internet Explorer as it will always load and render the whole page before showing the content to the reader.</p>
<p>Thus, another method is simply store the view state in the memory. You can do that by going to the DNN Host Setting Panel and look for Page State Persistence &gt; Memory. However, doing so will make few core and third parties modules stop working due to the poor managed view state storing. (Most probably the first thing to break is AJAX Modules)</p>
<p>If you’re running DNN 5 and there is not “Page State Persistence” Setting in the Hosting Setting, Weird huh? You can add it back by running the following SQL statement in Host &gt; SQL</p>
<pre>
<pre style="margin: 0em; background-color: #ffffff; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">Turn it <span style="color: #0000ff">on</span>--</pre>
<pre style="margin: 0em; background-color: #ffffff; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">   UPDATE HostSettings <span style="color: #0000ff">SET</span> SettingValue = <span style="color: #008000">'M' WHERE SettingName = 'PageStatePersister'</span></pre>
<pre style="margin: 0em; background-color: #ffffff; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">Turn it off--</pre>
<pre style="margin: 0em; background-color: #ffffff; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">   UPDATE HostSettings <span style="color: #0000ff">SET</span> SettingValue = <span style="color: #008000">'P' WHERE SettingName = 'PageStatePersister'</span></pre>
<pre style="margin: 0em; background-color: #ffffff; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"><span style="color: #0000ff">Then</span> click the "<span style="color: #8b0000">Restart Application</span>" link button.</pre>
</pre>
<p>If you wish to know why is it removed since DNN5 and added back, you can dig it from here: <a href="http://support.dotnetnuke.com/issue/ViewIssue.aspx?ID=9254&amp;PROJID=2" target="_blank">Removing DNN 5 Page State Persistence Setting</a> and <a href="http://support.dotnetnuke.com/issue/ViewIssue.aspx?ID=10613&amp;PROJID=2" target="_blank">PageStatePersistence: Setting gone, but functionality remains</a>.</p>
<p>Let’s download the <a href="http://www.iis.net/extensions/SEOToolkit" target="_blank">Microsoft SEO Toolkit</a> and give it a try. If you’re wondering how to move the DNN view_state to bottom, you can try <a href="http://www.snapsis.com/DotNetNuke-Performance-Caching-Compression-Optimization.aspx" target="_blank">Snapsis PageBlaster</a> but moving the view_state to bottom may still affect some modules, be sure to check the capability before going for it.</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
<li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
<li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-parent-portal-and-hosting-dns-setting/' rel='bookmark' title='Permanent Link: DotNetNuke Parent Portal and Hosting DNS Setting.'>DotNetNuke Parent Portal and Hosting DNS Setting.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/10/improve-your-dotnetnuke-seo-performance-by-knowing-long-asp-net-view-state-issue-in-dnn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Modify Ventrian Property Agent</title>
		<link>http://www.mylifebbs.com/2009/10/how-to-modify-ventrian-property-agent/</link>
		<comments>http://www.mylifebbs.com/2009/10/how-to-modify-ventrian-property-agent/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 10:17:50 +0000</pubDate>
		<dc:creator>inspiron64</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[ventrian property agent]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/?p=253</guid>
		<description><![CDATA[
If you&#8217;re using Dotnetnuke and Ventrian Property Agent to build your webpage, sure you like to know how can modify ventrian PA by yourself.
Before we start to modify Ventrian PA Module, you need to download the File below:


Dotnetnuke version 4.x or 5.x


Ventrian Property Agent Install 	File and Source File (Any Version)


First, Install a Dotnetnuke in [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/03/changing-ventrian-property-agent-lightbox-buttons/' rel='bookmark' title='Permanent Link: Changing Ventrian Property Agent LightBox Buttons'>Changing Ventrian Property Agent LightBox Buttons</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/' rel='bookmark' title='Permanent Link: How to modify DotNetNuke Login Page? The Easy Way.'>How to modify DotNetNuke Login Page? The Easy Way.</a></li>
<li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } 		A:link { so-language: zxx } --></p>
<p style="margin-bottom: 0in">If you&#8217;re using Dotnetnuke and Ventrian Property Agent to build your webpage, sure you like to know how can modify ventrian PA by yourself.</p>
<p style="margin-bottom: 0in">Before we start to modify Ventrian PA Module, you need to download the File below:<span id="more-253"></span></p>
<ol>
<li>
<p style="margin-bottom: 0in">Dotnetnuke version 4.x or 5.x</p>
</li>
<li>
<p style="margin-bottom: 0in">Ventrian Property Agent Install 	File and Source File (Any Version)</p>
</li>
</ol>
<p style="margin-bottom: 0in">First, Install a Dotnetnuke in your Localhost. You can download the Dotnentuke from <a href="http://www.dotnetnuke.com/">http://www.dotnetnuke.com</a><a href="http://www.dotnetnuke.com/"><span style="text-decoration: none"> </span></a></p>
<p style="margin-bottom: 0in">After install Dotnetnuke, open your Website and install the Ventrian Property Agent using the Install File that you download. When you finish install the Ventrian PA Module, try to import a template on it and fill in a new property after import a new template. Template can be downloaded from <a href="http://www.ventrian.com/">http://www.ventrian.com</a></p>
<p style="margin-bottom: 0in">Ok. When all of this have been done, unzip the Ventrian Property Agent Source File. Copy and Paste all the files on it to the Ventrian PA that you installed. Normally the Folder will be on C:\Inetpub\wwwroot\(your DNN name)\DesktopModules\PropertyAgent</p>
<p style="margin-bottom: 0in">Open the folder and find a file which name “Ventrian.PropertyAgent.vbproj”. Open it with Notepad, and scroll to bottom. You will see a line which  like</p>
<p style="margin-bottom: 0in">&lt;IISUrl&gt;<a href="http://localhost/DotNetNuke455/DesktopModules/PropertyAgent">http://localhost/DotNetNuke455/DesktopModules/PropertyAgent</a>&lt;/IISUrl&gt;</p>
<p style="margin-bottom: 0in">
<p style="margin-bottom: 0in">Change it to</p>
<p style="margin-bottom: 0in">&lt;IISUrl&gt;<a href="http://localhost/%28your">http://localhost/(your</a> DNN name)/DesktopModules/PropertyAgent&lt;/IISUrl&gt;</p>
<p style="margin-bottom: 0in">AND</p>
<p style="margin-bottom: 0in">&lt;IISAppRootUrl&gt;<a href="http://localhost/DotNetNuke455">http://localhost/DotNetNuke455</a>&lt;/IISAppRootUrl&gt;</p>
<p style="margin-bottom: 0in">Change it to</p>
<p style="margin-bottom: 0in">&lt;IISAppRootUrl&gt;<a href="http://localhost/%28your">http://localhost/(your</a> DNN name)&lt;/IISAppRootUrl&gt;</p>
<p style="margin-bottom: 0in">
<p style="margin-bottom: 0in">All done. Now can open the Ventrian PA project with Microsoft Visual Web Developer.</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/03/changing-ventrian-property-agent-lightbox-buttons/' rel='bookmark' title='Permanent Link: Changing Ventrian Property Agent LightBox Buttons'>Changing Ventrian Property Agent LightBox Buttons</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/' rel='bookmark' title='Permanent Link: How to modify DotNetNuke Login Page? The Easy Way.'>How to modify DotNetNuke Login Page? The Easy Way.</a></li>
<li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/10/how-to-modify-ventrian-property-agent/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DotNetNuke Customizing your Login &#8211; PART 3</title>
		<link>http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/</link>
		<comments>http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 12:54:48 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[dnn customization]]></category>
		<category><![CDATA[dnn login]]></category>
		<category><![CDATA[dnn registration]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/</guid>
		<description><![CDATA[This is a simplified extra add on from the previous topics:

http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/
http://www.mylifebbs.com/2009/03/dotnetnuke-customizing-your-login-part-2/

The DotNetNuke Customization Shortcomings
The easiest way to have a customized login module is to buy third parties modules. However, it may not fully support other Authentication Providers such as LiveID and Facebook Login, worst it may not functioning well with other DNN modules. If you [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/' rel='bookmark' title='Permanent Link: How to modify DotNetNuke Login Page? The Easy Way.'>How to modify DotNetNuke Login Page? The Easy Way.</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/dotnetnuke-customizing-your-login-part-2/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 2'>DotNetNuke Customizing your Login &#8211; PART 2</a></li>
<li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>This is a simplified extra add on from the previous topics:</p>
<ul>
<li><a title="http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/" href="http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/">http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/</a></li>
<li><a title="http://www.mylifebbs.com/2009/03/dotnetnuke-customizing-your-login-part-2/" href="http://www.mylifebbs.com/2009/03/dotnetnuke-customizing-your-login-part-2/">http://www.mylifebbs.com/2009/03/dotnetnuke-customizing-your-login-part-2/</a></li>
</ul>
<p><strong><span style="text-decoration: underline;">The DotNetNuke Customization Shortcomings</span></strong></p>
<p>The easiest way to have a customized login module is to buy third parties modules. However, it may not fully support other Authentication Providers such as LiveID and Facebook Login, worst it may not functioning well with other DNN modules. If you want to play safe, stick to the default DNN Authentication Providers.<span id="more-220"></span></p>
<p>1. If you customize your DNN Login / Registration ascx, it will affect ALL Portals! This problem has been fixed by using Pure CSS Customization and applying additional css class to the relevant ascx files.</p>
<p>2. This customization requires you to have a static login and registration page due to that we need to get the unique CSS ID to modify it. It will not work if you’re using &#8216;control&#8217; login page (Default setting, something like &#8216;<strong>/ctl/</strong>login.aspx?returnurl=%2fdefault.aspx&#8217;).</p>
<p>3. Pop up login page requires you to put the login module in every page you wanted to have login. However, due to that login module will be changed once logon, the Jquery will be somehow malfunctioning and it is the thing I’m still working on.</p>
<p><strong><span style="text-decoration: underline;">Files to be modified for DotNetNuke Login and Registration Page.</span></strong></p>
<p><span style="text-decoration: underline;">Custom Providers</span></p>
<ul>
<li>/DesktopModules/AuthenticationServices/DNN/Login.ascx</li>
<li>/DesktopModules/AuthenticationServices/DNN/App_LocalResources/Login.ascx.resx</li>
</ul>
<p><span style="text-decoration: underline;">DNN Authentication</span></p>
<ul>
<li>/httpdocs/admin/Authentication/Login.ascx</li>
<li>/httpdocs/admin/Authentication/Logoff.ascx (Optional)</li>
<li>/httpdocs/admin/Authentication/App_LocalResources/Login.ascx.Portal-0.resx</li>
</ul>
<p><span style="text-decoration: underline;">User Registration</span></p>
<ul>
<li>/httpdocs/admin/Users/manageusers.ascx</li>
<li>/httpdocs/admin/Users/User.ascx</li>
<li>/httpdocs/admin/Users/Password.ascx</li>
<li>/httpdocs/admin/Users/MemberServices.ascx</li>
<li>/httpdocs/admin/Users/Membership.ascx</li>
<li>/httpdocs/admin/Authentication/App_LocalResources/(respective files used)</li>
</ul>
<p><span style="text-decoration: underline;">CSS Files</span></p>
<p>You’re advised to create 3 CSS and put into respective portal’s folder but don’t mixed with any of the DNN Default CSS to avoid overwriting other pages CSS. This including default.css, portal.css, skin.css and module.css.</p>
<p>Since we will need to create a static login and registration page, you can embed the styles directly into the page header. For me, I created the following files:</p>
<ul>
<li>custom-login.css</li>
<li>custom-Registration.css</li>
<li>custom-Login-IE-Fixed.css</li>
</ul>
<p>and put under /Portals/0/SkinName/</p>
<p>Download/Create all the files from your server and put into respective folders to avoid confusion.</p>
<p><span style="text-decoration: underline;"><strong>Step 1: Customizing DNN Custom Providers.</strong></span></p>
<p>First, we start from DNN default login Provider:<br />
/DesktopModules/AuthenticationServices/DNN/Login.ascx</p>
<p>It contains the following parts:</p>
<ul>
<li>Username Textbox</li>
<div>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">asp:textbox</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="txtUsername"</span> <span style="color: #ff0000">columns</span><span style="color: #0000ff">="9"</span> <span style="color: #ff0000">width</span><span style="color: #0000ff">="150"</span> <span style="color: #ff0000">cssclass</span><span style="color: #0000ff">="NormalTextBox"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #0000ff">/&gt;</span></pre>
</div>
</div>
</div>
<li>Verification Control (Captcha)</li>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="rowVerification1"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">visible</span><span style="color: #0000ff">="false"</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">="SubHead"</span> <span style="color: #ff0000">align</span><span style="color: #0000ff">="left"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">dnn:label</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="plVerification"</span> <span style="color: #ff0000">controlname</span><span style="color: #0000ff">="txtVerification"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">text</span><span style="color: #0000ff">="Verification Code:"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">dnn:label</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="rowVerification2"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">visible</span><span style="color: #0000ff">="false"</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span> <span style="color: #ff0000">align</span><span style="color: #0000ff">="left"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">asp:textbox</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="txtVerification"</span> <span style="color: #ff0000">columns</span><span style="color: #0000ff">="9"</span> <span style="color: #ff0000">width</span><span style="color: #0000ff">="150"</span> <span style="color: #ff0000">cssclass</span><span style="color: #0000ff">="NormalTextBox"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #0000ff">/&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="trCaptcha1"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">="SubHead"</span> <span style="color: #ff0000">align</span><span style="color: #0000ff">="left"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">dnn:label</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="plCaptcha"</span> <span style="color: #ff0000">controlname</span><span style="color: #0000ff">="ctlCaptcha"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">resourcekey</span><span style="color: #0000ff">="Captcha"</span> <span style="color: #0000ff">/&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="trCaptcha2"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">td</span> <span style="color: #ff0000">align</span><span style="color: #0000ff">="left"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">dnn:captchacontrol</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="ctlCaptcha"</span> <span style="color: #ff0000">captchawidth</span><span style="color: #0000ff">="130"</span> <span style="color: #ff0000">captchaheight</span><span style="color: #0000ff">="40"</span> <span style="color: #ff0000">cssclass</span><span style="color: #0000ff">="Normal"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">errorstyle-cssclass</span><span style="color: #0000ff">="NormalRed"</span> <span style="color: #0000ff">/&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span></pre>
</div>
</div>
<li>Password Textbox</li>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">asp:textbox</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="txtPassword"</span> <span style="color: #ff0000">columns</span><span style="color: #0000ff">="9"</span> <span style="color: #ff0000">width</span><span style="color: #0000ff">="150"</span> <span style="color: #ff0000">textmode</span><span style="color: #0000ff">="password"</span> <span style="color: #ff0000">cssclass</span><span style="color: #0000ff">="NormalTextBox"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #0000ff">/&gt;</span></pre>
</div>
</div>
<li>Login Button</li>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">asp:button</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="cmdLogin"</span> <span style="color: #ff0000">resourcekey</span><span style="color: #0000ff">="cmdLogin"</span> <span style="color: #ff0000">cssclass</span><span style="color: #0000ff">="StandardButton"</span> <span style="color: #ff0000">text</span><span style="color: #0000ff">="Login"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #0000ff">/&gt;</span></pre>
</div>
</div>
<li>Labels Controls for each items above.</li>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">dnn:label</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="plUsername"</span> <span style="color: #ff0000">controlname</span><span style="color: #0000ff">="txtUsername"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">resourcekey</span><span style="color: #0000ff">="Username"</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">dnn:label</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="plVerification"</span> <span style="color: #ff0000">controlname</span><span style="color: #0000ff">="txtVerification"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">text</span><span style="color: #0000ff">="Verification Code:"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">dnn:label</span><span style="color: #0000ff">&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">dnn:label</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="plCaptcha"</span> <span style="color: #ff0000">controlname</span><span style="color: #0000ff">="ctlCaptcha"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">resourcekey</span><span style="color: #0000ff">="Captcha"</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">dnn:label</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="plPassword"</span> <span style="color: #ff0000">controlname</span><span style="color: #0000ff">="txtPassword"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">resourcekey</span><span style="color: #0000ff">="Password"</span> <span style="color: #0000ff">/&gt;</span></pre>
</div>
</div>
</ul>
<p>Now, remove all redundant codes inherited from Old DNN: <strong>Width=&#8221;150&#8243;</strong> and Change the following attributes accordingly:</p>
<ul>
<li>cssclass=&#8221;NormalTextBox&#8221; to cssclass=&#8221;LoginTextBox&#8221;</li>
<li>Add cssclass=&#8221;LoginTextLabel&#8221; and helptext=&#8221;" to all labels:
<ul>
<li>Adding helptext=&#8221;" will removed the little Help Icon on the left side of the Label. It is totally optional.</li>
</ul>
</li>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">dnn:label</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="plPassword"</span> <span style="color: #ff0000">controlname</span><span style="color: #0000ff">="txtPassword"</span> <span style="color: #ff0000">cssclass</span><span style="color: #0000ff">="LoginTextLabel"</span> <span style="color: #ff0000">runat</span><span style="color: #0000ff">="server"</span> <span style="color: #ff0000">resourcekey</span><span style="color: #0000ff">="Password"</span> <span style="color: #ff0000">helptext</span><span style="color: #0000ff">=""</span> <span style="color: #0000ff">/&gt;</span></pre>
</div>
</div>
<li>Add the following link tag after &#8221; &lt;%@ Register TagPrefix=&#8221;dnn&#8221;  &#8221; to load CSS files</li>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span> <span style="color: #ff0000">rel</span><span style="color: #0000ff">="stylesheet"</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">="text/css"</span> <span style="color: #ff0000">href</span><span style="color: #0000ff">="/Portals/0/SkinName/custom-login.css"</span> <span style="color: #0000ff">/&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #008000">&lt;!--[if IE]&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #008000">&lt;link rel="stylesheet" type="text/css" href="/Portals/0/SkinName/custom-login-IE.css" /&gt;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #008000">&lt;![endif]—&gt;</span></pre>
</div>
</div>
</ul>
<ul>Optionally, you can add it in your login page header. (Page setting &gt; Header)</ul>
<p>You are free to remove all other codes like table, tr, td but not any codes start with &lt;%@ and has a runat=&#8221;server&#8221; attribute inside. Pretty simple right?</p>
<p>If you don’t want to touch Login.ascx at all, you will need to use Firebug to indentify the id and class in order to change it. For example, a default login page (/home/login.aspx) will have something like this:</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">&lt;</span><span style="color: #800000">input</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">="text"</span> <span style="color: #ff0000">style</span><span style="color: #0000ff">="width: 150px;"</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">="NormalTextBox"</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="dnn_ctr377_Login_Login_DNN_txtUsername"</span> <span style="color: #ff0000">size</span><span style="color: #0000ff">="9"</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="dnn$ctr377$Login$Login_DNN$txtUsername"</span><span style="color: #0000ff">/&gt;</span></pre>
</div>
</div>
<p>You will need to copy out &#8220;dnn_ctr377_Login_Login_DNN_txtUsername&#8221; in order to change the design. In the css:</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">#dnn_ctr377_Login_Login_DNN_txtUsername{</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">width</span>:<span style="color: #006080">200px;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">height</span>:<span style="color: #006080">50px;</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">    <span style="color: #0000ff">border</span>:1px solid green}</pre>
</div>
</div>
<p>and a little simple Javascript in the module footer (module setting &gt; Advanced Settings &gt; Footer) to override to stupid inline-style:</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<div style="border-style: none; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">&lt;script type=<span style="color: #006080">"text/javascript"</span>&gt;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">document.getElementById(<span style="color: #006080">"dnn_ctr377_Login_Login_DNN_txtUsername"</span>).style.width=<span style="color: #006080">"500px"</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: white; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">&lt;/script&gt;</pre>
</div>
</div>
<p>Because the nature of DOM and JS, you need to put after the inline-style in order to override it.</p>
<p>That’s end of Part 3-1. I’ll continue in a day or two perhaps.</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/03/how-to-modify-dotnetnuke-login-page-the-easy-way/' rel='bookmark' title='Permanent Link: How to modify DotNetNuke Login Page? The Easy Way.'>How to modify DotNetNuke Login Page? The Easy Way.</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/dotnetnuke-customizing-your-login-part-2/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 2'>DotNetNuke Customizing your Login &#8211; PART 2</a></li>
<li><a href='http://www.mylifebbs.com/2010/01/guide-to-implement-re-captcha-in-dotnetnuke-modules-without-touching-the-source-code/' rel='bookmark' title='Permanent Link: Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.'>Guide to implement re-Captcha in DotNetNuke Modules without touching the source code.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Making DotNetNuke Logo Link SEO Friendly!</title>
		<link>http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/</link>
		<comments>http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/#comments</comments>
		<pubDate>Tue, 12 May 2009 11:35:55 +0000</pubDate>
		<dc:creator>Oracle9</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[DNN Logo]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/</guid>
		<description><![CDATA[Often SEO geeks will advice you not to use the original Logo skin object due to that it will automatically append Default.aspx behind your domain name. This is very bad as it search engine may treat it as a duplicate page of your home page. Even Search Engine will not ‘punish’ you for that but [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 3'>DotNetNuke Customizing your Login &#8211; PART 3</a></li>
<li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/dotnetnuke-accessibility-skins/' rel='bookmark' title='Permanent Link: DotNetNuke Accessibility Skins'>DotNetNuke Accessibility Skins</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><span>Often SEO geeks will advice you not to use the original Logo skin object due to that it will automatically append Default.<span>aspx</span> behind your domain name. This is very bad as it search engine may treat it as a duplicate page of your home page. Even Search Engine will not ‘punish’ you for that but your PageRank weight will definitely be dispersed into different URL like www.example.com and www.example.com/Default.<span>aspx</span>.</span></p>
<p><span>If you are using <span>iFinity</span>, most of the time the <span>url</span> problems will be solved. However, due to some server setting, the default.<span>aspx</span> name cannot be removed. In this case, all you need to do is to make a simple change to the DNN Logo Skin Object.</span></p>
<p><strong>For DNN 5.1 Above, please scroll down for solution.</strong></p>
<p>To do this, FTP access to <span style="color: #ff0000;"><span>/<span>httpdocs</span>/admin/Skins</span></span> and look for <span style="color: #ff0000;"><span>Logo.<span>ascx</span>.vb</span></span>.</p>
<p><span>Open it using notepad or other development programs like <span>dreamweaver</span> or visual developer and look for this line: (Should be in line 73 be default)</span></p>
<blockquote>
<p align="left"><span><span>hypLogo</span>.<span>NavigateUrl</span> = <span>GetPortalDomainName</span>(<span>PortalSettings</span>.<span>PortalAlias</span>.<span>HTTPAlias</span>, Request) &amp; &#8220;/&#8221; &amp; <span>glbDefaultPage</span></span></p>
</blockquote>
<p align="left">Now all you need to do is to remove this code:</p>
<blockquote>
<p align="left"><span>&amp; <span>glbDefaultPage</span></span></p>
</blockquote>
<p align="left">Save it and upload it back to the same directly. Walla! You can change your logo much easily from Portal Admin Setting while having a clean SEO friendly URL!</p>
<p align="left"><span>Unfortunately, I still haven’t figured out a simple method to remove the Home.<span>aspx</span> which most of the DNN users are having the same problem. If you know how to make your DNN auto generated home page <span>url</span> convert into your root domain name automatically , please share with us!</span></p>
<p align="left"><strong>Update:</strong><span> This is the solution to remove <span>relundant</span> default.<span>aspx</span> in <span>DotNetNuke</span> 5.1 Logo Skin Object.</span></p>
<p align="left">To do this, FTP access to <span style="color: #ff0000;"><span>/<span>httpdocs</span>/admin/Skins</span></span> and look for <span style="color: #ff0000;"><span>Logo.<span>ascx</span>.vb</span></span>.</p>
<p align="left">Look for these lines: (Around line 78)</p>
<p align="left"><span>If Host.<span>UseFriendlyUrls</span> Then</span><br />
<span> <span>hypLogo</span>.<span>NavigateUrl</span> = <strong><span>FriendlyUrl</span>(Nothing, &#8220;~/&#8221;, <span>PortalSettings</span>)</strong></span><br />
Else<br />
<span> <span>hypLogo</span>.<span>NavigateUrl</span> = &#8220;~/&#8221;</span><br />
End If</p>
<p align="left">Change <span><strong><span>F<strong>riendlyUrl</strong></span><strong>(Nothing, &#8220;~/&#8221;, <span>PortalSettings</span>) to </strong></strong></span>GetPortalDomainName(PortalSettings.PortalAlias.HTTPAlias, Request) &amp; &#8220;/&#8221;</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 3'>DotNetNuke Customizing your Login &#8211; PART 3</a></li>
<li><a href='http://www.mylifebbs.com/2009/01/dotnetnuke-custom-error-page-404-page-not-found-redirection/' rel='bookmark' title='Permanent Link: DotNetNuke Custom Error Page, 404 Page Not Found Redirection'>DotNetNuke Custom Error Page, 404 Page Not Found Redirection</a></li>
<li><a href='http://www.mylifebbs.com/2009/03/dotnetnuke-accessibility-skins/' rel='bookmark' title='Permanent Link: DotNetNuke Accessibility Skins'>DotNetNuke Accessibility Skins</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>DotNetNuke Accessibility Skins</title>
		<link>http://www.mylifebbs.com/2009/03/dotnetnuke-accessibility-skins/</link>
		<comments>http://www.mylifebbs.com/2009/03/dotnetnuke-accessibility-skins/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 05:27:10 +0000</pubDate>
		<dc:creator>Oracle9</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Accessibility skin]]></category>

		<guid isPermaLink="false">http://www.mylifebbs.com/2009/03/dotnetnuke-accessibility-skins/</guid>
		<description><![CDATA[I have trouble find the right keyword to search for skins or templates that so called accessibility. If you have no idea what is it about, please visit the best accessibility website.
DotNetNuke Accessibility issues has been raised by few people in DotNetNuke forum and blog (Accessibility standards &#38; xhtml compliance) before but none has taken [...]


Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/' rel='bookmark' title='Permanent Link: Making DotNetNuke Logo Link SEO Friendly!'>Making DotNetNuke Logo Link SEO Friendly!</a></li>
<li><a href='http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 3'>DotNetNuke Customizing your Login &#8211; PART 3</a></li>
<li><a href='http://www.mylifebbs.com/2009/10/improve-your-dotnetnuke-seo-performance-by-knowing-long-asp-net-view-state-issue-in-dnn/' rel='bookmark' title='Permanent Link: Improve your DotNetNuke SEO Performance by knowing Long ASP.NET View State Issue in DNN.'>Improve your DotNetNuke SEO Performance by knowing Long ASP.NET View State Issue in DNN.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I have trouble find the right keyword to search for skins or templates that so called accessibility. If you have no idea what is it about, please visit the best <a href="http://www.bbc.co.uk/accessibility/" target="_blank">accessibility website</a>.</p>
<p>DotNetNuke Accessibility issues has been raised by few people in DotNetNuke forum and blog (<a href="http://www.dotnetnuke.com/Development/Forge/ModuleReports/tabid/970/EntryId/474/Accessibility-standards-xhtml-compliance.aspx" target="_blank">Accessibility standards &amp; xhtml compliance</a>) before but none has taken seriously by the core developers. However, I’ve managed a <a href="http://www.thinkofdesign.com/forums/view/topic/postid/36.aspx" target="_blank">old accessibility skin template</a> made in 2006 from Think of Design which the skin and skin objects are no longer available for download.</p>
<p>Another website is <a href="http://www.dnnskin.net/Default.aspx?alias=www.dnnskin.net/cssskin3-red" target="_blank">selling accessibility skin template</a> with a annoying moving panel on the right and a expensive price of USD$119.00.</p>
<p>I’m helping a client to make a website for free which need to be very friendly to disable person where half of the readership will have some sort of disability. I’ve to concern for the deaf, visual impaired, blind and so on. I found that dotnetnuke may not the a good choice as I found that none of the software are able to read the DotNetNuke Menu bar (DNNNAV) which I have to replace it using hardcoded link ro houseofmenu.</p>
<p>The main trouble I’ve ran into is the color switcher which seems that there are no ready made skin object for that and I can’t even find some JavaScript to do it. It seems that I’ve to write it myself which it is kinda time wasting as I’m not a programmer or so.</p>
<p>So, if you have or know where to get some free codes or skin objects or even some tutorials for color switcher, please kindly leave a comment below and I’ll be very grateful for you help! In return, I’ll certainly give this skin for free once it is done so that more websites will be accessible for the minority.</p>


<p>Related posts:<ol><li><a href='http://www.mylifebbs.com/2009/05/making-dotnetnuke-logo-link-seo-friendly/' rel='bookmark' title='Permanent Link: Making DotNetNuke Logo Link SEO Friendly!'>Making DotNetNuke Logo Link SEO Friendly!</a></li>
<li><a href='http://www.mylifebbs.com/2009/06/dotnetnuke-customizing-your-login-part-3/' rel='bookmark' title='Permanent Link: DotNetNuke Customizing your Login &#8211; PART 3'>DotNetNuke Customizing your Login &#8211; PART 3</a></li>
<li><a href='http://www.mylifebbs.com/2009/10/improve-your-dotnetnuke-seo-performance-by-knowing-long-asp-net-view-state-issue-in-dnn/' rel='bookmark' title='Permanent Link: Improve your DotNetNuke SEO Performance by knowing Long ASP.NET View State Issue in DNN.'>Improve your DotNetNuke SEO Performance by knowing Long ASP.NET View State Issue in DNN.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mylifebbs.com/2009/03/dotnetnuke-accessibility-skins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
