<?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>Jean Egan &#187; Jean</title>
	<atom:link href="http://jeanegan.com/author/roachee/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeanegan.com</link>
	<description>Helping to empower people with their web presence</description>
	<lastBuildDate>Fri, 10 Sep 2010 14:03:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Excellent Gallery Plug-in for WordPress &#8211; NextGen</title>
		<link>http://jeanegan.com/2010/05/02/excellent-gallery-plug-in-for-wordpress/</link>
		<comments>http://jeanegan.com/2010/05/02/excellent-gallery-plug-in-for-wordpress/#comments</comments>
		<pubDate>Sun, 02 May 2010 17:53:46 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=1032</guid>
		<description><![CDATA[NOTE: I&#8217;ve been doing a lot of linking to other people&#8217;s site blogs. This is partly to help me remember where to find the information as well as to share with my clients (and anyone else) searching for similar solutions. The NextGen Gallery plug-in is so comprehensive, I&#8217;ve set my husband&#8217;s photography site up with [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>NOTE</strong>: I&#8217;ve been doing a lot of linking to other people&#8217;s site blogs. This is partly to help me remember where to find the information as well as to share with my clients (and anyone else) searching for similar solutions.</em></p>
<p>The NextGen Gallery plug-in is so comprehensive, I&#8217;ve set my husband&#8217;s photography site up with it, and I&#8217;ll be setting my site up with it shortly.<span id="more-1032"></span></p>
<p>It gives you complete control of what page you&#8217;d like your gallery images to appear, the title and description of the images and it&#8217;s easy to move images from gallery to gallery. (if, for instance you would like to share your newer images on your home page, then be able to move them into their respective final gallery spot.)</p>
<p>You even have complete control over the <em>order</em> in which your images are viewed &#8211; <em>and so much more</em>.</p>
<p>One thing I was particularly impressed with &#8211; and it is something I&#8217;ve been searching for for a LONG time as a solution for a client of mine who went with a very rigid flash gallery because he wanted to have different background songs depending on which gallery people were viewing.</p>
<p>The NextGen gallery plug-in <em>absolutely</em> comes through. I&#8217;ll be sharing this information with my client so he can actually enjoy working with his online galleries rather than feel constrained by the rigid constraints of the gallery he&#8217;s using right now.</p>
<p>With regards to having different songs play on each slideshow, the NextGen people said it much better than I could recount it here, so <a href="http://nextgen-gallery.com/custom-fields/" target="_blank">here&#8217;s a link</a>!</p>
<p>Also, here&#8217;s a link to <a href="http://wordpress.org/extend/plugins/nextgen-gallery/" target="_blank">download</a> the plug-in, if you have a WordPress driven site.</p>
<p>Have fun!</p>
<div class='wp_likes' id='wp_likes_post-1032'><a class='like' href="javascript:wp_likes.like(1032);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(1032);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2010/05/02/excellent-gallery-plug-in-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Layering a Flash animation below a div element</title>
		<link>http://jeanegan.com/2010/05/02/layering-a-flash-animation-below-a-div-element/</link>
		<comments>http://jeanegan.com/2010/05/02/layering-a-flash-animation-below-a-div-element/#comments</comments>
		<pubDate>Sun, 02 May 2010 07:05:30 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=1011</guid>
		<description><![CDATA[This article impressed me enough to share it. If you are creating a website with a css drop-down menu that happens to rest directly north of a placed swf animation, you will find Internet Explorer ignores any z-index settings you may have placed. (Layering the Flash animation below the drop downs.) Much to your dismay, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://slightlymore.co.uk/flash-and-the-z-index-problem-solved" target="_blank">This article</a> impressed me enough to share it. If you are creating a website with a css drop-down menu that happens to rest directly north of a placed swf animation, you will find Internet Explorer ignores any z-index settings you may have placed. (Layering the Flash animation below the drop downs.) Much to your dismay, your drop down menus will go below the flash no matter what your z-index settings are!</p>
<p>Thanks to the Slightlymore site &#8211; I was able to add the following parameter within my placed .swf code &#038; it immediately was layered properly! Thank you, Slightlymore!</p>
<p><code>&lt;param name=&quot;wmode&quot; value=&quot;opaque&quot; /&gt;</code></p>
<div class='wp_likes' id='wp_likes_post-1011'><a class='like' href="javascript:wp_likes.like(1011);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(1011);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2010/05/02/layering-a-flash-animation-below-a-div-element/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centering a horizontal unordered or ordered list menu</title>
		<link>http://jeanegan.com/2010/05/01/centering-a-horizontal-unordered-or-ordered-list-menu/</link>
		<comments>http://jeanegan.com/2010/05/01/centering-a-horizontal-unordered-or-ordered-list-menu/#comments</comments>
		<pubDate>Sat, 01 May 2010 15:13:18 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=1021</guid>
		<description><![CDATA[This article does a great job at showing how to center a horizontal &#60;li&#62; menu. Unfortunately, drop down menus off of that centered list need to be tweaked, as they don&#8217;t appear where you would expect them to. If you have any suggestions, feel free to leave a comment. I&#8217;ll be trying to figure it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://matthewjamestaylor.com/blog/beautiful-css-centered-menus-no-hacks-full-cross-browser-support" target="_blank">This article</a> does a great job at showing how to center a horizontal <code>&lt;li&gt;</code> menu. Unfortunately, drop down menus off of that centered list need to be tweaked, as they don&#8217;t appear where you would expect them to.</p>
<p>If you have any suggestions, feel free to leave a comment. I&#8217;ll be trying to figure it out as well!</p>
<div class='wp_likes' id='wp_likes_post-1021'><a class='like' href="javascript:wp_likes.like(1021);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(1021);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2010/05/01/centering-a-horizontal-unordered-or-ordered-list-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 101</title>
		<link>http://jeanegan.com/2010/04/26/wordpress-101/</link>
		<comments>http://jeanegan.com/2010/04/26/wordpress-101/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 14:39:27 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=997</guid>
		<description><![CDATA[Discover the value and benefit of using WordPress to create your website. In this class, you will follow along with an example site as it&#8217;s being built. Handouts will be given as a guide for your future reference. This class is a &#8220;build from the ground&#8221; &#8211; no experience necessary, class. I&#8217;ll be discussing concepts [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-1000 alignleft" title="WordPress 101 - No HTML experience necessary!" src="http://jeanegan.com/wp-content/uploads/2010/04/wordpress101-tiny.jpg" alt="" width="330" height="450" /></p>
<p>Discover the value and benefit of using WordPress to create your website. In this class, you will follow along with an example site as it&#8217;s being built. Handouts will be given as a guide for your future reference.</p>
<p>This class is a &#8220;build from the ground&#8221; &#8211; no experience necessary, class. I&#8217;ll be discussing concepts and giving out step-by-step instructions so you can feel confident you can do it on your own!</p>
<p>(A certificate of attendance will be given, for business funded reimbursement purposes.)</p>
<p><strong>Presented by</strong>: Jean Egan</p>
<p><strong>Where</strong>:	Spirit of Light Wellness Studio, Wallingford, CT<br />
(<a title="Google Map for Directions to the Spirit of Light Wellness Center, 1161 S. Broad St., Wallingford, CT 06492" href="http://tinyurl.com/spiritoflight-wallingford" target="_blank">Click here</a> for map/directions)</p>
<p><strong>When</strong>:	Thursday, June 10th, 6:30 to 8:30 p.m.</p>
<p><strong>Cost</strong>:	$35</p>
<p><a href="http://www.eventbrite.com/event/682521440" target="_blank"><img class="size-full wp-image-1061 alignnone" title="Register Here" src="http://jeanegan.com/wp-content/uploads/2010/04/register-button.gif" alt="" width="138" height="54" /></a> <a href="http://www.eventbrite.com/event/682521440" target="_blank"> </a><a href="http://us1.forward-to-friend.com/forward?u=a9f0ee20aac6f7136d6417a04&amp;id=675488cbb2&amp;e=8b6bbd4d9e"><img class="alignnone size-full wp-image-1069" title="Share with a Friend" src="http://jeanegan.com/wp-content/uploads/2010/04/share.gif" alt="" width="163" height="54" /></a></p>
<p>Call 203-641-3371 to speak to Colleen Behan for more information about the Spirit of Light Wellness Studio and 860-881-2346 to speak with Jean Egan for more information about class content.</p>
<p>~~~</p>
<p><em>If you would like Jean to host this class at your business location, she is available for a group reservation of 10 or more people. Contact for More Information or to Schedule a Class.</em></p>
<p><em>Jean is also available for one-on-one instruction as well as for consultation at a reduced hourly rate.</em></p>
<div class='wp_likes' id='wp_likes_post-997'><a class='like' href="javascript:wp_likes.like(997);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(997);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2010/04/26/wordpress-101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to create a client portal in WordPress</title>
		<link>http://jeanegan.com/2010/02/05/how-to-create-a-client-portal-in-wordpress/</link>
		<comments>http://jeanegan.com/2010/02/05/how-to-create-a-client-portal-in-wordpress/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 06:07:43 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://jeanegan.com/2010/02/05/how-to-create-a-client-portal-in-wordpress/</guid>
		<description><![CDATA[I&#8217;m not a programmer, but I play one when I&#8217;m adventurous. A client of mine needed to share different (private) content with their clients. He also needed workers of his to be able to view and update all clients pages, but didn&#8217;t want to give access to the WordPress admin area for either. Although I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not a programmer, but I play one when I&#8217;m adventurous.</p>
<p>A client of mine needed to share different (private) content with their clients. He also needed workers of his to be able to view and update all clients pages, but didn&#8217;t want to give access to the WordPress admin area for either.<span id="more-883"></span></p>
<p>Although I would have loved to dig REALLY deep in the programming and pull the content dynamically from the database, my client and I both opted for the quicker, cheaper route, although this takes more time on his end to add new users and create pages they&#8217;ll be redirected to.</p>
<p>I did a quick search for &#8220;Client Portal WordPress&#8221; and came up with <a href="http://wordpress.org/support/topic/217141" target="_blank">this</a>. I did a few more things than they did, but that&#8217;s where I started. I liked what I created for my client&#8217;s site, so I set my site up with a client portal as well. This allows me to privately share information with my clients.</p>
<p>Basically, here&#8217;s how it works: Install the plugins listed below, set up and assign a new roll called &#8220;Clients&#8221;, create the actual user (as you would create a subscriber in your WordPress Users area) and create the page they&#8217;ll be redirected to! Clients can correspond to you via their page(s) and an email is sent to every person who has subscribed to that page.</p>
<p>I&#8217;ll go through the steps below in detail. If anything is confusing, feel free to contact me and ask. I spent a bit of time organizing the following information &amp; hope I haven&#8217;t forgotten anything! (Plus, it&#8217;s a couple weeks after I set it up, so I may have forgotten something.)</p>
<p><em>Share the knowledge!</em></p>
<h2>Let&#8217;s create a client portal, using mostly WordPress plug-ins &#8211; and some specialized code in your template page(s)!</h2>
<h3>Step 1: Install the following plugins</h3>
<p>The list of plugins I used &amp; what they do:</p>
<ol>
<li><a href="http://wordpress.org/extend/plugins/bm-custom-login/" target="_blank">BM Custom Login</a> &#8211; Use this if you wish to brand the standard &#8220;/wp-login.php&#8221; page with your own logo, colors, etc. if clients happen to find themselves there. The Sidebar Login plugin below makes this area somewhat obsolete/redundant, but I want to cover all bases &amp; give a professional look.</li>
<li><a href="http://wordpress.org/extend/plugins/breadcrumb-navigation-xt/" target="_blank">Breadcrumb Nav XT</a> &#8211; This helps people understand where they are by showing the current page location &amp; site hierarchy above that page. The default top level breadcrumb is called &#8220;Blog&#8221; but it&#8217;s easily changed to &#8220;Home&#8221; in the Breadcrumb Nav XT settings.</li>
<li><a href="http://wordpress.org/extend/plugins/exclude-pages/" target="_blank">Exclude Pages</a> &#8211; If you wish to have your full client list page hidden to non-administrators.</li>
<li><a href="http://wordpress.org/extend/plugins/iwg-hide-dashboard/" target="_blank">IWG Hide Dashboard</a> &#8211; This allows you to keep clients from accessing the WordPress Dashboard. Comments from everyone are shown on the Dashboard. I didn&#8217;t want clients viewing other clients comments.</li>
<li><a href="http://www.im-web-gefunden.de/wordpress-plugins/role-manager/" target="_blank">Role Manager</a> (This plugin doesn&#8217;t seem to be offered on WordPress&#8217; site.) &#8211; This allows you to create new rolls. It is a little overkill, but it helps to identify rolls and keep yourself sane <img src='http://jeanegan.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li><a href="http://wordpress.org/extend/plugins/sidebar-login/" target="_blank">Sidebar Login</a> &#8211; This lets clients log in and log out right from the sidebar. It allows you to post persistent helpful links for yourself, your workers and for clients once they&#8217;re logged in.</li>
<li><a href="http://wordpress.org/extend/plugins/subpages-widget/" target="_blank">Subpages Widget</a> &#8211; This shows subpages in your sidebar widgets. It&#8217;s helpful in that you won&#8217;t have to manually post links to sub pages &#8211; they&#8217;re automatically created as you create your pages.</li>
<li><a href="http://wordpress.org/extend/plugins/subscribe-to-comments/" target="_blank">Subscribe to Comments</a> &#8211; As administrator, you always receive an email when someone makes a comment to your site. If you wish to offer your clients an email when you or your worker update their page, install this plugin. They can subscribe to comments of any page they have the ability to make comments on. *<strong>Additional note:</strong> Clients don&#8217;t tend to understand the &#8220;subscribe&#8221; function, so I&#8217;ve been signing in with their username (after I set each client up) and subscribing to their own client page(s). They get the emails and I didn&#8217;t have to &#8220;teach&#8221; them what to do.</li>
<li><a href="http://wordpress.org/extend/plugins/peters-login-redirect/" target="_blank">Peter&#8217;s Login Redirect</a> &#8211; This will allow you to redirect clients to their own page once they&#8217;ve signed in. I&#8217;ve set mine up so I won&#8217;t have to continually add new redirects. I set one redirect. Everyone is redirected to my main clients page &amp; based on their user level, they either see the full client page (administrators &amp; workers), or are directed to a page that matches their username.</li>
</ol>
<p>I&#8217;ll go through why I used all of these, but list form is easiest to go down and just install.</p>
<h3>Step 2: Set up a special role for your clients</h3>
<p>(and workers, if you wish to assign another level of access. We&#8217;ll stick with just clients at this point.)</p>
<p>Once you install the <strong>Role Manager plugin</strong>, your WordPress admin interface will have additional choices:</p>
<p><img class="alignnone size-full wp-image-891" title="role-manager" src="http://jeanegan.com/wp-content/uploads/2010/02/role-manager.png" alt="" width="144" height="206" /></p>
<p>I created a roll called &#8220;Clients&#8221; with a user level of 2, another roll called &#8220;Worker&#8221; with a user level of 5 and deleted rolls that were superfluous, just to keep things neat. This left me with three rolls &#8211; Administrator, Clients &amp; Worker.</p>
<p>This step is a little reverse-intuitive. Once you install the <strong>IWG Hide Dashboard plugin</strong> you&#8217;ll create a capability to <em>take away</em> the capability to go to the WordPress Dashboard. You <em>grant</em> the capability to <em>not grant</em> them access to your Dashboard. (Hah!)</p>
<p>As per<strong> </strong><a href="http://www.im-web-gefunden.de/wordpress-plugins/iwg-hide-dashboard/" target="_blank">their instructions</a>:</p>
<p>First use the <a title="Role Manager for WordPress" href="http://www.im-web-gefunden.de/wordpress-plugins/role-manager/">Role Manager</a> and create a new capability “hide dashboard”.<br />
Assign the newly created capability “Hide Dashboard” to each role who you don’t want give access to the Dashboard.<br />
From this time on, all users with the capability “Hide Dashboard” have no longer access to the Dashboard.</p>
<p>My clients capabilities:</p>
<div id="attachment_922" class="wp-caption alignnone" style="width: 310px"><a href="http://jeanegan.com/wp-content/uploads/2010/02/role-clients.gif" target="_blank"><img class="size-medium wp-image-922 " title="role-clients" src="http://jeanegan.com/wp-content/uploads/2010/02/role-clients-300x92.gif" alt="" width="300" height="92" /></a><p class="wp-caption-text">(Click to view full-size.)</p></div>
<h3>Create a user</h3>
<p>Just as you would create a subscriber, create a new user in your WordPress interface. Make sure to set their roll as &#8220;Clients&#8221;.</p>
<p><img class="alignnone size-full wp-image-925" title="add-new-user" src="http://jeanegan.com/wp-content/uploads/2010/02/add-new-user.gif" alt="" width="147" height="73" /></p>
<h3>Step 3: Create your main client page and then the special page your client will be directed to</h3>
<p>My client pages are organized with a main &#8220;Clients&#8221; page, and each client&#8217;s page is a child of that page. This keeps my page list organized. Each client&#8217;s page can also have children. (Only 1 level deep, the way I have mine set up, though.)</p>
<p>You only need to set up the main client page once, but with each new client you set up, you will need to set up their individual page(s) &amp; put them under the main &#8220;Clients&#8221; page. Within the WordPress interface, create 3 new pages. Name the first one &#8220;Clients&#8221;, the second one &#8220;testclient&#8221; and the third one &#8220;childtestclient&#8221;. Make &#8220;Clients&#8221; the parent of &#8220;testclient&#8221;, and &#8220;testclient&#8221; the parent of &#8220;childtestclient&#8221;. These will be your test client pages.</p>
<p>Right now, anyone has access to these pages. We&#8217;re going to create two templates and change the page code to only allow the specific client to have access to their page(s).</p>
<p><em>NOTE: It is important to name the client &#8220;username&#8221; the EXACT name of your page. It is NOT flexible with spaces, dashes, etc. DEFINITELY name the username all lowercase, since your page slug (address) will, by default be all lowercase. I tried using a &#8220;dash&#8221; instead of a space in the username as well as the page &#8211; but it&#8217;s really finicky &#8211; it goes by the TITLE, so until I find a better solution, have been adhering to the strict naming convention. This part still confuses me &#8211; I apologize for not being too clear here. I&#8217;m going to once again restate my claim that I am a designer by nature, not a programmer, so please forgive my lack of knowledge about this.</em></p>
<p>Ok &#8211; let&#8217;s create 2 new page templates within your theme. First, duplicate your &#8220;page.php&#8221; page twice. Name the first file &#8220;clientsredirect.php&#8221; and add this code to the top:</p>
<p>&lt;?php<br />
/*<br />
Template Name: Clients Redirected<br />
*/<br />
?&gt;</p>
<p>Name the second file &#8220;clients.php&#8221; and add this code to the top:</p>
<p>&lt;?php<br />
/*<br />
Template Name: Clients<br />
*/<br />
?&gt;</p>
<p>This effectively sets up the ability for these page templates to be chosen in the WordPress interface when you&#8217;re editing your page. There is nothing different about them&#8230; yet! If you&#8217;d like to assign the &#8220;Clients Redirected&#8221; template to your main &#8220;Clients&#8221; page, and your &#8220;Clients&#8221; template to your &#8220;TestClient&#8221; and &#8220;ChildTestClient&#8221;, you will be able to see the privacy settings you&#8217;re about to apply take hold. I generally use one browser (Firefox) for working, and another (Safari or Opera) for testing permissions &#8211; so I don&#8217;t have to sign in and out so often.</p>
<p>Because the &#8220;<a href="../wp-content/uploads/2010/02/clientsredirect.zip">clientsredirect.php</a>&#8221; page is really the&#8221;<a href="../wp-content/uploads/2010/02/clients.zip">clients.php</a>&#8221; page with some extra REDIRECTION code at the top, let&#8217;s build the clients.php page first. (You can download the linked files to see where all the following code goes. Of course it&#8217;s formatted for my site, so you may want to just use it as reference.)</p>
<p><strong>The specialized code in the clients.php page looks like this:</strong></p>
<p>&lt;?php<br />
$thetitle = strtolower(get_the_title());<br />
$shorttitle = str_replace(&#8216; &#8216;, &#8221;, $thetitle);<br />
$username = ( $userdata-&gt;user_login );<br />
$parent_title = strtolower(get_the_title($post-&gt;post_parent));<br />
$theparent = str_replace(&#8216; &#8216;, &#8221;, $parent_title);<br />
?&gt;</p>
<p>The previous code sets some variables to work with (the username, page or parent page).</p>
<p>&lt;?php if ( current_user_can( &#8216;level_5&#8242; ) || is_user_logged_in() &amp;&amp; $username==$shorttitle || is_user_logged_in() &amp;&amp; $username==$parent_title)  { ?&gt;</p>
<p>The if statement above looks at the level of user to determine where to send them. It says If the user is of level 5 or better OR if they&#8217;re logged in AND their username is equal to the title of the page OR the username is logged in AND the username is equal to the parent page title. (Then you will show the page, otherwise, you dump them out in the following code.)</p>
<p>&lt;?php } elseif ( is_user_logged_in()==false ) { ?&gt;<br />
&lt;div&gt;<br />
&lt;h2&gt;Sorry&#8230;&lt;/h2&gt;<br />
&lt;p&gt;You must be &lt;a href=&#8221;http://yoursitehere.com/wp-login.php&#8221;&gt;logged in&lt;/a&gt; to access this area.&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;?php } elseif ( is_user_logged_in() &amp;&amp; $username!=$shorttitle ) { ?&gt;<br />
&lt;div&gt;<br />
&lt;h2&gt;Sorry&#8230;&lt;/h2&gt;<br />
&lt;p&gt;You are not allowed to access this area.&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;?php } ?&gt;</p>
<p>The previous snippet of code is the last part of your if-then-else statement to show the content of the page. It says: if they are NOT logged in, show the content to help them sign in. If that&#8217;s not the case and they&#8217;re signed in but shouldn&#8217;t be in the area they&#8217;re asking to be in, (if they are hacking &amp; looking to go into parent directories or other client directories they shouldn&#8217;t be in,) then give a message that says &#8220;sorry you are not allowed here&#8221;.</p>
<p><strong>The specialized code in the clientsredirect.php page looks like this.</strong></p>
<p>This is the <em>only difference</em> between the  clientsredirect.php page and the clients.php page is the following code. It MUST be placed FIRST in your php file:</p>
<p>&lt;?php<br />
$thetitle = strtolower(get_the_title());<br />
$shorttitle = str_replace(&#8216; &#8216;, &#8221;, $thetitle);<br />
$username = ( $userdata-&gt;user_login );<br />
$parent_title = strtolower(get_the_title($post-&gt;post_parent));<br />
$theparent = str_replace(&#8216; &#8216;, &#8221;, $parent_title);<br />
if (current_user_can(&#8216;level_5&#8242;)) :    echo &#8220;&#8221;; else : header( &#8216;Location:  http://www.yoursitenamehere.com/wp-admin/&#8217; . $username . &#8216;/&#8217;);  ?&gt;&lt;?php endif; ?&gt;</p>
<p><em><strong>The previous code needs to be placed FIRST in your php file. It is  VITAL. </strong></em>The clientsredirect.php page will look at the username and REDIRECT  them to their specific sub-page.</p>
<p>In  the code at the top of the clientsredirect.php page, it asks what level  the person is, and directs them to the  appropriate page. If the user  is a worker (Level 5) or greater, it shows  my main &#8220;Clients&#8221; page. If  it is a client (level 2), it directs them to  their sub-page. The link  above to the page has my formatting, so you  can download it and  reformat it for yourself. Below I will show you the  specific code that  makes the clientsredirect.php page special.  (Undoubtedly, you also have  formatting you wish to keep.)</p>
<h3>Step 4: Set up the general redirection</h3>
<p>Using Peter&#8217;s Login Redirect, set up the general redirection for users specified as &#8220;Clients&#8221; to be redirected to your main &#8220;Clients&#8221; page. (clientsredirect.php)</p>
<p>After you install Peter&#8217;s Login Redirect, you will fin the settings for this under &#8220;Settings&#8221;, &#8220;Login Redirects&#8221;. Go down to &#8220;Specific Roles&#8221; and set &#8220;Clients&#8221; to &#8220;http://yourdomain.com/clients/&#8221; and then hit the &#8220;Update&#8221; button for it to become active.</p>
<p><img class="alignnone size-full wp-image-1141" title="redirect" src="http://jeanegan.com/wp-content/uploads/2010/02/redirect.gif" alt="" width="339" height="123" /></p>
<p>Now, all people signed in with the &#8220;Clients&#8221; role will be directed to your main &#8220;Clients&#8221; page which will test the user level. If it is an administrator or a worker, it will display the main &#8220;Clients&#8221; page. If it is a &#8220;Client&#8221;, it will direct them to the page that shares their EXACT username.</p>
<p><em>That&#8217;s all!<br />
</em></p>
<hr /><em>The above code are excerpts from pages &amp; will not work unless placed properly in the page. If you need to see where they appear in the page, download the two zip files of each of the pages &amp; take a look. I just didn&#8217;t want to post both pages in their entirety here. If you have questions, feel free to email <a href="mailto:jean@jeanegan.com">me</a>.</em></p>
<p><em>I will be installing another client portal soon &amp; will follow my own steps to double check and add anything I may have forgotten. I haven&#8217;t explained the sidebar login &#8211; which is so helpful &#8211; it allows you to give access to certain pertinent areas of your website. I&#8217;ll add that information as I get time or if someone asks <img src='http://jeanegan.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2010/02/05/how-to-create-a-client-portal-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Dealing with Spammers</title>
		<link>http://jeanegan.com/2009/08/12/spam/</link>
		<comments>http://jeanegan.com/2009/08/12/spam/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 21:48:40 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[Reference]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=757</guid>
		<description><![CDATA[I recently received a lot of what is called &#8220;Backscatter&#8221; spam email messages. These types of spam messages are different than regular spam in that the messages I received were from the &#8220;Mail Delivery System&#8221; and &#8220;Mail Delivery Subsystem&#8221;. (MDS) They were notices that emails that &#8220;I&#8221; tried to send didn&#8217;t get sent. I emphasise [...]]]></description>
			<content:encoded><![CDATA[<p>I recently received a lot of what is called &#8220;Backscatter&#8221; spam email messages. These types of spam messages are different than regular spam in that the messages I received were from the &#8220;Mail Delivery System&#8221; and &#8220;Mail Delivery Subsystem&#8221;. (MDS) They were notices that emails that &#8220;I&#8221; tried to send didn&#8217;t get sent. I emphasise the word &#8220;I&#8221; because, well.. because I didn&#8217;t send them.</p>
<p><span id="more-757"></span>Here&#8217;s what happened, a spammer decided to use my domain name for a return email address on their messages that they sent. When the messages were sent to email addresses or domains that did not exist, the receiving server sends a report to my server that the message was not sent, for whatever reason and composes a MDS email. These messages make it back to my mailbox, as though I were the person sending these horrible emails.</p>
<p>So I set to work on seeing what could be done to stop this abhorrant abuse. Here&#8217;s what I&#8217;ve come up with. SPF &#8211; Sender Policy Framework. Basically, it&#8217;s dependent upon the receiver&#8217;s server to come to my server and check to see if it&#8217;s coming from me, really. If the receiver&#8217;s mail server doesn&#8217;t check for a SPF record, the spam will be sent through.</p>
<p>Previously, my SPF TXT record looked like this:</p>
<blockquote><p>&#8220;v=spf1 a mx ?all&#8221;</p></blockquote>
<p>I changed it to look like this (where myISPhost.com = my particular ISP host, because I use my host&#8217;s SMTP server to send mail:</p>
<blockquote><p>&#8220;v=spf1 a mx include:myISPhost.com ~all&#8221;</p></blockquote>
<p>The change from a ? to a ~ basically says, ONLY accept messages coming directly from my mail server, OR from my internet service provider, and nowhere else.</p>
<p>When I go on vacation, I&#8217;ll need to hook up directly to my webmail to send messages, because if the ISP is not the one I have specified, the message WILL NOT be sent because I normally use the SMTP server of my ISP in my email program.</p>
<p>Unfortunately, this will not decrease the amount of backscatter because it will still send me failed reports, but by setting the SPF record this way, it will make my server less desirable to spammers, because of the higher fail rate.</p>
<p>I hope that you have found this helpful.</p>
<p>If I am hosting your site, and you wish for me to update your SPF record, please feel free to contact me. Let me know if you are sending email from your domain but use the SMTP of your ISP, (See the &#8220;Sending mail&#8221; preference of your email account) and I will update your DNS entry to make your server less desirable to spammers as well.</p>
<p>If you have found this page and I&#8217;m not hosting your domain and you would like to set up your SPF text record in your DNS records, and have access to WHM (WebHost Manager) you can update this record by going to &#8220;Edit DNS zone&#8221; and either editing what is there, or adding a TXT line, similar to the one above. If you need help creating this line, <a href="http://www.openspf.org/" target="_blank">openspf.org</a> has a setup wizard that can automatically generate your code there. I understand you can do it through SSH as well, but I don&#8217;t know how to do that. If you don&#8217;t know where to start to edit your DNS zone, contact your web hosting company. They should be able to help you.</p>
<p><strong><em>Good luck!</em></strong></p>
<div class='wp_likes' id='wp_likes_post-757'><a class='like' href="javascript:wp_likes.like(757);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(757);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2009/08/12/spam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Procrastination</title>
		<link>http://jeanegan.com/2009/07/24/procrastination/</link>
		<comments>http://jeanegan.com/2009/07/24/procrastination/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 21:46:41 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=700</guid>
		<description><![CDATA[Recently, my husband and I have been getting more inspired. This afternoon, we briefly talked about how much time we can spend thinking about doing something, rather than just doing it. With the time that we&#8217;ve spent thinking of doing it, we could have done it, five times over. But why have we procrastinated? When [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, my husband and I have been getting more inspired. This afternoon, we briefly talked about how much time we can spend <em>thinking</em> about doing something, rather than just <em>doing</em> it. With the time that we&#8217;ve spent thinking of doing it, we could have done it, five times over.</p>
<h2>But why have we procrastinated?</h2>
<div id="attachment_701" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-701" title="Productive" src="http://jeanegan.com/wp-content/uploads/2009/07/productive-4576001-300x198.jpg" alt="Writing things down puts my mind at ease and allows me to truly rest." width="300" height="198" /><p class="wp-caption-text">Writing things down puts my mind at ease and allows me to truly rest.</p></div>
<p><span id="more-700"></span>When we think of this task &#8211; say &#8211; cleaning the bathroom. We think of the energy it takes to do it. If our current energy matches the task, we do it. Otherwise, we divert ourselves to lower energy tasks &#8211; like checking out what friends are doing on Facebook, looking into our favorite newsgroup board, playing online games or watching television/movies. (etc.)</p>
<p>I&#8217;m going to try an experiment to not do the lower energy tasks at that moment, but instead to write myself a note or a list of things I&#8217;d like to accomplish.  (so I can have a true rest and not just lay there thinking of stuff I shouldn&#8217;t forget!) I will be sure to give myself a reasonable time to finish the task(s).</p>
<p>Then, I will get some rest &amp; tackle the list when I have more energy.</p>
<p>What do you think about that? It&#8217;s a change of habit, so it may not feel comfortable at first. I&#8217;ll post my outcome, and also check back in the long run to see how it works out long-term. Wish me (us) luck!</p>
<p>Pardon that I&#8217;ve procrastinating on doing some billable work to write this.</p>
<div class='wp_likes' id='wp_likes_post-700'><a class='like' href="javascript:wp_likes.like(700);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(700);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2009/07/24/procrastination/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Car conversion stuffs started!</title>
		<link>http://jeanegan.com/2009/05/01/car-conversion-stuffs-started/</link>
		<comments>http://jeanegan.com/2009/05/01/car-conversion-stuffs-started/#comments</comments>
		<pubDate>Sat, 02 May 2009 01:52:13 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[Electric Conversions]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=603</guid>
		<description><![CDATA[Holy cow. I can&#8217;t believe I&#8217;m finally starting in on this. I feel like I&#8217;ve read about it and talked about it for so long, that I&#8217;m all read and talked out. Time to do! Today I went and set up the engine lift at the garage space a friend has so graciously offered up. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Holy cow.</strong> I can&#8217;t believe I&#8217;m finally starting in on this. I feel like I&#8217;ve read about it and talked about it for so long, that I&#8217;m <em>all</em> read and <strong>talked out</strong>. Time to <strong>do</strong>!</p>
<p>Today I went and set up the engine lift at the garage space a friend has so graciously offered up.<span id="more-603"></span></p>
<p>It looks like I need to attend to the hydraulic fluid, as it didn&#8217;t pump up as it should have. (It&#8217;s new, but has instructions on what to do if it doesn&#8217;t work. Grr. That&#8217;s Harbor Freight for you, from what I understand.) I&#8217;ll need to buy hydraulic fluid before my next trip to the garage. All good. More stuff to learn. So, aside from that, it went together very well and only took me just over 2 hours.</p>
<p>Next step will be to turn the car around in the garage so it&#8217;s facing out and take the hood off &#8211; so the engine can be lifted out. I will be taking pics along the way, which will make this infinitely more interesting, but I&#8217;m having difficulty with the digital camera my dad had given to me. It seems to eat through batteries! I&#8217;ll think of something!</p>
<p>Update: The hydraulic fluid was not necessary &#8211; I just needed to twist the shaft of the lift to break the seal raise it fully, then lower it &#8211; it works like a charm now!</p>
<p>This Wed/Thursday, I plan on taking the hood off. It&#8217;s a 2 person job, so I&#8217;ve scheduled it on a day that my hubby can help me with it. Fun! After that, I have the fun of taking out the engine, and the exhaust system.</p>
<div class='wp_likes' id='wp_likes_post-603'><a class='like' href="javascript:wp_likes.like(603);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(603);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2009/05/01/car-conversion-stuffs-started/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My top 25 played iTunes songs</title>
		<link>http://jeanegan.com/2009/04/19/my-top-25-played-itunes-songs/</link>
		<comments>http://jeanegan.com/2009/04/19/my-top-25-played-itunes-songs/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 23:36:45 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=598</guid>
		<description><![CDATA[In an effort to get to know friends better, and for friends to get to know me better, I share my top 25 songs from iTunes (since it keeps track!) I encourage you to do the same. I&#8217;m sure I&#8217;ll experience new music! Have fun! 1. Across The Universe &#8211; The Beatles 2. Continuous KoL [...]]]></description>
			<content:encoded><![CDATA[<p>In an effort to get to know friends better, and for friends to get to know me better, I share my top 25 songs from iTunes (since it keeps track!) I encourage you to do the same. I&#8217;m sure I&#8217;ll experience new music! Have fun!<span id="more-598"></span></p>
<p>1.<strong> Across The Universe</strong> &#8211; The Beatles<br />
2.<strong> </strong><strong>Continuous KoL</strong> &#8211; (Radio)<br />
3.<strong> </strong><strong>Décollage</strong> &#8211; Les Balayeurs Du Désert<br />
4.<strong> </strong><strong>Within You Without You</strong> &#8211; The Beatles<br />
5.<strong> </strong><strong>Knight of the Woeful Countenance</strong> &#8211; Man of La Mancha (Pladido Domingo) Soundtrack<br />
6.<strong> </strong><strong>Universal Traveler</strong> &#8211; Air<br />
7.<strong> </strong><strong>Coconut Woman</strong> &#8211; Harry Belafonte<br />
8.<strong> </strong><strong>Alpha Beta Gaga</strong> &#8211; Air<br />
9.<strong> </strong><strong>Dreams</strong> &#8211; Cranberries<br />
10.<strong> </strong><strong>Swami-Plus Strings &#8211; </strong>The Monkees<br />
11.<strong> </strong><strong>I</strong><strong>t&#8217;s All The Same</strong> &#8211; Man of La Mancha (Pladido Domingo) Soundtrack<br />
12.<strong> </strong><strong>Baby Love Child</strong> &#8211; Pizzicato Five<br />
13.<strong> </strong><strong>Outside Violin Solo</strong> &#8211; Aphex Twin<br />
14.<strong> </strong><strong>Rainbow Connection</strong> &#8211; Kermit<br />
15.<strong> </strong><strong>Love You Madly</strong> &#8211; Cake<br />
16.<strong> </strong><strong>My Eyes</strong> &#8211; Laurie Anderson<br />
17.<strong> </strong><strong>True Affection</strong> &#8211; The Blow<br />
18.<strong> </strong><strong>Land Down Under Remix &#8211; M</strong>en At Work<br />
19.<strong> </strong><strong>Big Belly Butterflies</strong> &#8211; Bel Canto<br />
20.<strong> </strong><strong>Black Steel</strong> &#8211; Tricky<br />
21.<strong> </strong><strong>Be Still thy Soul</strong> &#8211; Anael<br />
22.<strong> </strong><strong>Dissapointed</strong> &#8211; Morrissey<br />
23.<strong> </strong><strong>Mama Look A Boo Boo</strong> &#8211; Harry Belafonte<br />
24.<strong> </strong><strong>Shadow Stabbing</strong> &#8211; Cake<br />
25.<strong> </strong><strong>Golden Slumbers / Carry That Weight /The End</strong> &#8211; Paul McCartney</p>
<div class='wp_likes' id='wp_likes_post-598'><a class='like' href="javascript:wp_likes.like(598);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(598);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2009/04/19/my-top-25-played-itunes-songs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snowy</title>
		<link>http://jeanegan.com/2008/09/18/snowy/</link>
		<comments>http://jeanegan.com/2008/09/18/snowy/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 14:41:39 +0000</pubDate>
		<dc:creator>Jean</dc:creator>
				<category><![CDATA[Metaphysical]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://jeanegan.com/?p=301</guid>
		<description><![CDATA[I wrote this to a friend, but thought I should post it for other friends as well. This is so hard for me to say, but our cat, Snowy died this morning just after 3 am. We  found her in the back yard close to the shed, lying on the ground. Her pupils were dilated, [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote this to a friend, but thought I should post it for other friends as well.</p>
<p>This is so hard for me to say, but our cat, Snowy died this morning just after 3 am.</p>
<p>We  found her in the back yard close to the shed, lying on the ground. Her pupils were dilated, and her hind quarters were cold. Her front paws were getting cold. She was still breathing, but barely. As we spoke, she responded by moving her front paws a bit.<span id="more-301"></span></p>
<p>Feeling that death was immanent, I expressed my love for her and called her my term of endearment &#8220;My little pussycat&#8221; &#8211; she blinked slowly, as if to respond that she understood, felt comfort and appreciated the statement. Other than that and one other blink when Jim was caring for her, she was completely unresponsive in her senses.</p>
<p>My hubby and I sat with her for a while outside on our lawn chairs but it was becoming quite chilly. I called my aunt, my mom and the vets (left a message with one) and got a 24hr hotline with the other and they suggested that we wrap her in a blanket and and the hot water bottle and just try to keep her comfortable as she dies. We decided to go into the breeze way to help make her comfortable for her passing and allow us to stay with her.</p>
<p>On and off, I spoke to her and told her that I love her and that it&#8217;s ok for her to die, and pass on. I told her she has been such a wonderful kitty and that we appreciated that we could share in her life. I said that her body served her well up to this point but that she didn&#8217;t need this crummy body any more and that her spirit was free to go. Hubby was also was able to express his love for her. I meditated and directed her to the light and hoped that she knew it would be alright for her to go. Any time I drew energy from above and handed it to her as courage and strength to go to the light, her body contorted and I hoped that it was a good sign. I&#8217;m not experienced with this and just wanted to help her along and hope that what energy I passed to her didn&#8217;t prolong the process for her, but helped her with her transition.</p>
<p>She took her last breath right after I told her that I would leave her body alone for a long while after she passed to allow her spirit to separate from her body and that it would be ok, we wouldn&#8217;t do anything with her body until we were certain that she was away from it.</p>
<p>After she died, Jim and I slept in the breeze way with her body and allowed time for her spirit to make the transition.</p>
<p>This morning at 6, we buried her in the back corner of the yard, near the shed that she enjoyed hanging out around. We marked the site with a large rock and a smaller white rock we found close to the site.</p>
<p>It&#8217;s crazy how attached we become to these wonderful little loving creatures.</p>
<p>Take care and thanks for reading.</p>
<div class='wp_likes' id='wp_likes_post-301'><a class='like' href="javascript:wp_likes.like(301);" title='' ><img src="http://jeanegan.com/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(301);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jeanegan.com/2008/09/18/snowy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
