<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/css" href="http://i7media.net/Data/style/rss1.css" ?> <?xml-stylesheet type="text/xsl" href="http://i7media.net/Data/xsl/rss1.xsl" ?>
<!--RSS generated by mojoPortal Blog Module V 1.0 on Friday, September 03, 2010-->
<rss version="2.0">
  <channel>
    <title>Blog</title>
    <link>~/weblog</link>
    <description />
    <copyright>i7MEDIA, LLC</copyright>
    <ttl>120</ttl>
    <managingEditor />
    <generator>mojoPortal Blog Module V 1.0</generator>
    <item>
      <title>mojoPortal: Skinning the Search Input Box</title>
      <link>http://i7media.net/mojoportal-skinning-the-search-input-box</link>
      <pubDate>Tue, 24 Aug 2010 00:12:00 GMT</pubDate>
      <guid>http://i7media.net/mojoportal-skinning-the-search-input-box</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/mojoportal-skinning-the-search-input-box</comments>
      <description><![CDATA[<p>Ever wondered how to style the mojoPortal Search Input Box? I wrote a how-to on the subject late last week. I hope it helps! <a title="http://www.mojoportal.com/styling-the-search-input-box.aspx" href="http://www.mojoportal.com/styling-the-search-input-box.aspx">http://www.mojoportal.com/styling-the-search-input-box.aspx</a>.</p> <p>Are there any other topics you would like to see in the documentation? If so, <a href="http://i7media.net/contact">send us an email</a> and we will do our best to take care of it for you.</p><br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/mojoportal-skinning-the-search-input-box'>...</a>]]></description>
    </item>
    <item>
      <title>Website Panel</title>
      <link>http://i7media.net/website-panel</link>
      <pubDate>Fri, 13 Aug 2010 20:36:00 GMT</pubDate>
      <guid>http://i7media.net/website-panel</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/website-panel</comments>
      <description><![CDATA[<p>
	We have updated to the latest version of WebsitePanel to provide the best experience possible to our customers. <a href="http://www.websitepanel.net">WebsitePanel</a> is the Open Source successor to <a href="http://www.dotnetpanel.com">DotNetPanel</a> which is no longer in distribution.</p>
<p>
	This upgrade means we can offer our services at lower rates because we no longer have the overhead of Control Panel Licensing. In the near future, we will be offering services for Virtual Server Hosting, SharePoint and SmarterMail. All of these will be managed through the WebsitePanel software, allowing customers easy and familiar access to all of their services.</p>
<p>
	Good things are approaching i7MEDIA. Stay in touch to benefit!</p>
<br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/website-panel'>...</a>]]></description>
    </item>
    <item>
      <title>Using GreyBox and LightBox with mojoPortal</title>
      <link>http://i7media.net/using-greybox-and-lightbox-with-mojoportal</link>
      <pubDate>Wed, 28 Jul 2010 20:41:00 GMT</pubDate>
      <guid>http://i7media.net/using-greybox-and-lightbox-with-mojoportal</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/using-greybox-and-lightbox-with-mojoportal</comments>
      <description><![CDATA[<h3>
	Using GreyBox</h3>
<p>
	mojoPortal comes bundled with <a href="http://orangoo.com/labs/GreyBox/">Greybox</a> which is a great in-site pop-up utility that can be used for displaying images and even other webpages in an in-site pop-up. It is used in the image galleries, help system, skin <span><span>previewer</span></span>, and a lot of other areas of <span><span>mojoPortal</span></span></p>
<p>
	You might be interested to know that you can use GreyBox in your mojoPortal site without utilizing the ImageGallery or other features of mojoPortal that use it. Simply add the rel="gb_image[]" or rel="gb_page[]" property to any link and the the link target will open in a GreyBox pop-up window.</p>
<p>
	For example, clicking the thumbnail below will open the full-size image in a GreyBox window:</p>
<p>
	<code style="font-size: 10px">&lt;a&nbsp;href="http://i7media.net/Data/Sites/1/blogdata/lightbox-dsc06798-full.jpg" rel="gb_image[]" title="4th &amp;amp; Broadway, San Diego, CA (C) Joe Davis"&gt;&lt;img alt="" src="http://i7media.net/Data/Sites/1/blogdata/lightbox-dsc06798-thumb.jpg" style="width: 133px; height: 100px;" /&gt;&lt;/a&gt;</code></p>
<p>
	<a href="http://i7media.net/Data/Sites/1/blogdata/lightbox-dsc06798-full.jpg" rel="gb_image[]" title="4th &amp; Broadway, San Diego, CA (C) Joe Davis"><img alt="4th &amp; Broadway, San Diego, CA (C) Joe Davis" src="http://i7media.net/Data/Sites/1/blogdata/lightbox-dsc06798-thumb.jpg" style="width: 133px; height: 100px" /></a></p>
<p>
	The link below will open the mojoPortal website in a fullscreen GreyBox window:</p>
<p>
	<code style="font-size: 10px">&lt;a&nbsp;href="http://www.mojoportal.com" rel="gb_page_fs[]" title="mojoPortal, The World's Greatest .NET CMS"&gt;Open mojoPortal in GreyBox&lt;/a&gt;</code></p>
<p>
	<a href="http://www.mojoportal.com" rel="gb_page_fs[]" title="mojoPortal, The World's Greatest .NET CMS">Open mojoPortal in GreyBox</a></p>
<p>
	There are a lot of other neat things you can do with GreyBox that you may not be aware of so I recommend checking out the <a href="http://orangoo.com/labs/GreyBox/">GreyBox</a> website for more helpful hints.</p>
<p>
	 </p>
<h3>
	Using LightBox with MojoPortal</h3>
<p>
	Some people like other utilities like <a href="http://leandrovieira.com/projects/jquery/lightbox/"><span>LightBox</span></a> (the <span>jQuery</span> version), for example. I will demonstrate to you how to use <span>LightBox</span> alongside <span>GreyBox</span> with mojoPortal.&nbsp;</p>
<h4>
	The Setup</h4>
<ol class="fancy">
	<li>
		<span>The first step to using LightBox is to download the jQuery-LightBox release from <a href="http://leandrovieira.com/projects/jquery/lightbox/">http://leandrovieira.com/projects/jquery/lightbox/</a>. Once you have downloaded the release, extract it to your local hard drive.</span></li>
	<li>
		<span>Using your favorite FTP client (mine is <a href="http://filezilla-project.org/">FileZilla</a>):</span>
		<ol style="list-style-type: lower-alpha">
			<li style="margin-left: 0px">
				<span>Create a new directory under \ClientScript named lightbox and upload jquery.lightbox-0.5.min.js, jquery.lightbox-0.5.css and the images directory included in the zip to this new directory.</span></li>
			<li style="margin-left: 0px">
				<span>Browse to the directory containing your site's skin (\data\sites\[SiteNumber]\skins\NameOfSkin and download the layout.master file.</span></li>
		</ol>
	</li>
	<li>
		<span>Using your favorite HTML editor (mine is <a href="http://notepad-plus-plus.org/">Notepad++</a>):</span>
		<ol style="list-style-type: lower-alpha">
			<li style="margin-left: 0px">
				<span>Add the following lines to the layout.master directly after the &lt;asp:ScriptManager control</span><br />
				<span><code style="font-size: 10px">&lt;link href="http://i7media.net/ClientScript/lightbox/jquery.lightbox-0.5.css" type="text/css" rel="stylesheet" /&gt;<br />
				&lt;script type="text/javascript" src="http://i7media.net/ClientScript/lightbox/jquery.lightbox-0.5.pack.js"&gt;&lt;/script&gt;<br />
				&lt;script type="text/javascript"&gt;<br />
				$(document).ready(function(){<br />
				&nbsp;$('a.lightbox').lightBox({<br />
				&nbsp;&nbsp;&nbsp;&nbsp;imageLoading: '/ClientScript/lightbox/images/lightbox-ico-loading.gif',<br />
				&nbsp;&nbsp;&nbsp;&nbsp;imageBtnClose: '/ClientScript/lightbox/images/lightbox-btn-close.gif',<br />
				&nbsp;&nbsp;&nbsp;&nbsp;imageBtnPrev: '/ClientScript/lightbox/images/lightbox-btn-prev.gif',<br />
				&nbsp;&nbsp;&nbsp;&nbsp;imageBtnNext: '/ClientScript/lightbox/images/lightbox-btn-next.gif'<br />
				&nbsp; });<br />
				});<br />
				&lt;/script&gt;</code></span></li>
		</ol>
	</li>
	<li>
		<span>Back in your FTP client, upload the modified layout.master </span><span>file.</span></li>
</ol>
<h4>
	Using LightBox</h4>
<p>
	<span>Now to use LightBox, all you need to do is add <em>lightbox</em> as a class on any link that you want to open in a LightBox pop-up. For Example:</span></p>
<p>
	<code class="lightbox" style="font-size: 10px">&lt;a href="images/image-1.jpg" class="<span>lightbox</span>" title="my caption"&gt;&lt;img src="images/image-1-thumb.jpg"&gt;&lt;/a&gt;</code></p>
<p>
	You can see more examples on the <a href="http://leandrovieira.com/projects/jquery/lightbox/">LightBox</a> website.</p>
<h4>
	See It In Action</h4>
<p>
	<a class="lightbox" href="http://i7media.net/Data/Sites/1/blogdata/lightbox-dsc06798-full.jpg" rel="lightbox" title="4th &amp; Broadway, San Diego, CA (C) Joe Davis"><img alt="" src="http://i7media.net/Data/Sites/1/blogdata/lightbox-dsc06798-thumb.jpg" style="width: 133px; height: 100px" /></a></p>
<h4>
	Some Friendly Words of Caution</h4>
<p>
	Including additional javascript files in your site will make it run slower. The difference in speed may be negligible when adding just one script but don't get carried away.</p>
<p>
	Also, you may have noticed that I put the CSS and Images in the ClientScript\lightbox directory. I did this because I couldn't get the LightBox to work properly with those items in the \Data\Style directory like they should be. Also, I couldn't get the script to work with the CSS being loaded from the CSSHandler so I had to put a reference to the CSS file in the layout.master. This should not be done without thoroughly testing your site and making every attempt to put the CSS file where it belongs, in the CSSHandler's style.config.</p>
<h4>
	Conclusion</h4>
<p>
	In the end, I prefer GreyBox primarily because it is already built-in to mojoPortal and it does more than LightBox. If you find that you want to use something along with GreyBox, you can adapt this post to whatever tool you decide to use. It should help get you on your way.</p>
<p>
	Happy mojo-ing!</p>
<br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/using-greybox-and-lightbox-with-mojoportal'>...</a>]]></description>
    </item>
    <item>
      <title>mojoPortal Online User Group: A Great Value Add</title>
      <link>http://i7media.net/mojoportal-online-user-group-a-great-value-add</link>
      <pubDate>Tue, 13 Jul 2010 16:47:36 GMT</pubDate>
      <guid>http://i7media.net/mojoportal-online-user-group-a-great-value-add</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/mojoportal-online-user-group-a-great-value-add</comments>
      <description><![CDATA[<p>
	The mojoPortal Online User Group, started by David Dean of <a href="http://www.yamisee.com/official-mojoportal-online-user-group.aspx">Yamisee</a>, has been going strong for a few months now. A couple different people have led the monthly meetings, each bringing valuable information to those who attend. I believe this group is a great Value Add for the community as the meetings are open to the public and the type of information discussed ranges between installation, skinning and programming. Joe Audette, mojoPortal Founder and Chief Developer, attends the meetings regularly and is even leading the August meeting.</p>
<p>
	Over the past couple of months, the topics and leaders of the meetings have been:</p>
<ul>
	<li>
		April 2010: SEO Tools and Tips, David Dean of <a href="http://www.yamisee.com/">Yamisee</a></li>
	<li>
		May 2010: Creating Custom Page Titles, Joe Davis of i7MEDIA</li>
	<li>
		June 2010: Log4Net, Steve Land of <a href="http://www.strongeye.com/">StrongEye Solutions</a></li>
	<li>
		August 2010: ZedGraph, Joe Audette</li>
</ul>
<p>
	If you are interested in mojoPortal, I highly suggest you subscribe to the Forum thread on the user community <a href="http://www.mojoportal.com/Forums/Thread.aspx?pageid=5&amp;mid=34&amp;ItemID=9&amp;thread=5923">here</a>.</p>
<p>
	Personally, I want to thank David Dean for his hard work and dedication to the mojoPortal community.</p>
<br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/mojoportal-online-user-group-a-great-value-add'>...</a>]]></description>
    </item>
    <item>
      <title>Lifetime Licensing on mojoPortal Pro Products</title>
      <link>http://i7media.net/lifetime-licensing-on-mojoportal-pro-products</link>
      <pubDate>Fri, 09 Jul 2010 21:24:25 GMT</pubDate>
      <guid>http://i7media.net/lifetime-licensing-on-mojoportal-pro-products</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/lifetime-licensing-on-mojoportal-pro-products</comments>
      <description><![CDATA[<p>
	I noticed recently that Joe Audette has changed the licensing on the "Pro" products offered on the mojoPortal website to be lifetime licenses. Previously, the licenses allowed updates for 1 year but Joe never really enforced that.</p>
<p>
	This is really nice for the community as we don't have to worry about renewing our licenses and purchasing upgrades. Pay for it once and forget it. Sounds pretty darn good to me.</p>
<br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/lifetime-licensing-on-mojoportal-pro-products'>...</a>]]></description>
    </item>
    <item>
      <title>mojoPortal Page Titles</title>
      <link>http://i7media.net/mojoportal-page-titles</link>
      <pubDate>Tue, 18 May 2010 23:12:17 GMT</pubDate>
      <guid>http://i7media.net/mojoportal-page-titles</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/mojoportal-page-titles</comments>
      <description><![CDATA[<p>
	<span class="txterror">Update: Joe Audette has decided to implement this in the next version of mojoPortal, due in a couple of weeks. He is updating the &lt;portal:PageTitle control with this functionality.</span></p>
<p>
	I have from time to time needed to show a page's title within the content as a heading. The controls that come with mojoPortal don't really allow for this but I have come up with a handy little control that will show the Page Title on the page and allow you to choose how the text is rendered.</p>
<p>
	To get started, create two files; PageTitle.ascx and PageTitle.ascx.cs. Place both of these files in the &lt;siteroot&gt;\Controls\Custom directory (Note: You will have to create the "custom" directory). The code for the files is as follows:</p>
<h5>
	PageTitle.ascx&nbsp;</h5>
<p>
	<code>&lt;%@ Control Language="C#" AutoEventWireup="true" CodeFile="PageTitle.ascx.cs" ClassName="PageTitle.ascx" Inherits="Controls_PageTitle" %&gt;<br />
	&lt;asp:literal ID="litPageTitle" runat="server" /&gt;</code></p>
<p>
	PageTitle.ascx.cs</p>
<p>
	<code>using System;<br />
	using System.Collections.Generic;<br />
	using System.Web;<br />
	using System.Web.UI;<br />
	using System.Web.UI.WebControls;<br />
	using mojoPortal.Web;<br />
	using mojoPortal.Web.UI;<br />
	using mojoPortal.Web.Framework;<br />
	using mojoPortal.Business;<br />
	using mojoPortal.Business.WebHelpers;<br />
	<br />
	public partial class Controls_PageTitle : System.Web.UI.UserControl<br />
	{<br />
	&nbsp;&nbsp;&nbsp; protected void Page_Load(object sender, EventArgs e)<br />
	&nbsp;&nbsp;&nbsp; {<br />
	&nbsp;&nbsp;PopulateControls();<br />
	&nbsp;}<br />
	&nbsp;private void PopulateControls()<br />
	&nbsp;{<br />
	&nbsp;&nbsp;PageSettings currentPage = CacheHelper.GetCurrentPage();<br />
	&nbsp;&nbsp;if(currentPage == null){ return; }<br />
	&nbsp;&nbsp;if(currentPage.PageTitle == "")<br />
	&nbsp;&nbsp;&nbsp;litPageTitle.Text = currentPage.PageName;&nbsp;&nbsp;<br />
	&nbsp;&nbsp;&nbsp;else<br />
	&nbsp;&nbsp;&nbsp;&nbsp;litPageTitle.Text = currentPage.PageTitle;<br />
	&nbsp;}<br />
	}</code></p>
<p>
	To use the control, place the following in your layout.master directly after &lt;%@ Master...&nbsp;</p>
<p>
	<code>&lt;%@ Register Src="~/Controls/custom/PageTitle.ascx" TagName="PageTitle" TagPrefix="cc1" %&gt;</code></p>
<p>
	Now place the following where you want the Page Title to appear in the layout.master.</p>
<p>
	<code>&lt;cc1:PageTitle id="PageTitle1" runat="server" /&gt;</code></p>
<p>
	<strike>Come back soon to see a full description of how this all works.</strike><br />
	&nbsp;I have decided not to describe the full functionality of this control as it is fairly self-explanatory and because Joe Audette has implemented this functionality into mojoPortal. You can use the &lt;portal:PageTitle control after the next release.</p>
<p>
	Happy mojo-ing.</p>
<br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/mojoportal-page-titles'>...</a>]]></description>
    </item>
    <item>
      <title>Skinning the mojoPortal Admin Toolbar</title>
      <link>http://i7media.net/skinning-the-mojoportal-admin-toolbar</link>
      <pubDate>Thu, 21 Jan 2010 19:30:00 GMT</pubDate>
      <guid>http://i7media.net/skinning-the-mojoportal-admin-toolbar</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/skinning-the-mojoportal-admin-toolbar</comments>
      <description><![CDATA[<p>
	When Joe Audette released mojoPortal 2.3.3.4 he wrote an article called &quot;<a href="http://www.mojoportal.com/creating-an-admin-toolbar.aspx">Creating An Admin Toolbar</a>&quot; in the <a href="http://www.mojoportal.com/creatingskins.aspx">mojoPortal Skinning Documentation</a>. The toolbar uses jQuery to easily show and hide itself and is skinned entirely by using CSS.&nbsp;</p>
<p>
	If you follow Joe&#39;s directions or you are using a skin that came with 2.3.3.4 with the toolbar enabled, you will have a toolbar that looks like this:</p>
<p>
	<img alt="Admin Toolbar" src="http://www.mojoportal.com/Data/Sites/1/media/mojoadmintoolbar.gif" style="width: 640px; height: 36px" /></p>
<p>
	While this serves a perfectly good function, there are a few things about it I don&#39;t like. It is gray and there are no icons depicting the links. I happen to like icons and bright colors so, I came up with this:</p>
<p>
	&nbsp;</p>
<p>
	<img alt="admin toolbar" src="http://i7media.net/Data/Sites/1/blogdata/AdminToolbar.JPG" style="width: 640px; height: 31px" /></p>
<p>
	Skinning the toolbar was very easy because it is all controlled by CSS. This article is meant to help you understand how to skin the toolbar but if you like what I&#39;ve done, you can just download it <a href="http://i7media.net/SharedFiles/Download.aspx?pageid=6&amp;fileid=26&amp;mid=9">here</a>.&nbsp;</p>
<h4>
	Create a copy of the jqtoolbar UI resources</h4>
<p>
	The CSS and images for the toolbar are located in the \Data\style\jqtoolbar directory. The CSS is in the style.css file so I created a copy of this file and named it style-7.css.</p>
<h4>
	Set site skin to use new CSS file</h4>
<p>
	For the skin to use the new css file (style-7.css), I had to change the line below in my style.config file located inside of my skin directory (\data\sites\1\skins\myskin). Notice I am referencing style-i7.css and not style.css.</p>
<pre>
<code>&nbsp; &lt;file cssvpath=&quot;/Data/style/jqtoolbar/style-i7.css&quot; imagebasevpath=&quot;/Data/style/jqtoolbar/&quot;&gt;none&lt;/file&gt;</code>
</pre>
<h4>
	Change the background color of the toolbar&nbsp;</h4>
<p>
	To change the color of the toolbar, I simply changed the background-image CSS rule on the div#toolbar and div#toolbarbut selectors to a background-color rule and set the color to #FFFF99.</p>
<h4>
	Add icons to the links</h4>
<p>
	To add the icons, I added an attribute to each of the controls for the links in the layout.master. To keep the markup valid, I used the <em>rel</em> attribute. I set the value of the rel attribute to a descriptor of the link itself (e.g.: rel=&quot;admin&quot; for the admin link). I then used this new attribute to apply a different background image to each link.</p>
<p>
	It is important to note that this approach will not work with IE6 as it doesn&#39;t understand how to select an element based on it&#39;s attributes. The next release of mojo will allow you to use the CssClass attribute on the controls so that you can style them more easily. The value of the CssClass attribute will be added to the classes for the link.</p>
<h5>
	Link Controls in Layout.master file</h5>
<pre>
<code>&lt;portal:AdminMenuLink id=&quot;lnkAdminMenu&quot; runat=&quot;server&quot; rel=&quot;admin&quot;/&gt;
&lt;portal:FileManagerLink id=&quot;lnkFileManager&quot; runat=&quot;server&quot; rel=&quot;filemgr&quot;/&gt;
&lt;portal:NewPageLink id=&quot;lnkNewPage&quot; runat=&quot;server&quot; rel=&quot;addpage&quot; /&gt;
&lt;portal:PageEditFeaturesLink id=&quot;lnkPageContent&quot; runat=&quot;server&quot; rel=&quot;pageedit&quot;/&gt;
&lt;portal:PageEditSettingsLink id=&quot;lnkPageSettings&quot; runat=&quot;server&quot; rel=&quot;pagesettings&quot;/&gt;</code></pre>
<h5>
	CSS for icons</h5>
<pre>
<code class="css">div#toolbar a[rel=admin]{
&nbsp; background: transparent url(&#39;administration.png&#39;) no-repeat scroll left center;
&nbsp; padding-left: 32px;
}

div#toolbar a[rel=addpage]{
&nbsp; background: transparent url(&#39;newpage.png&#39;) no-repeat scroll left center;
&nbsp; padding-left: 32px;}

div#toolbar a[rel=filemgr]{
&nbsp; background: transparent url(&#39;filemgr.png&#39;) no-repeat scroll left center;
&nbsp; padding-left: 32px;
}

div#toolbar a[rel=pageedit]{
&nbsp; background: transparent url(&#39;editpage.png&#39;) no-repeat scroll left center;
&nbsp; padding-left: 32px;
}

div#toolbar a[rel=pagesettings]{
&nbsp; background: transparent url(&#39;pagesettings.png&#39;) no-repeat scroll left center;
&nbsp; padding-left: 32px;
}</code></pre>
<p>
	The icons are from the <a href="http://www.everaldo.com/crystal/">Crystal Project</a> but you can use any you like.</p>
<h4>
	Hiding the menu by default</h4>
<p>
	Personally, I do not want the toolbar to be displayed all the time. I would rather have a link which opens the toolbar when I need it. To accomplish this, I moved the <strong>display:none;</strong> rule from the <em>div#toolbarbut</em> selector to the <em>div#toolbar</em> selector.</p>
<h4>
	Conclusion</h4>
<p>
	I hope this gives you a head-start on skinning the new admin toolbar. Keep in mind that all of this was accomplished easily with CSS.</p>
<p>
	Happy mojo-ing!</p>
<p>
	<a alt="download" class="download-button-mojo" href="http://i7media.net/SharedFiles/Download.aspx?pageid=6&amp;fileid=25&amp;mid=9" title="Download This Admin Toolbar Skin">&nbsp;</a></p>
<br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/skinning-the-mojoportal-admin-toolbar'>...</a>]]></description>
    </item>
    <item>
      <title>Oh, The Things to Come</title>
      <link>http://i7media.net/oh-the-things-to-come</link>
      <pubDate>Fri, 08 Jan 2010 20:56:00 GMT</pubDate>
      <guid>http://i7media.net/oh-the-things-to-come</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/oh-the-things-to-come</comments>
      <description><![CDATA[<p>I was browsing through the SVN update log for mojoPortal this afternoon and I am very excited about some of the things Joe Audette is working on for the upcoming release.</p>
<p>I started browsing around the demo site (<a href="http://demo.mojoportal.com">http://demo.mojoportal.com</a>) so I could see some of the new changes in action. The list below are just the ones I found interesting, there are a lot more changes coming in the next release.</p>
<ol class="fancy">
    <li><span>A new File Manager has been added and the old one has been re-factored. The new File Manager is very nice and is a big improvement over the old one. It uses Javascript whereas the old one doesn't so Audette decided to keep the old File Manager and allow users to switch back and forth between the old and the new. Usability is very big to mojoPortal and as a matter of fact, mojoPortal can be used entirely without Javascript if one chooses to do so. There is also a new link&#160;with the Administration and Edit Page links&#160;which opens the&#160;File Manager in a graybox. This allows for easy access&#160;to the File Manager at all times.<br />
    <img alt="" width="550" height="424" src="http://i7media.net/Data/Sites/1/blogdata/upcoming2334_filemanager.jpg" /></span></li>
    <li><span>Adding users to Roles via the Role Administration admin page is a lot easier thanks to a new selector dialog. Previously, users not in a role were listed in a single drop-down list which made it very difficult to use when a site had a lot of users.<br />
    <img alt="" width="550" height="122" src="http://i7media.net/Data/Sites/1/blogdata/upcoming2334_addusertorole.jpg" /></span></li>
    <li><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>mojoPortal</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> uses a CSSHandler to combine &amp; minimize CSS files. This process makes caching easier and allows sites to load faster. The url to CSSHandler has been http://somedomain.com/data/sites/[sitenumber]/skins/[skinname]/CSSHandler.ashx. This required the&#160;Data directory or at least the skin directory to be executable which is not ideal.&#160;The CSSHandler URL has been&#160;moved to the&#160;root of applicaiton in the next release. Problem solved.</span></li>
    <li><span>A new SQL Query tool will allow developers to easily see and modify data in the database from the website. This tool must be enabled by a site administrator in the web.config prior to it being available for use. It will allow developers to save queries which can be used to populate date in a custom module for quick and dirty data access.<br />
    <img alt="" width="550" height="438" src="http://i7media.net/Data/Sites/1/blogdata/upcoming2334_querytool.jpg" /></span></li>
    <li><span>The main administration links (admin, add page, edit page, page settings) used to be just that, links. If a site designer like yours truly wanted to display the links in a drawer or some other type of cool UI, custom code would have to be developed to create the links manually. This next version will include support for controls for each link which means it will be possible to declare them directly in the layout.master and they will show/hide automatically according to internal logic. See number 6 for what this really means.</span></li>
    <li><span>The <a href="http://plugins.jquery.com/project/mbextruder">jQuery Extruder</a>&#160;plugin has been included with mojoPortal which allows for an example of using a widget with the admin links.<br />
    <a href="http://i7media.net/Data/Sites/1/blogdata/upcoming2334_admindrawer-closed.jpg"><img alt="" width="224" height="102" src="http://i7media.net/Data/Sites/1/blogdata/upcoming2334_admindrawer-closed.jpg" /></a>&#160;<a href="http://i7media.net/Data/Sites/1/blogdata/upcoming2334_admindrawer-open.jpg"><img alt="" width="225" height="108" src="http://i7media.net/Data/Sites/1/blogdata/upcoming2334_admindrawer-open.jpg" /></a></span></li>
    <li><span>The blog is getting some attention this go 'round. Community feedback suggested a preview draft option, paging, option to display only blog titles in the main blog page, and a few other improvements. All of them, that I noticed anyway, made it into the core! Check out the <a href="http://demo.mojoportal.com">demo</a>, to get a better idea of what has changed with the blog.</span></li>
    <li><span>The Search facility will now provide a link to download items in ShareFiles modules. Previously, just a link to the Shared Files module was provided.</span></li>
</ol>
<p>Rather impressive what Joe Audette can get done in just a few weeks, isn't it?</p>
<p>What improvements or features are you waiting to see implemented? <a href="http://www.mojoportal.com/buy-joe-a-coffee-product.aspx">Why not buy Joe Audette a Coffee to show him your appreciation?</a>&#160;</p><br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/oh-the-things-to-come'>...</a>]]></description>
    </item>
    <item>
      <title>Adding You Are Here Message to mojoPortal Breadcrumbs</title>
      <link>http://i7media.net/adding-you-are-here-message-to-mojoportal-breadcrumbs</link>
      <pubDate>Wed, 30 Dec 2009 20:20:00 GMT</pubDate>
      <guid>http://i7media.net/adding-you-are-here-message-to-mojoportal-breadcrumbs</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/adding-you-are-here-message-to-mojoportal-breadcrumbs</comments>
      <description><![CDATA[<p>
	mojoPortal provides a nifty little BreadCrumb control which will show the path to the current page. We have used the control in several of our sites and from time to time, our customer ask us to put the &quot;You Are Here&quot;&nbsp;or some other text in front of the breadcrumbs.</p>
<p>
	<img alt="Screenshot of You Are Here breadcrumbs" src="http://i7media.net/Data/Sites/1/blogdata/youarehere.jpg" style="margin: 5px; width: 365px; height: 74px;" /></p>
<p>
	So that&#39;s simple, right? Well, yes and no.&nbsp;The BreadCrumb control doesn&#39;t&nbsp;have the&nbsp;ability to add&nbsp;a message to the&nbsp;crumbs so we have to add the text in the layout.master of our skin. Okay, that&#39;s simple too but the&nbsp;difficulty comes with making the message invisible when the page settings have breadcrumbs turned off or there aren&#39;t any to display.</p>
<p>
	<img alt="" src="http://i7media.net/Data/Sites/1/blogdata/youarehere_nologic.jpg" style="margin: 5px; width: 345px; height: 73px;" /></p>
<p>
	The solution is to create a User Control with all of the logic needed to display the Breadcrumb Message when needed.</p>
<h3>
	The User Control</h3>
<p>
	For simplicity of this article, we will create our user control in a folder named <em>CustomControls</em> which we placed inside the Controls folder (\Controls).</p>
<h4>
	The YouAreHere.ascx file</h4>
<pre>
<code>&lt;%@ Control Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;YouAreHere.ascx.cs&quot;
&nbsp;&nbsp; &nbsp;ClassName=&quot;YouAreHere.ascx&quot; Inherits=&quot;Controls_YouAreHere&quot; %&gt;

&lt;asp:literal ID=&quot;lblYouAreHere&quot; Text=&quot;You Are Here:&quot; runat=&quot;server&quot; Visible=&quot;false&quot; /&gt;</code></pre>
<p>
	Not much magic here, just importing the necessary namespaces and creating our Label which will end up being the Message text. Notice the Label has the Text argument assigned and it is set to &quot;You Are Here:&quot;. We will discuss this further later in the article.</p>
<h4>
	The YouAreHere.ascx.cs file (code behind)</h4>
<pre>
<code>using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using mojoPortal.Web;
using mojoPortal.Web.UI;
using mojoPortal.Web.Framework;
using mojoPortal.Business;
using mojoPortal.Business.WebHelpers;


public partial class Controls_YouAreHere : System.Web.UI.UserControl
{
&nbsp;&nbsp;&nbsp; private string sMessage;
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp; public string Message
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return sMessage; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { sMessage = value; }
&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp; protected void Page_Load(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (sMessage != null)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lblYouAreHere.Text = sMessage;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PageSettings currentPage = CacheHelper.GetCurrentPage();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (currentPage == null) { return; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((currentPage.ShowBreadcrumbs)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || (currentPage.ShowChildPageBreadcrumbs)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lblYouAreHere.Visible = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; }
}

</code></pre>
<h4>
	Using the User Control (layout.Master file)</h4>
<pre>
<code>&lt;%@ Register Src=&quot;~/Controls/CustomControls/YouAreHere.ascx&quot; TagName=&quot;YouAreHere&quot; TagPrefix=&quot;i7&quot; %&gt;</code></pre>
<p>
	&nbsp;</p>
<pre>
<code>&lt;i7:YouAreHere id=&quot;YouAreHere1&quot; Message=&quot;How You Got Here:&quot; runat=&quot;server&quot; /&gt;</code></pre>
<p>
	The first line should be placed after the <font size="2">&lt;%<font color="#0000ff"><font color="#0000ff">@</font></font> <font color="#a31515"><font color="#a31515">Register</font></font></font>... line. It registers the User Control on the page.</p>
<p>
	The second line should be placed directly before the <font size="2"><font color="#0000ff">&lt;</font><font color="#a31515"><font color="#a31515">portal</font></font><font color="#0000ff"><font color="#0000ff">:</font></font><font color="#a31515"><font color="#a31515">Breadcrumbs</font></font></font>... line. This is the&nbsp;User Control Tag which will show the Message. Optionally, you can set a custom message using the <em>Message</em> argument.</p>
<p>
	<img alt="" src="http://i7media.net/Data/Sites/1/blogdata/youarehere_custommessage.jpg" style="margin: 5px; width: 375px; height: 72px;" /></p>
<p>
	<a alt="download" class="download-button-mojo" href="http://i7media.net/SharedFiles/Download.aspx?pageid=6&amp;fileid=26&amp;mid=9" title="Download the You Are Here control">&nbsp;</a></p>
<p>
	Note: i7MEDIA assumes no liability or responsibility for the use of this code. We do however want to help you if you need it so don&#39;t hesitate to <a href="http://i7media.net/contact">ask us</a>.</p>
<p>
	Happy mojo-ing!</p>
<br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/adding-you-are-here-message-to-mojoportal-breadcrumbs'>...</a>]]></description>
    </item>
    <item>
      <title>mojoPortal content features inside UI Widget</title>
      <link>http://i7media.net/mojoportal-content-features-inside-ui-widget</link>
      <pubDate>Mon, 23 Nov 2009 17:28:00 GMT</pubDate>
      <guid>http://i7media.net/mojoportal-content-features-inside-ui-widget</guid>
      <author>Joe Davis</author>
      <comments>http://i7media.net/mojoportal-content-features-inside-ui-widget</comments>
      <description><![CDATA[<p>
	With the release of mojoPortal 2.3.0.4 came the addition of Content Templates for FCKeditor and the examples included with mojoPortal for using the Content Templates were widgets like jQuery Accordian and Tabs. I like the Accordian and Tab widgets quite a bit because they allow me to easily include a very professional looking UI elements with very little work. Examples of the jQuery Accordian and Tabs are below:</p>
<p>
	&nbsp;<a href="http://josephmdavis.com/image.axd?picture=jquery-accordion-clip.png"><img alt="jquery-accordion-clip" height="234" src="http://i7media.net/Data/Sites/1/blogdata/jquery-accordion-clip.png" style="border: 0px none ; display: inline;" title="jquery-accordion-clip" width="292" /></a>&nbsp;<img alt="screenshot of jquery tabs" height="127" src="http://i7media.net/Data/Sites/1/blogdata/jquery-tabs-clip.png" width="255" /></p>
<p>
	The first idea I had for using the widgets was to include a couple different contact forms on one page, each with its own tab. So I set out creating the 3 different Contact Form instances that I needed. I was doing this for my church so I had one for the Pastor, Christian Ed. Director and the Secretary. I then created an HTML Content instance on the Contact Us page and added the Tabs UI widget to the HTML content. Now this is when I ran into a problem; there isn&#39;t any way to reference a mojoPortal module from within another module, so I had no way to put the Contact Form instances inside the UI widget.</p>
<p>
	I looked throught the documentation on the mojoPortal site but couldn&#39;t find anything that I thought would lead me in the right direction so I posted a question in the forum asking for help. Joe Audette, mojoPortal&#39;s founder and chief developer, responded with a very elegant solution. All I needed to do was create a my own module that included the Tab widget with the Contact Form instances wrapped up inside. Being the great guy he is, Joe provided me with the necessary code to make this work. The process is very simple:</p>
<ol>
	<li>
		Create a text file named whateveryoulike.ascx</li>
	<li>
		Paste this code into the text file:
		<pre>
		<code>&lt;%@ Control Language=&quot;C#&quot; ClassName=&quot;MultiModuleInTabsModule.ascx&quot; Inherits=&quot;mojoPortal.Web.SiteModuleControl&quot; %&gt;
&lt;%@ register assembly=&quot;AjaxControlToolkit&quot; namespace=&quot;AjaxControlToolkit&quot; tagprefix=&quot;portal&quot; %&gt;
&lt;%@ Import Namespace=&quot;mojoPortal.Business&quot; %&gt;
&lt;%@ Import Namespace=&quot;mojoPortal.Business.WebHelpers&quot; %&gt;
&lt;%@ Import Namespace=&quot;mojoPortal.Web.Framework&quot; %&gt;
&lt;%@ Import Namespace=&quot;mojoPortal.Web.Controls&quot; %&gt;
&lt;%@ Import Namespace=&quot;mojoPortal.Web.Editor&quot; %&gt;
&lt;%@ Import Namespace=&quot;mojoPortal.Net&quot; %&gt;

&lt;script runat=&quot;server&quot;&gt;
&nbsp;&nbsp; &nbsp;protected void Page_Load(object sender, EventArgs e)
&nbsp;&nbsp; &nbsp;{
&nbsp;&nbsp; &nbsp;}&nbsp;&nbsp; &nbsp;
&lt;/script&gt;

&lt;div class=&quot;mojo-tabs&quot;&gt;
&nbsp;&nbsp; &nbsp;&lt;ul&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href=&quot;#tab1&quot;&gt;Tab 1&lt;/a&gt;&lt;/li&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href=&quot;#tab2&quot;&gt;Tab 2&lt;/a&gt;&lt;/li&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href=&quot;#tab3&quot;&gt;Tab 3&lt;/a&gt;&lt;/li&gt;
&nbsp;&nbsp; &nbsp;&lt;/ul&gt;
&nbsp;&nbsp; &nbsp;&lt;div id=&quot;tab1&quot;&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:Panel ID=&quot;pnlModuleWrapper1&quot; runat=&quot;server&quot;&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;portal:ModuleWrapper ID=&quot;ModuleWrapper1&quot; runat=&quot;server&quot; ConfigureModuleID=&quot;15&quot; /&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:Panel&gt;
&nbsp;&nbsp; &nbsp;&lt;/div&gt;
&nbsp;&nbsp; &nbsp;&lt;div id=&quot;tab2&quot;&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:Panel ID=&quot;pnlModuleWrapper2&quot; runat=&quot;server&quot;&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;portal:ModuleWrapper ID=&quot;ModuleWrapper2&quot; runat=&quot;server&quot; ConfigureModuleID=&quot;16&quot; /&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:Panel&gt;
&nbsp;&nbsp; &nbsp;&lt;/div&gt;
&nbsp;&nbsp; &nbsp;&lt;div id=&quot;tab3&quot;&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:Panel ID=&quot;pnlModuleWrapper3&quot; runat=&quot;server&quot;&gt;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;portal:ModuleWrapper ID=&quot;ModuleWrapper3&quot; runat=&quot;server&quot; ConfigureModuleID=&quot;17&quot; /&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:Panel&gt;
&nbsp;&nbsp; &nbsp;&lt;/div&gt;
&lt;/div&gt;</code></pre>
	</li>
	<li>
		Find the ModuleID for each Contact Form instance and modify the ModuleWrapper controls in the code above to match the correct ModuleIDs. <em><strong>Note: To find the correct ModuleIDs all you need to do is hover over the Edit or Settings link for the Contact Form instances and then look in your browser&#39;s status bar. The ModuleID will show as mid=SomeNumber.</strong></em></li>
	<li>
		Save the file you created in the first step to the &quot;~\data\sites\[sitenumber]\Modules&quot; directory. (Note: you can save the file to any directory in the mojoPortal application but I think it is best that you save it to a directory under your actual site in the Data directory because this will prevent it from being overwritten or accidentally deleted during upgrades.</li>
	<li>
		Install your newly created module via the Administration &gt; Advanced Tools &gt; Feature Installation/Configuration screen inside of your mojoPortal site.
		<ol>
			<li>
				This is rather straight forward. All you have to do is give your Module a name, and input the correct path in the <em>Control Source</em> field. You may want to create your own GUID to make sure that it is unique.</li>
		</ol>
	</li>
	<li>
		Now you can add your new module to any page you like just as you would add any other module to a page.</li>
</ol>
<p>
	Here&rsquo;s a screenshot of the end result:</p>
<p>
	<img alt="screenshot of content module inside jquery tabs" height="273" src="http://i7media.net/Data/Sites/1/blogdata/contactforminsidetabs.png" width="300" /></p>
<p>
	&nbsp;</p>
<p>
	Happy mojo-ing!</p>
<br /><a href='http://i7media.net'>Joe Davis</a>&nbsp;&nbsp;<a href='http://i7media.net/mojoportal-content-features-inside-ui-widget'>...</a>]]></description>
    </item>
  </channel>
</rss>