<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>WebTide</title>
	<atom:link href="http://webtide.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://webtide.wordpress.com</link>
	<description>The official blog of The University of Alabama web design community.</description>
	<lastBuildDate>Tue, 04 Dec 2012 15:12:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='webtide.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>WebTide</title>
		<link>http://webtide.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://webtide.wordpress.com/osd.xml" title="WebTide" />
	<atom:link rel='hub' href='http://webtide.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Visual Form Builder</title>
		<link>http://webtide.wordpress.com/2011/08/25/visual-form-builder/</link>
		<comments>http://webtide.wordpress.com/2011/08/25/visual-form-builder/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 15:14:07 +0000</pubDate>
		<dc:creator>Matthew Muro</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=1144</guid>
		<description><![CDATA[Those of you familiar with the UA WordPress Theme have probably seen the contact form shortcode. It&#8217;s a basic contact form with a couple of customizations.  For most people looking to add a contact form to a web page, the &#8230; <a href="http://webtide.wordpress.com/2011/08/25/visual-form-builder/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1144&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://webtide.files.wordpress.com/2011/08/screenshot-1.png"><img class="aligncenter size-full wp-image-1146" title="screenshot-1" src="http://webtide.files.wordpress.com/2011/08/screenshot-1.png?w=584" alt=""   /></a>Those of you familiar with the UA WordPress Theme have probably seen the <a href="http://webtide.wordpress.com/2010/08/13/ua-wordpress-theme-contact-form-shortcode/">contact form shortcode</a>. It&#8217;s a basic contact form with a couple of customizations.  For most people looking to add a contact form to a web page, the shortcode does the job.  However, when you want a custom form things can get more complicated.  I have recently built a new plugin that I hope will make things a bit simpler.</p>
<p><a href="http://wordpress.org/extend/plugins/visual-form-builder/">Visual Form Builder</a> is a free WordPress plugin that lets you dynamically build forms using a simple interface. Every form includes jQuery validation and a basic logic verification system as well as entry tracking.</p>
<p><strong>A simple script</strong></p>
<p>This plugin started out not as a plugin, but as a relatively simple PHP script that programmatically output the appropriate form code based on what fields and requirements I needed.  This first attempt wasn&#8217;t a failure by any means, but it did use some convoluted methods to construct the form.  If I had stopped here, I could have used the tool for a while and been happy with it because it was significantly faster than manually building a form.</p>
<p>The problem with this script was that it was something that really only I would be able to use and my goal was to create something that my co-workers at Web Communications and perhaps others within the UA web community could use.</p>
<p>With that in mind, I decided to turn the script into a form builder plugin for WordPress.</p>
<p><strong>Building a form builder</strong></p>
<p>Having released <a title="Restrict Categories" href="http://wordpress.org/extend/plugins/restrict-categories/">several</a> <a title="Multi-Column Taxonomy List" href="http://wordpress.org/extend/plugins/multi-column-taxonomy-list/">other</a> <a title="Image Caption Links" href="http://wordpress.org/extend/plugins/image-caption-links/">plugins</a> in the last year, getting this one started was fairly straightforward.  Before I began building, I mapped out the requirements I hoped to meet:</p>
<ol>
<li>Use WordPress HTML/CSS for the admin panel to reduce design maintenance and present familiarity to the user.</li>
<li>Make it easy to add form fields.</li>
<li>Include support for fieldsets.</li>
<li>Order form fields using a drag-and-drop interface.</li>
<li>Use <a href="http://docs.jquery.com/Plugins/Validation">jQuery Form Validation</a> to validate clientside.</li>
<li><em>Don&#8217;t</em> use a CAPTCHA system for anit-SPAM verification.</li>
<li>Log all form submissions in the database.</li>
<li>Export entries to a CSV.</li>
</ol>
<p>With these features in mind, I began coding.  Not all of these features made it into the first version, but they are there now.</p>
<p>Certainly there are some other form builder plugins available for WordPress, including some commercial tools that offer a wide range of features.  The idea behind Visual Form Builder was to provide a quality, <em>free</em> alternative to the UA web community (or anyone else who finds it useful).</p>
<p><strong>How do I use Visual Form Builder?</strong></p>
<p>I&#8217;ve tried to make it as easy as possible to add and customize a form and have even added some help text to the contextual help tab at the top of the plugin page.  Here&#8217;s a quick primer on creating your first form.</p>
<ol>
<li>After downloading, installing, and activating the plugin, go to Settings→Visual Form Builder.</li>
<li>Click on the + tab, give your form a name and click Create Form.</li>
<li>Click the form fields from the box on the left called Form Items to add it to your form.</li>
<li>Edit the information for each form field by clicking on the down arrow.</li>
<li>Drag and drop the elements to put them in order.</li>
<li>Customize the Email Details and Confirmation</li>
<li>Click Save Form to save your changes.</li>
<li>Copy the shortcode from the box on the left called Form Output</li>
<li>Paste into any Post or Page and save your changes</li>
</ol>
<p>If you have other questions, you can <a href="http://wordpress.org/extend/plugins/visual-form-builder/faq/">check the FAQ</a> or leave me a comment.</p>
<p><a href="http://wordpress.org/extend/plugins/visual-form-builder/">Download it now</a> and let me know if you have any suggestions, bug reports, or feedback.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/1144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/1144/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1144&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/08/25/visual-form-builder/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/29653b4cd79fd57441baa9eac32010f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mmuro</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2011/08/screenshot-1.png" medium="image">
			<media:title type="html">screenshot-1</media:title>
		</media:content>
	</item>
		<item>
		<title>WordPress Plugin SVN Tip: How to Resolve the &#8216;Last Updated&#8217; Issue</title>
		<link>http://webtide.wordpress.com/2011/04/18/wordpress-plugin-svn-tip-how-to-resolve-the-last-updated-issue/</link>
		<comments>http://webtide.wordpress.com/2011/04/18/wordpress-plugin-svn-tip-how-to-resolve-the-last-updated-issue/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 03:47:04 +0000</pubDate>
		<dc:creator>Matthew Muro</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[restrict categories]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">https://webtide.wordpress.com/?p=1127</guid>
		<description><![CDATA[One of the recurring issues that seems to pop up for WordPress plugin developers as of late is the &#8220;Last Updated&#8221; problem. For those of you that don&#8217;t release your plugins on the WordPress plugin repository or haven&#8217;t noticed when &#8230; <a href="http://webtide.wordpress.com/2011/04/18/wordpress-plugin-svn-tip-how-to-resolve-the-last-updated-issue/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1127&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://webtide.files.wordpress.com/2011/04/wordpress-e280ba-restrict-categories-c2ab-wordpress-plugins-2011-04-19-09-30-02.png"><img class="alignright size-full wp-image-1129" title="WordPress › Restrict Categories « WordPress Plugins 2011-04-19 09-30-02" src="http://webtide.files.wordpress.com/2011/04/wordpress-e280ba-restrict-categories-c2ab-wordpress-plugins-2011-04-19-09-30-02.png?w=584" alt=""   /></a>One of the recurring issues that seems to pop up for WordPress plugin developers as of late is the &#8220;Last Updated&#8221; problem. For those of you that don&#8217;t release your plugins on the WordPress plugin repository or haven&#8217;t noticed when downloading a plugin, there is a bit of information right below the download button called &#8220;Last Updated.&#8221;</p>
<p>Essentially, this date is an indicator of the last time a version of the plugin was released. A big issue for a lot of developers lately is when releasing a new version of their plugin, this date will not update and continue to use the previous version&#8217;s date.</p>
<p>Now, this isn&#8217;t really a huge deal because users who have a plugin installed will be notified when there is a new version through their site&#8217;s admin panel. However, what most plugin authors want, though, is to be listed in the <a href="http://wordpress.org/extend/plugins/browse/updated/">Recently Updated</a> section on WordPress.org. This equals exposure, which equals downloads and more active users.</p>
<p>To solve this problem is pretty simple, but something that isn&#8217;t clear because of the lack of communication from whomever controls the Plugin Repository.</p>
<p>With each plugin SVN, you should have three folders: <em>branches</em>, <em>tags</em>, and <em>trunk</em>. Typically, when uploading a new version of your plugin you will place everything into the <em>trunk</em> folder. In addition, you will also copy these files into a new folder under <em>tags</em> with the appropriate version number. The problem lies in how you actually commit your updates.</p>
<h3><strong>The Wrong Way</strong></h3>
<ol>
<li>Update your plugin and commit the changes to <em>trunk</em></li>
<li>Copy these files into a new folder under <em>tags</em> and commit</li>
</ol>
<p>The reason this is wrong is because the &#8220;Last Updated&#8221; date reflects whatever is in the <em>tags</em> folder. If the new version&#8217;s <em>tags</em> folder does not exist when you update your <em>trunk</em>, it will not be able to find the most recent date. I can&#8217;t be sure on this part and it&#8217;s only a guess, but I think committing your <em>tags</em> folder at this point causes a bug in the SVN to never look for it.</p>
<h3><strong>The Right Way</strong></h3>
<ol>
<li>Update your plugin in the <em>trunk</em> folder</li>
<li>Copy these files into a new folder under <em>tags</em></li>
<li>Commit <strong>ALL</strong> changes (<em>trunk</em> and <em>tags</em>) at once</li>
</ol>
<p>This kind of commit should indicate to the SVN that there is a new version.  From here, it will build the download, update the information (including the Last Updated date), and populate the <a href="http://wordpress.org/extend/plugins/browse/updated/">Recently Updated</a> section.</p>
<p>If there&#8217;s some SVN guru out there that can explain to me why it needs to happen this way, please do. All I know is that this needs to be the process a plugin developer must take if they want their work to be hosted on the Plugin Directory.</p>
<p><strong>UPDATE</strong>: <a href="http://wordpress.stackexchange.com/questions/18235/plugin-directory-last-updated-not-changed-after-initial-commit/19014#19014">Otto officially responds on WordPress StackExchange with an answer</a>.  Basically, there is a problem and he&#8217;s been trying to fix it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/1127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/1127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1127&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/04/18/wordpress-plugin-svn-tip-how-to-resolve-the-last-updated-issue/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/29653b4cd79fd57441baa9eac32010f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mmuro</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2011/04/wordpress-e280ba-restrict-categories-c2ab-wordpress-plugins-2011-04-19-09-30-02.png" medium="image">
			<media:title type="html">WordPress › Restrict Categories « WordPress Plugins 2011-04-19 09-30-02</media:title>
		</media:content>
	</item>
		<item>
		<title>Programming 101: How to Create Groupings</title>
		<link>http://webtide.wordpress.com/2011/04/05/programming-101-how-to-create-groupings/</link>
		<comments>http://webtide.wordpress.com/2011/04/05/programming-101-how-to-create-groupings/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 20:58:24 +0000</pubDate>
		<dc:creator>Matthew Muro</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=1111</guid>
		<description><![CDATA[If you are new to programming, there may be certain solutions that escape you completely, depending on the problem you are trying to solve.  Sometimes it&#8217;s as simple as not knowing of a function or syntax.  Other times, it&#8217;s a &#8230; <a href="http://webtide.wordpress.com/2011/04/05/programming-101-how-to-create-groupings/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1111&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>If you are new to programming, there may be certain solutions that escape you completely, depending on the problem you are trying to solve.  Sometimes it&#8217;s as simple as not knowing of a function or syntax.  Other times, it&#8217;s a little more complex because it involves logic.</p>
<h2>What is Programming Logic?</h2>
<p>Before we dive into code, I want to briefly explain what I mean when I say <em>logic</em>.  <strong>Programming is essentially using code to creatively solve a problem</strong>.  Throughout your code could be a<em> logical set of instructions</em> that determines when to execute certain pieces.  This is conditional logic.</p>
<p>Many times, the logic to solve a problem is pretty simple:</p>
<p><pre class="brush: php;">
&lt;?php 
if ( x == 2 ){
    echo 'This is the second record';  
}
?&gt;
</pre></p>
<p>Using this kind of conditional logic is essential when you are learning how to program and, over time, will allow you to perform more complex statements.</p>
<h2>What is a Grouping?</h2>
<p>A grouping is where you sort a set of data into logical sections.  A great example of this is when you see an events calendar that is sorted by date.  There is a single heading for the date and each record that matches that date is listed underneath.</p>
<blockquote><p><strong>December 10, 2011</strong></p>
<ul>
<li>12/10/2011 10:00 am &#8211; Mary&#8217;s Recital</li>
<li>12/10/2011 12:00 pm &#8211; Bob&#8217;s Cookout</li>
</ul>
<p><strong>December 11, 2011</strong></p>
<ul>
<li>12/11/2011 2:00 pm &#8211; Computer Science Meetup</li>
<li>12/11/2011 5:00 pm &#8211; Art Festival</li>
</ul>
</blockquote>
<p>This sort of breakdown continues on until you get to the end of your data.</p>
<h2>How do I make a Grouping automatically?</h2>
<p>The above list is easy to create manually, but what do you do when you have hundreds or even thousands of events in a database?  Of course, that&#8217;s where programming is going to help us.</p>
<p>Here&#8217;s our <a href="http://en.wikipedia.org/wiki/Pseudo-code">pseudo code</a>:</p>
<ul>
<li>Query our events database &#8211; get all records for the current week</li>
<li>Loop through each record and print our information out to the screen</li>
<li>If this event&#8217;s date is not the same as the previous event&#8217;s date, print out our new date heading and continue</li>
</ul>
<p>Here&#8217;s our actual code:</p>
<p><pre class="brush: php;">&lt;!--?php&lt;br /--&gt;/* Setup our query - assuming we've already connected to our database */
$query = 'SELECT Title, StartDate, StartTime
FROM events
WHERE WEEK(StartDate) = &quot;12-11-2011&quot;
ORDER BY StartDate ASC, StartTime ASC';

$result = mysql_query( $query );

echo '
&lt;ul&gt;';

/* Loop through our events data */
while ( $row = mysql_fetch_array( $result ) ) {

    /* Assign each row to a variable */
    $title = $row['Title'];
    $date = $row['StartDate'];
    $time = $row['StartTime'];

    /* Handles the date grouping */
    if ( $last != $date ) {
        echo '
	&lt;li class=&quot;date_heading&quot;&gt;' . date( 'D M d, Y', strtotime( $date ) ) . '&lt;/li&gt;
';

        $last = $date;
    }

    /* Output the event name and time below */
    echo '
	&lt;li&gt;' . $title . '-' . $time . '&lt;/li&gt;
';
}

echo ';
?&gt;</pre></ul>
</pre>
<p>As you can see, with very little code, we can group our data.  What's even better is that the method can apply to any kind of grouping you need, not just dates!  For example, you could have a directory of people and want to group alphabetically by last name (<code>if ( $last != $last_name )</code>).  Or, you could have a blog archive page with categories grouped by name and the posts underneath (<code>if ( $last != $category )</code>).  There are tons of possibilities.</p>
<p>If you plan to work with a lot of data that needs to be grouped into common headers, save this little snippet of code because it could come in handy.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/1111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/1111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1111&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/04/05/programming-101-how-to-create-groupings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/29653b4cd79fd57441baa9eac32010f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mmuro</media:title>
		</media:content>
	</item>
		<item>
		<title>Web For Dummies Discussion Thread</title>
		<link>http://webtide.wordpress.com/2011/02/22/web-for-dummies-discussion-thread/</link>
		<comments>http://webtide.wordpress.com/2011/02/22/web-for-dummies-discussion-thread/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 15:40:22 +0000</pubDate>
		<dc:creator>Andy Rainey</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Questions]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=1091</guid>
		<description><![CDATA[For those who attended Web For Dummies today, we want to hear your feedback, questions, or ideas about what you heard today, as well as any information you might want to share that would be helpful to others. Please do &#8230; <a href="http://webtide.wordpress.com/2011/02/22/web-for-dummies-discussion-thread/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1091&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>For those who attended <a href="http://psa.ua.edu/?page_id=531">Web For Dummies</a> today, we want to hear your feedback, questions, or ideas about what you heard today, as well as any information you might want to share that would be helpful to others. Please do so in the comments section of this post below, and we&#8217;ll do our best to answer any questions you may have. Also, if this is your first visit to WebTide, please bookmark this page or <a href="http://webtide.wordpress.com/feed/">subscribe to the RSS feed</a>, and participate in UA&#8217;s web community.</p>
<p><strong>More Information:</strong></p>
<ul>
<li><strong><a href="http://psa.ua.edu/?page_id=557" target="_blank">Web For Dummies Resources</a></strong></li>
<li><a href="http://webguide.ua.edu" target="_blank">UA Web Guide</a></li>
</ul>
<p><strong>Crash Course in Web Series:</strong></p>
<ul>
<li><a href="http://webtide.wordpress.com/2011/01/27/organization-and-introduction-crash-course-in-web-part-1/" target="_blank">Organization and Introduction (CCW Part 1)</a></li>
<li><a href="http://webtide.wordpress.com/2011/02/06/html-css-ccw-part-2/" target="_blank">HTML &amp; CSS (CCW Part 2)</a></li>
<li><a href="http://webtide.wordpress.com/2011/02/11/wordpress-php-ccw-part-3-2/" target="_blank">WordPress &amp; PHP (CCW Part 3)</a></li>
<li><a href="http://webtide.wordpress.com/2011/02/21/javascript-libraries-jquery-ccw-part-4/" target="_blank">Javascript Libraries – jQuery (CCW Part 4)</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/1091/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/1091/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1091&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/02/22/web-for-dummies-discussion-thread/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b15c91ed06b0d5d065eabf510a609592?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AMR</media:title>
		</media:content>
	</item>
		<item>
		<title>JavaScript Libraries &#8211; jQuery (CCW Part 4)</title>
		<link>http://webtide.wordpress.com/2011/02/21/javascript-libraries-jquery-ccw-part-4/</link>
		<comments>http://webtide.wordpress.com/2011/02/21/javascript-libraries-jquery-ccw-part-4/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 17:36:39 +0000</pubDate>
		<dc:creator>Lisa Sandy</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=1058</guid>
		<description><![CDATA[To start off with, I wanted to title this ‘animations’, but JavaScript libraries such as jQuery can do so much more than just animation. I also did not want to get into teaching Flash. Why not Flash? Flash has been &#8230; <a href="http://webtide.wordpress.com/2011/02/21/javascript-libraries-jquery-ccw-part-4/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1058&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>To start off with, I wanted to title this ‘animations’, but JavaScript libraries such as jQuery can do so much more than just animation. I also did not want to get into teaching Flash.</p>
<h2>Why not Flash?</h2>
<p>Flash has been a big debate in the web community since its inception. Why? Because Flash is a self contained program running within a browser’s window. This sometimes causes browser crashes when something goes wrong and the browser has no way to compensate. More modern browsers have introduced isolated tabs to deal with this so that when Flash crashes, only the tab is affected.</p>
<p>Another strike against Flash, but which is not the product’s fault, is lack of support on Apple products. Mr. Jobs does not like Flash and therefore does not have support for it on his mobile OS. Thus, your iPad, iPhone, iPod, etc… does not show any Flash media.</p>
<p>So, what is Flash used for then? Flash is mainly used for streaming video, however there are people who use it to build dynamic websites. The film industry is a big user of Flash websites where they can create rich animated content. However, most websites don’t need this because people want quick information, not loading animation,  when they visit a site.</p>
<h2>So what do you use?</h2>
<p>JavaScript.</p>
<p>JavaScript, once the evil monster with a thousand difficult tentacles of coding, has now been compacted into libraries which make code quicker and easier to use. Two script libraries stand out above the others: MooTools and jQuery, with jQuery being the #1 in popularity.</p>
<p>Since jQuery is so popular, and thus has a lot of uses, that is what I’ll be focusing on in this lesson.</p>
<h2>Basic jQuery</h2>
<p>I’m not going to get too into it since it can go on forever, but I will tell you about the areas and what they do by using a handy dandy image rotator example. What the given example does is that it takes a thumbnail’s link and information and transfers it to a different key set of areas when selected- thereby changing the main image and its description.</p>
<p><strong>A few notes:</strong> Properly nesting and closing code is VERY important in jQuery. A misplaced ‘;’ will cause your entire code to fail.  For longer scripts finding a mistake is very hard, so be sure to keep notes (by commenting next to the code) on what you have changed.</p>
<p>Commenting in jQuery is easily accomplished. A comment looks like this:</p>
<p><pre class="brush: plain;">//This is a comment in jQuery</pre></p>
<p>Most code will be well documented with the above style of comments, but it is helpful to keep your own comments around to know what you’ve worked on.</p>
<h2>Let&#8217;s dissect some code</h2>
<p>It’s been my experience that when dealing with more complex codes jumping in and dissecting what the code is and what it does helps immensely with the learning process. Therefore, I’m going to throw a block of code down and then explain every single little piece of it and why it’s there and what it does.</p>
<p><pre class="brush: plain;">$(document).ready(function() {	

	$(&quot;.main_image_wordbox&quot;).show(); 
	$(&quot;.main_image_info&quot;).animate({ opacity: 0.85 }, 1 ); 

	$(&quot;.navi_1 ul li&quot;).click(function(){ 
		
		var imgAlt = $(this).find('img').attr(&quot;alt&quot;); 
		var imgTitle = $(this).find('a').attr(&quot;href&quot;); 
		var imgDesc = $(this).find('.image_info').html(); 	
				
		if ($(this).is(&quot;.active&quot;)) {  
			return false; 
		} else {
			
			$(&quot;.main_image_1 .main_image_info&quot;).animate({ opacity: 0 }, 350 , function() {
				$(&quot;.main_image_1 .main_image_info&quot;).html(imgDesc).animate({ opacity: 0.85 }, 350 );
				$(&quot;.main_image_1 img&quot;).attr({ src: imgTitle , alt: imgAlt});
			});
		}
		return false;
	});
});
</pre></p>
<p>First off:         <code>   $(document).ready(function() {     }); </code></p>
<p>This says that when the document (page) is ready (fully loaded), perform the function (actions) within the {}.  This, or a reasonable variant of it, will be on every jQuery script either in the actual plugin or within the page script.</p>
<p>Next, we specify some elements and what we’re going to do with them.</p>
<p><pre class="brush: plain;">$(&quot;.main_image_wordbox&quot;).show();

$(&quot;.main_image_info&quot;).animate({ opacity: 0.85 }, 1 );</pre></p>
<p>The $ specifies a new element in jQuery. The main_image_wordbox that I’m referencing from my CSS is now a primary element that will be acted upon.</p>
<p>The <code>.show() </code>is a jQuery action which tells the script to show the wordbox by default.  The ‘;’ closes the statement.</p>
<p>Next comes the information that is displayed within the wordbox. When the info changes, I want to animate it. Thus, I apply the <code>.animate() </code>action to the main_image_info CSS reference. Within the animate action, I set what I want to change/animate. In this case I want to change the property called ‘opacity’ to .85 so I place the properties within {} and specify the speed at which the animation will take place outside of the {} as ‘1’ so that it’s instantaneous/very fast.</p>
<p><strong>Now we come to our main action:</strong></p>
<p><pre class="brush: plain;">$(&quot;.navi_1 ul li&quot;).click(function(){         });</pre></p>
<p>When a list item is clicked within an unordered list in the CSS .navi_1 box activate the function within the {}.</p>
<p><pre class="brush: plain;">var imgAlt = $(this).find('img').attr(&quot;alt&quot;);

var imgTitle = $(this).find('a').attr(&quot;href&quot;);

var imgDesc = $(this).find('.image_info').html();</pre></p>
<p>‘var’ designates a variable which can be used over and over throughout the script. Thus, ‘imgAlt’ used further down in the script will naturally refer up to the ‘var’ and say “Oh, ‘imgAlt’ means to do this.”.</p>
<p><code>$(this)</code> refers to the code above it- in other words  <code> $(".navi_1 ul li").click</code></p>
<p>Thus, the first ‘var’ says when the li is clicked find the image within the li and get it’s attribute of alt.</p>
<p>So what it’s doing is this:  <code> &lt;li&gt;&lt;img src=”image_thumnail.jpg” alt=”A Blue Building” /&gt;&lt;/li&gt;</code></p>
<p><a href="http://webtide.files.wordpress.com/2011/02/arrow.jpg"><img src="http://webtide.files.wordpress.com/2011/02/arrow.jpg?w=584" alt="" title="arrow"   class="size-full wp-image-1073" /></a></p>
<p><strong>IE:  The first ‘var’ translates into- The variable ‘imgAlt’ is equal to ‘when the li is clicked find the attribute of “alt” within the image tag’.</strong></p>
<p>The other 2 variables operate under the same principles.</p>
<p>Now comes your ‘if/else’ statement.</p>
<p><pre class="brush: plain;">if ($(this).is(&quot;.active&quot;)) {

return false;

}</pre></p>
<p>If your li is already clicked and therefore has the class of ‘active’ then do nothing. IE: Is animation needed? No? then “return false” – do nothing. ‘else’, if it isn’t already active then do the action within the else tags. Afterwards stop by ‘return(ing) false’ as the action taken is now active.</p>
<p><pre class="brush: plain;">else {           } return false;</pre></p>
<h2>Going within the ‘else’ for the heart of your animation</h2>
<p><pre class="brush: plain;">$(&quot;.main_image_1 .main_image_info&quot;).animate({ opacity: 0 }, 350 , function(){

        $(&quot;.main_image_1 .main_image_info&quot;).html(imgDesc).animate({ opacity: 0.85   }, 350 );

	$(&quot;.main_image_1 img&quot;).attr({ src: imgTitle , alt: imgAlt});

});
</pre></p>
<p>The top tells me that when I animate the css elements I want to, by default, animate the opacity to 0 at a speed of 350. I further specify it by saying that within the animation of the objects the <code>function(){}</code> further expounds on what I specifically want done during the animation.</p>
<p>The animation function says that the animation consists of:</p>
<p>1. Replacing the .main_image_info’s html with the variable ‘imgDesc’ information and when doing so to animate the opacity to .85 at a speed of 350.</p>
<p>2. Taking the .main_image_1’s img tag and replacing the attributes of src and alt with the variables ‘imgTitle’ and ‘imgAlt’ information.</p>
<h2>Putting it all together</h2>
<p>So here’s how the script works:</p>
<p>The page loads and image rotator comes up and the text box appears. Animation instantly changes the text box to have a slightly lower opacity so you can moderately see the image behind it. It stops. Nothing happens until you click a list item (ie: thumbnail) which then takes the link location and alt on the thumbnail and shoves that information into the main image while taking the html out of the CSS class ‘image_info&#8217; and placing that into the text box which at the start of the animation had faded to zero, but now fades back to the original .85 opacity. Animation ends. New image and text are displayed in the rotator.</p>
<p><strong>Tada! You’ve just learned about a jQuery image rotator.</strong></p>
<h2>So what about all the other stuff?</h2>
<p>Yes, jQuery does a lot more than this, but most of it is easily customizable and come in the form of various plugins. The above example was to give you an insight into how jQuery basically operates/works.</p>
<p>For more information on jQuery and a list of its plugins, go to:      <a href="http://docs.jquery.com/Main_Page">http://docs.jquery.com/Main_Page</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/1058/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/1058/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1058&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/02/21/javascript-libraries-jquery-ccw-part-4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/73c8ab129a1c66994d28253ed8bf2f53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">misatakashino</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2011/02/arrow.jpg" medium="image">
			<media:title type="html">arrow</media:title>
		</media:content>
	</item>
		<item>
		<title>Learn from the pros at UA&#8217;s &#8216;Web for Dummies&#8217; class</title>
		<link>http://webtide.wordpress.com/2011/02/16/learn-from-the-pros-at-uas-web-for-dummies-class/</link>
		<comments>http://webtide.wordpress.com/2011/02/16/learn-from-the-pros-at-uas-web-for-dummies-class/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 21:12:19 +0000</pubDate>
		<dc:creator>Andy Rainey</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=1047</guid>
		<description><![CDATA[There&#8217;s still time to register for our upcoming &#8220;Web For Dummies&#8221; class, scheduled for Tuesday, February 22nd at 8:30 a.m.  Learn from a group of UA&#8217;s own web experts about how to construct, maintain, and promote a website. The class &#8230; <a href="http://webtide.wordpress.com/2011/02/16/learn-from-the-pros-at-uas-web-for-dummies-class/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1047&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://psa.ua.edu/?page_id=531"><img class="alignnone size-full wp-image-1052" title="webfordummiesposter2-top" src="http://webtide.files.wordpress.com/2011/02/webfordummiesposter2-top.jpg?w=584" alt=""   /></a></p>
<p>There&#8217;s still time to register for our upcoming &#8220;Web For Dummies&#8221; class, scheduled for Tuesday, February 22nd at 8:30 a.m.  Learn from a group of UA&#8217;s own web experts about how to construct, maintain, and promote a website. The class will cover how to set up your site with OIT, planning your site, customizing UA&#8217;s HTML Templates, working with UA&#8217;s WordPress Theme, and using social media to broadcast information. During and after the lecture Q&amp;A sessions will be held where you will have the opportunity to ask a good selection of UA&#8217;s web community questions.</p>
<p>The class will be held in the Capstone College of Nursing Building, room 1012 on February 22nd from 8:30am to 1:00pm with individual sessions starting at different times during that period. Registration is required for the class because of limited seating. For more information on times, sessions, and registration, please refer to the PSA website at <a href="http://psa.ua.edu/?page_id=531">http://psa.ua.edu/?page_id=531</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/1047/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1047&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/02/16/learn-from-the-pros-at-uas-web-for-dummies-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b15c91ed06b0d5d065eabf510a609592?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AMR</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2011/02/webfordummiesposter2-top.jpg" medium="image">
			<media:title type="html">webfordummiesposter2-top</media:title>
		</media:content>
	</item>
		<item>
		<title>WordPress &amp; PHP (CCW Part 3)</title>
		<link>http://webtide.wordpress.com/2011/02/11/wordpress-php-ccw-part-3-2/</link>
		<comments>http://webtide.wordpress.com/2011/02/11/wordpress-php-ccw-part-3-2/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 19:41:46 +0000</pubDate>
		<dc:creator>Lisa Sandy</dc:creator>
				<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=1016</guid>
		<description><![CDATA[Working with UA’s WordPress Theme UA’s WordPress theme makes use of an options panel which is located inside the WordPress dashboard. This allows for a more hands off the code type of customization. There are play by play instructions on &#8230; <a href="http://webtide.wordpress.com/2011/02/11/wordpress-php-ccw-part-3-2/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1016&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h2>Working with UA’s WordPress Theme</h2>
<p>UA’s WordPress theme makes use of an options panel which is located inside the WordPress dashboard. This allows for a more hands off the code type of customization. There are play by play instructions on how to use the theme located on UA’s Web Guide, <a href="http://webguide.ua.edu/wordpress.html">http://webguide.ua.edu/wordpress.html</a>, so we won’t be covering that.</p>
<p>What we <em>will </em>be discussing is what a WordPress Theme is composed of and how the system works to display information.</p>
<h2>WordPress file organization/main editable pages</h2>
<p>When you’re looking through WordPress files, you might want to know which are relatively safe to bring up and edit code wise.</p>
<p>WordPress takes a theme and chops it up so that it can mix and match- separating elements in a way that allows all pages to make use of common parts. (Think of it like a Mr. Potato Head.)</p>
<p>For example: Your header should be the same on every page- regardless of the content. Thus, WordPress takes the header and creates a file called header.php which should contain all your header elements. When you call up a page in your browser, the PHP in the content part of the page calls ‘get_header’ and so the header appears at the top of your page.</p>
<p><strong>Main structural elements:</strong></p>
<p><strong>index.php</strong>                your main ‘blog’ page and   default home</p>
<p><strong>statichome.php</strong>     a homepage that   does not have blog style content rotating on it <em>(optional- you make it)</em></p>
<p><strong>single.php</strong>                the base page for all your   blog pages or ‘posts’<br />
<strong><br />
page.php</strong>                   the base page for all   your ‘pages’</p>
<p><strong>sidebar.php</strong>            where your sidebar is located</p>
<p><strong>header.php</strong>             where your primary   horizontal navigation is located</p>
<p><strong>footer.php</strong>               where your footer is   located</p>
<p>The footer, header, and sidebar will generally have your links and navigational elements. The index, statichome, single, and page will have your content.  </p>
<p><strong>Content structure/hierarchy is shown below.</strong></p>
<p><a href="http://webtide.files.wordpress.com/2011/02/part1.jpg"><img class="aligncenter size-full wp-image-1017" title="part1" src="http://webtide.files.wordpress.com/2011/02/part1.jpg?w=584" alt=""   /></a></p>
<p><strong>Structure of a completely built WordPress page is shown below.</strong></p>
<p><a href="http://webtide.files.wordpress.com/2011/02/part21.jpg"><img class="alignleft size-full wp-image-1020" title="part2" src="http://webtide.files.wordpress.com/2011/02/part21.jpg?w=584" alt=""   /></a>The<strong> header</strong> will contain all your CSS, just like normal as well as your horizontal navigation.</p>
<p>The <strong>content</strong> page will have php linking it to the header, sidebar, and footer. The content page shown here happens to be the blog index page.</p>
<p>The <strong>sidebar </strong>contains your secondary links and can be placed within your content page where ever you want it to appear.</p>
<p>The <strong>footer </strong>will contain all your animation scripts such as JavaScript and its libraries.</p>
<h2>PHP in WordPress</h2>
<p>This is not a programming course, so we’re not going to dive into the proverbial PHP pool. However, that being said, I do want to give you a few helpful scripts and explain what they do. Why? Well, if you choose to have a ‘statichome.php’ that will do some things in connection with WordPress’ database- well, it just won’t fly the HTML way.</p>
<p>This is where PHP template tags come in. For a complete list, please refer to the WordPress Codex: <a href="http://codex.wordpress.org/Template_Tags">http://codex.wordpress.org/Template_Tags</a></p>
<p>Template tags are used within your blog&#8217;s .php template pages to display information dynamically or otherwise customize your site. What most tags will do is pull information out of the database. Other tags arrange structure- such as the “get_header” or “get_footer” tags that attach those elements to a page.php or single.php.</p>
<h3>Referencing</h3>
<p>WordPress has its own database for managing content and information. In order to access the information, a PHP script is needed to make the browser load the info from the database.</p>
<p>In order to reference things housed in the database without knowing the entire location of the object, we use:<code>&lt;?php bloginfo(); ?&gt;</code></p>
<p>This PHP gets information from the WordPress database.</p>
<p>A practical example and most likely the only time you’ll really use this is for images:</p>
<p><pre class="brush: plain;">&lt;img src=&quot;&lt;?php bloginfo(&quot;template_url&quot;); ?&gt;/images/name.jpg&quot; /&gt;</pre></p>
<h2>Elements you might like to customize display on</h2>
<p>Some elements you might want to customize display on would be the date and time.</p>
<p><pre class="brush: plain;">&lt;?php the_date (); ?&gt;                             &lt;?php the_time(); ?&gt;</pre></p>
<p>You might want something short like “Thu, 21 Dec 2034” or a little longer as in “Thursday 21, December 2034”. So where are the above two examples used? They can be used anywhere- but mostly you’ll see them as ‘date posted’ in blog posts or news releases.</p>
<p><strong>How to use:</strong></p>
<p><code>&lt;?php   the_date (‘m-d-Y‘); ?&gt;</code>          displays:    month-day-year   ex:    08-03-2034</p>
<p><code>&lt;?php   the_date (‘M  d, Y‘); ?&gt;</code>     displays:    month day, year   ex:    Aug 03, 2034</p>
<p><code>&lt;?php   the_date (‘F j, Y‘); ?&gt;</code>       displays:    month day,   year   ex:  August    3, 2034</p>
<p><code>&lt;?php   the_time(‘D, g:i a’);  ?&gt;</code>    displays:    day, hour:minutes am/pm  ex: Tue, 9:45 am</p>
<p><code>&lt;?php   the_time(‘l, G:i’);  ?&gt;</code>        displays:    day, hour:minutes  ex: Tuesday, 17:45</p>
<p>For more information on formatting date and time, see: <a href="http://codex.wordpress.org/Formatting_Date_and_Time">http://codex.wordpress.org/Formatting_Date_and_Time</a></p>
<h1>Within WordPress’ Control Panel</h1>
<p>Most organizational customization can be easily achieved within the control panel. One of the major adjustments you’ll make in the control panel is deciding your site’s style.</p>
<h2>Site Styles</h2>
<p>There are 3 kinds of website homepages available: Blog Style, Static Homepage, or a combination of the two.</p>
<p><strong>Blog Style</strong><br />
By default, WordPress will display the homepage of your website as a blog. For many themes the default will be to use a blog-style homepage.</p>
<p><strong>Static Homepage</strong><br />
If you would like to use a static homepage to give your website a traditional website feel, there are several steps you must take:</p>
<ol>
<li>Login      to your WordPress account and create a new page called &#8216;statichome&#8217;. Only      fill in the title box. Leave the rest of the page blank.</li>
<li>To the      right is a section called &#8216;Attributes&#8217;. Under &#8216;Template&#8217; select &#8216;Static      Home Page&#8217; and publish the page.</li>
<li>Make a      new Page called &#8216;blog&#8217; and publish. (Once again, only fill in the title      box, and this time do not make any changes in the &#8216;Attributes&#8217; section.)</li>
<li>Under      &#8216;Settings&#8217; on the main left toolbar, select &#8216;Reading&#8217;.</li>
<li>Select      &#8216;static page&#8217; and set the front page as &#8216;statichome&#8217; and the posts page as      &#8216;blog&#8217;. Then save the changes.</li>
</ol>
<p>Now when you visit the actual site, your static homepage will show up as the index instead of the blog page.</p>
<p><strong>Static Homepage with Blog Page</strong><br />
If you decide to use a static homepage, but you still want to have a blog on your site elsewhere, all you need to do is include an absolute link to your blog within your main or side navigation. You can find this link by going to the &#8216;blog&#8217; page that you created above.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/1016/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/1016/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=1016&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/02/11/wordpress-php-ccw-part-3-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/73c8ab129a1c66994d28253ed8bf2f53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">misatakashino</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2011/02/part1.jpg" medium="image">
			<media:title type="html">part1</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2011/02/part21.jpg" medium="image">
			<media:title type="html">part2</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML &amp; CSS (CCW Part 2)</title>
		<link>http://webtide.wordpress.com/2011/02/06/html-css-ccw-part-2/</link>
		<comments>http://webtide.wordpress.com/2011/02/06/html-css-ccw-part-2/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 22:57:17 +0000</pubDate>
		<dc:creator>Lisa Sandy</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=966</guid>
		<description><![CDATA[After you’ve figured out navigation, layout, and sent out requests for content, it’s time to start building your site. This lesson deals with basic HTML and CSS along with best practices using for both. There are many web editors out &#8230; <a href="http://webtide.wordpress.com/2011/02/06/html-css-ccw-part-2/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=966&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After you’ve figured out navigation, layout, and sent out requests for content, it’s time to start building your site. This lesson deals with basic HTML and CSS along with best practices using for both.</p>
<p>There are many web editors out there, but for this lesson I’ll be using Dreamweaver’s basic starter page for my example.</p>
<h2>Starting on the build</h2>
<p>So, let’s have a look at what a blank page looks like in code. A basic Dreamweaver HTML page is shown below:</p>
<p><pre class="brush: plain;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Document Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;  </pre></p>
<p>There are six parts here that make up a solid base for your page. Your Doctype, html  tags, head tags, meta data, the title tags, and last the body tags. All are part of the HTML code.</p>
<h2>HTML (HyperText Markup Language)</h2>
<p>Your HTML is the skeleton for your CSS. It supports the body of your webpage while CSS provides the muscles and skin. Therefore, if your HTML is incorrect, it doesn’t matter if the CSS is perfect, your website will fail.</p>
<p>First off, let’s talk about HTML and XHTML (Extensible HyperText Markup Language). HTML is mainly comprised of tags like the example above. XHTML is not very different from HTML- except that it’s stricter which allows browsers to process the code faster and eliminate errors caused by incorrect markup.</p>
<p>For example, <code>&lt;img src=”example.jpg”&gt;</code> would not display in XHTML because the ‘img’ tag is not closed. To display correctly, it would need to look like this:<code>&lt;img src=”example.jpg” /&gt;</code></p>
<p>Yes, the ‘/’ needs to be at the end of every tag to close it in XHTML.<br />
HTML is not so picky and will take either<code> &lt;img src=”example.jpg”&gt;</code> or <code>&lt;img src=”example.jpg” /&gt;</code>.</p>
<p>Generally, it is good to use HTML for your doctype, but practice XHTML within the HTML. Why? <strong>Because it’s better for the browser</strong>.</p>
<h3>XHTML within HTML</h3>
<p>By following all the XHTML rules you help the browser load pages faster and it’s less confusing to search through. That’s where XHTML is a plus- however, you may not know all the rules of XHTML, or you might miss a rule by accident, rendering your whole page useless until you find the problem. HTML doesn’t care about little mistakes, so by using XHTML style in and HTML page, you cover accidental code flubs so that your page will still work when you open it.</p>
<p>Some major differences in XHTML and HTML</p>
<p><strong>HTML</strong><br />
<pre class="brush: plain;">&lt;br&gt;      &lt;hr&gt;       &lt;img src=&quot;example.gif&quot;&gt;
&lt;P&gt;Something&lt;/P&gt;
</pre><br />
<strong>XHTML</strong><br />
<pre class="brush: plain;">&lt;br /&gt;      &lt;hr /&gt;      &lt;img src=&quot;example.gif&quot; /&gt;
&lt;p&gt;Something&lt;/p&gt;</pre></p>
<p>For more on XHTML rules:           <a href="http://www.w3schools.com/xhtml/xhtml_html.asp">http://www.w3schools.com/xhtml/xhtml_html.asp</a></p>
<h2>HTML Basics</h2>
<p><em>NOTE: I’ll be writing in XHTML, but I use it within an HTML framework. Keep this in mind.</em></p>
<h3>What is a “doctype” and why is it on my page?</h3>
<p>First off, the doctype declaration should appear before any other markup on your page. Why? Because it is an instruction to the web browser about what version of the markup language (eg: HTML, XHTML and their variants) the page is written in.</p>
<p>For more on this see:            <a href="http://www.w3schools.com/tags/tag_DOCTYPE.asp">http://www.w3schools.com/tags/tag_DOCTYPE.asp</a></p>
<h3>Placement</h3>
<p>The placement of code in the HTML specifies what elements are within elements and their hierarchy to other elements. For example, let’s say I wanted a box within a header. I would have:</p>
<p><pre class="brush: plain;">&lt;div id=”header”&gt;&lt;div class=”box”&gt;Box Content&lt;/div&gt;&lt;/div&gt;</pre></p>
<p>The ‘div’ tag calls the CSS to place the header on the page and insert the box into the header. It is very important to close your divs as it tells the CSS styling to stop past the &#8216;&lt;/div&gt;&#8217; point. It is also important to nest your tags to avoid conflicting style properties or code errors. To style the elements for each div tag, you must go into the CSS and not the HTML. Remember that most HTML is strictly for organizing.</p>
<h3>&lt;head&gt;…&lt;/head&gt;</h3>
<p>Your ‘head’ tags should contain all information a browser needs to render the content in the ‘body’ tags as well as information pertinent to search engines and browser needs for your page.</p>
<p>Tags used in the ‘head’ are:</p>
<p><code>&lt;title&gt; ... &lt;/title&gt;</code>      displays title of page for the browser   to put on the tab or on the window’s title bar<br />
<code>&lt;meta   /&gt; </code> gives data for search engines to   organize your page by/tells what your page is about<br />
<code>&lt;base   /&gt;</code>   specifies a default address or   a default target for all links on a page<br />
<code>&lt;link   /&gt;  </code>gets a resource reference such   as a CSS style sheet</p>
<p>An example for calling a style sheet is below.</p>
<p><pre class="brush: plain;">&lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;</pre></p>
<p>So, what’s going on here?</p>
<p>Well, ‘rel’ says that the relationship between the current document and the linked document is that it’s a style sheet, ‘href’ calls the actual style sheet from its location,  ‘type’ tells us that the style sheet  is formatted in text/css, and ‘media’ tells us that it’s for a computer screen.</p>
<p>If you wanted to make this style sheet for a phone, you would change ‘media=”screen”’ to ‘media=”mobile”’. ‘media’ allows you to have multiple style sheets on a page that target different devices. (ex: style sheets for mobile, print, and screen)</p>
<h3>&lt;body&gt;…&lt;/body&gt;</h3>
<p>Your ‘body’ tags contain the page elements that will show up in the browser window. Organization of these elements is key. <strong>Keep your tags correctly nested</strong>. I can not stress this enough. Keeping tags well organized in your code will help in a lot of ways.</p>
<p>Some commonly used tags in the ‘body’ are:</p>
<p><code>&lt;h1&gt; ... &lt;/h1&gt;  </code>creates a heading with h1-h6, h1 being the   largest and h6 being the smallest<br />
<code>&lt;p&gt; ... &lt;/p&gt;</code>    organizes content into paragraphs<br />
<code>&lt;a&gt;&lt;/a&gt; </code> designates a link<br />
<code>&lt;img   /&gt; </code>places an image within the page<br />
<code>&lt;br   /&gt; </code>puts a break in-between text<br />
<code>&lt;hr   /&gt;</code> creates a horizontal rule- ie, a line- between elements<br />
<code>&lt;strong&gt; ... &lt;/strong&gt; </code>  strong emphasized text (bolds text)<br />
<code>&lt;em&gt; ... &lt;/em&gt;</code>  emphasized text (italicizes text)<br />
<code>&lt;ol&gt;&lt;li&gt; ... &lt;/li&gt;&lt;/ol&gt; </code> ‘ol’ is an ordered list, ‘ul’ is an   unordered list, ‘li’ in both ‘ul’ and ‘ol’ is a list item<br />
<code>&lt;div&gt; ... &lt;/div&gt;</code>    tag defines a division or a section in   an HTML document- mostly used to call style elements from the CSS<br />
<code>&lt;form&gt; ... &lt;/form&gt;</code>  used to place a form element within the   page</p>
<p><strong>Some natural hookups:</strong></p>
<p>There are some tags that naturally have certain things following them.<br />
For example,<code> &lt;a href=”...”&gt; ... &lt;/a&gt;</code>.</p>
<p>‘a’ says that it’s a link and ‘href’ tells the link where to go. <code>&lt;img src=”...” /&gt;</code> ‘img’ says that the element is an image and ‘src’ tells the location of the image you want displayed.</p>
<h2>Putting together CSS and HTML using ‘div’</h2>
<p>The ‘div’ tag when used with CSS will either have ‘id’ or ‘class’ attached to it.</p>
<p>ex: <code>&lt;div id=”...”&gt; ... &lt;/div&gt; </code>or <code>&lt;div class=”...”&gt; ... &lt;/div&gt;</code></p>
<p>A ‘div’ can have multiple classes attached, but only one id. Also, a certain id can only be used once on a page where as a certain class can be used multiple times.</p>
<p>ex:<code> &lt;div id=”container” class=”numberone” class=”numbertwo”&gt; ... &lt;/div&gt;</code></p>
<p><strong>BEST PRACTICES</strong></p>
<ul>
<li>Put CSS in      the header just above the &lt;/head&gt; tag. (In order to have all styles      ready for the body when it loads.)</li>
<li>Put links      to scripts as well as scripts themselves (ex: jQuery, mootools,      javascript) at the bottom of the page- just above the &lt;/body&gt; tag.      (This encourages faster page loading.)</li>
<li>Keep      things well organized and, when necessary, document where your div tags      end like so:<code> &lt;/div&gt; &lt;!-- example div ends here --&gt;</code></li>
<li><strong>Nest your tags.</strong></li>
</ul>
<h2>CSS (Cascading Style Sheets)</h2>
<h3>Getting the look</h3>
<p>The main styles of the site, look and layout, are controlled mainly through CSS. If you need to edit the presentation of an element, div, or id use CSS. CSS and HTML together make a website fast loading and easily customizable. Using a CSS style sheet, you can change an element of your site across all the pages that have that element simply by editing your CSS. This cuts down on mistakes and makes your time spent on code more efficient.</p>
<h3>CSS Example</h3>
<p>Some examples of CSS.<br />
<pre class="brush: plain;">h1 {
font-size: 2.6em;
padding:5px 0 20px 0;
}
#content {
padding-top:15px;
font-family:Verdana, sans-serif;
}
.sec-nav {
padding:0;
margin:0 0 30px 0;
}
li:visited {
color: #00CC00;
text-decoration: none;
font-weight: bold;
}  </pre></p>
<h3>Writing style</h3>
<p>Before we get into the guts of this operation, I’m going to tell you about how people write the optional parts of code.</p>
<p>There are 3 types of naming conventions:</p>
<ul>
<li>camel case</li>
<li>dash</li>
<li>underscore</li>
</ul>
<p>Let’s say I have something in my CSS I want to call “Slider Thumbnails”.   Well, spaces are defined as starting something new, so I can’t use the above. Solution- one of the 3 naming conventions.</p>
<p>Camel Case:      sliderThumbnails</p>
<p>Dash:                  slider-thumbnails</p>
<p>Underscore:      slider_thumbnails</p>
<p>Which do I use? I use underscore because it seems easier to read for me, but this is all subjective. You pick the style that works best for you. What is important is that there are no spaces within the name.</p>
<h2>About CSS</h2>
<p>CSS can be used in three different ways: inline, internal, and external.</p>
<p>Inline is when you use ‘style’ attached to an element to build CSS for a single element within the HTML.</p>
<p>ex:  <code> &lt;p style=”color:red;”&gt;…&lt;/p&gt;</code></p>
<p>Internal is when you place your CSS styles in the ‘head’ tags.</p>
<p>ex: <code>&lt;head&gt;</code><br />
<code>&lt;style type="text/css"&gt; p  {color:red;} &lt;/style&gt;</code><br />
<code>&lt;/head&gt;</code></p>
<p>External is when you have a separate style sheet and link to it from the ‘head’.</p>
<p>ex: <code>&lt;link rel="stylesheet" href="style.css" type="text/css" media="screen" /&gt;</code></p>
<p>The external style sheet will have formatting like this inside it: p  {color:red;}</p>
<h3>What is a CSS format?</h3>
<p>CSS creates a selector for HTML to use when you group elements you want styled on your page. The selector then has notes on what properties you want added and what you want the properties to be.</p>
<p>ex:   <code>selector { property:value; }</code></p>
<p>There are 2 ways of organizing CSS: single line and multiple line – both are correct so it’s a matter of preference which one you use.</p>
<p><pre class="brush: plain;">selector { property:value;  property:value; }

selector {
property:value;
property:value;
}</pre></p>
<p>Your selector can be named anything you want. (With the exception of element selectors.)</p>
<h3>Different types of selectors</h3>
<p>There are different types of selectors: element, id, class, and pseudo.</p>
<p><strong>Element selectors</strong> retain their proper html titles such as ‘body’, ‘p’, ‘h1’, ‘ul’, ‘ol’, ‘a’, ‘img’, etc… and do not use any identifying features. ex:  img</p>
<p><strong>Id selectors</strong> use ‘#’ before a name and are unique.  ex:   #container</p>
<p><strong>Class selectors</strong> use ‘.’ before a name and are not unique.   ex:   .thumbnail</p>
<p>A <strong>pseudo selector </strong>uses ‘:’ and must be attached to an element selector.    ex:    a:hover</p>
<p>As stated before in the html section, an ‘id’ is unique and the same id can’t be used numerous times on a page. Use ‘id’s for main containers and other large boxes on a page. A ‘class’ is not unique and can be used multiple times on a page or multiple times on an element.</p>
<p>For more on this see:            <a href="http://css-tricks.com/the-difference-between-id-and-class/">http://css-tricks.com/the-difference-between-id-and-class/</a></p>
<h3>Property and value</h3>
<p>A property in CSS tells what you want to style within the selector and the value tells how you want it styled. For instance, I would like a red boarder around my header.</p>
<p>ex:   <code>#header  {border-color:red;}</code></p>
<p>“#header” would be my selector while “border-color” would be my property. “red” is the value I want displayed as the “border-color” on the “#header”.</p>
<p>There are many different types of properties. Some deal with position while others handle styles and spacing. For a full list of properties, see <a href="http://www.w3schools.com/css/css_reference.asp">http://www.w3schools.com/css/css_reference.asp</a> and scroll down to CSS Properties.</p>
<h3>Decoding CSS</h3>
<p>Let’s take apart this CSS.</p>
<p><pre class="brush: plain;">#wordmark{
background:url(images/wordmark.png) top left no-repeat;
width:709px;
height:112px;
position:absolute;
top:0px;
left:10px;
text-indent:-9999px;
margin:0;
}</pre></p>
<p>It’s an ‘id’ named wordmark.<br />
It has a background image placed in the top left and the image is not repeated.<br />
It’s 709&#215;112 pixels, and its position is absolute on the page with the coordinates being top 0 and left 10. It has a text indent of -9999px, which means the text is hidden off the page, and the margin is 0 so other elements will come right up against it.</p>
<p>Most CSS properties are easy to figure out. Especially in things they control. Just use common sense and in most cases- what you think it does it what it does. Some tricky properties are ‘color’, which actually controls the color of your text, and ‘margin’ vs ‘padding’.</p>
<p><strong>Margin</strong> determines the amount of space <em>around </em>your element.<br />
<strong>Padding</strong> determines the amount of space<em> within</em> your element.</p>
<h2>Bundle up</h2>
<p>Sometimes you want to specify a lot of things that actually all relate to one property. Well, there is a way to do that.</p>
<p><pre class="brush: plain;">background:#990000 url(images/footer-bg.png) top left repeat-x;
font:bold 1.7em/175% &quot;Lucida Sans&quot;,Lucida Sans Unicode,Verdana,Helvetica,sans-serif;
border:1px #ccc dotted;
padding:4px 0 4px 4px;
margin:3px 0px 10px 15px;</pre></p>
<p>This helps lighten your code and makes things run faster. It also makes things easier to find.</p>
<p><strong>BEST PRACTICES</strong></p>
<ul>
<li>Separate      your sections with descriptive headers. (ex: /* styles for slider */)</li>
<li>Use CSS to      style all links and header elements so that they appear the same      throughout the site.</li>
<li>Watch out      for conflicting CSS. In order to remove conflicts, sub list the element      when necessary. (ex: #containingDiv h1)</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/966/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=966&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/02/06/html-css-ccw-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/73c8ab129a1c66994d28253ed8bf2f53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">misatakashino</media:title>
		</media:content>
	</item>
		<item>
		<title>What is a WordPress theme?</title>
		<link>http://webtide.wordpress.com/2011/02/03/what-is-a-wordpress-theme/</link>
		<comments>http://webtide.wordpress.com/2011/02/03/what-is-a-wordpress-theme/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 03:25:38 +0000</pubDate>
		<dc:creator>Milton Brian Jones</dc:creator>
				<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=935</guid>
		<description><![CDATA[Whether you plan to build your own theme or apply an existing one, an important part of getting started with WordPress is understanding what a theme is &#8212; and what a theme is not. It would be easy to say &#8230; <a href="http://webtide.wordpress.com/2011/02/03/what-is-a-wordpress-theme/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=935&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Whether you plan to build your own theme or apply an existing one, an important part of getting started with WordPress is understanding what a theme is &mdash; and what a theme is not.  </p>
<p>It would be easy to say a WordPress theme allows you to customize the way a WordPress blog or website looks.  You might refer to such a thing as a skin.  WordPress themes can and usually do affect the look of your site/blog, but that&#8217;s not all they do.  Here&#8217;s how the <a href="http://codex.wordpress.org/Using_Themes">Using Themes page of the WordPress Codex</a> describes the difference:</p>
<blockquote><p>Fundamentally, the WordPress Theme system is a way to &#8220;skin&#8221; your weblog. Yet, it is more than just a &#8220;skin.&#8221; Skinning your site implies that only the design is changed. WordPress Themes can provide much more control over the look and presentation of the material on your website.</p>
<p>A WordPress Theme is a collection of files that work together to produce a graphical interface with an underlying unifying design for a weblog. These files are called template files.</p></blockquote>
<p>I tend to think of a skin as something that would only control things like the color, layout, and typography of the information on a website.  WordPress themes control those things, but they also have the ability to control <em>which information is displayed</em>.  In other words, you don&#8217;t just use your theme to show a blog post in a certain typeface with a certain background color, you use the theme to control whether your home page shows an excerpt of each post or the whole post, or whether the date the post was written shows up underneath the title, or a hundred other similar things.</p>
<p>To really get how this works, it helps to understand the difference between the back end of WordPress and the front end.</p>
<p>The back end of WordPress is a MySQL database organized into 11 tables (as of WordPress 3.0).  You can read more about the tables that are set up in the default installation on the <a href="http://codex.wordpress.org/Database_Description">Database Description page of the WordPress Codex</a>.</p>
<p>The database, or back end of WordPress, includes the content of the posts and pages you write as well as a lot of other information that gets added and edited as you work inside the WordPress Admin Panel.</p>
<p>The front end of WordPress is pretty much whatever the theme says it is.  So when you choose a theme, or build your own theme, you determine which information gets pulled from the database, where that information shows up within the structure of your site, and how it is displayed to the user as far as colors, fonts, and other properties that can be controlled via CSS or other means.</p>
<p>In that sense, a WordPress theme controls not only how your website looks, but what the website actually is.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/935/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/935/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=935&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/02/03/what-is-a-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/83fd7794d23b5b3518fbeb59c7c2f2ff?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">MBJ</media:title>
		</media:content>
	</item>
		<item>
		<title>Organization and Introduction (Crash Course in Web Part 1)</title>
		<link>http://webtide.wordpress.com/2011/01/27/organization-and-introduction-crash-course-in-web-part-1/</link>
		<comments>http://webtide.wordpress.com/2011/01/27/organization-and-introduction-crash-course-in-web-part-1/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 19:13:26 +0000</pubDate>
		<dc:creator>Lisa Sandy</dc:creator>
				<category><![CDATA[Planning]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=940</guid>
		<description><![CDATA[Over the past year I&#8217;ve found myself doing more and more teaching on web development. Considering how much I’ve invested in it, I decided to post some of my updated lessons here on WebTide for others to look over. The &#8230; <a href="http://webtide.wordpress.com/2011/01/27/organization-and-introduction-crash-course-in-web-part-1/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=940&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Over the past year I&#8217;ve found myself doing more and more teaching on web development. Considering how much I’ve invested in it, I decided to post some of my updated lessons here on WebTide for others to look over.</p>
<p>The first lesson deals with organization and planning while further lessons will handle coding. As these lessons were originally intended to be handouts for a lecture, please feel free to post any questions on the material in the comments section. I can’t promise I’ll get to them all, but I’ll try.</p>
<h2>Setting up structure for a website</h2>
<p>Most people don’t know how essential good navigation is- but every website I’ve ever built has required at least an hour of debate over navigation.</p>
<p>Navigation is <em>very</em> important as it organizes the content flow on your site. While planning the navigation, make sure to stress the user’s point of view. Role-play if you must. Imagine you know nothing about how the company works and just want to find something- where would you most likely look for it? This should help you construct the primary navigation. Lesser links can be placed in a sub navigation that’s not as prominent or used as secondary navigation within pages.</p>
<p>People generally don’t like clicking more than 3 times to find what they want- but they also don’t wish to be stuck on the first page for hours searching for the link they need. To help solve this problem, use umbrella terms in your main navigation and let your secondary navigation fine-tune the section. In the best possible situations you’ll only need these two levels. Larger sites with more content may require further links, but place them within the page to avoid confusion or frustration.</p>
<p><strong>Tip: </strong>When working out your navigation, don’t fixate on users who are only going to visit your site once. Plan for those who will be visiting your site frequently and make sure their content is easily accessible.</p>
<h3>Create a navigational chart</h3>
<p>In order to make sure everything is correct, mock up a navigational chart. In this way, clients will be able to see the site’s flow and easily edit mistakes. This heads off a <em>lot</em> of arguments before you start coding since some people need to see navigation before they understand it. Two recommended ways to create a navigational chart are in outline style or as a data tree. Both have inherent hierarchy when created and allow for easy secondary navigation insertion.</p>
<h3>Create a content layout model</h3>
<p>How information is displayed on a page is also important. Remember that your users will usually be looking for <em>one specific bit of information </em>and won’t want to read your entire site to get it. Make things easy to spot on a page by using well-defined headers and bolding/italicizing only very important elements.  Organize your page in a way that will allow the user immediate access to the information they want with a simple scan.</p>
<p>For each page, your content layout will naturally differ depending on the type of information. Understanding your audience, and what your audience wants, helps identify which elements are important, and where these elements should be placed. The one exception would be your home page, which should focus on emotional impact in addition to user needs. This impact is often accomplished by having a picture, illustration, or good typography showing what the organization is about.</p>
<p>When working on a home page layout, you may find that sketching out your ideas can be very helpful. They don’t have to look professional, they just act as a visual guide to help place your content. Use a grid and plan your layout with boxes and squiggles. This helps you figure things out before you start coding and saves time.</p>
<p><strong>BEST PRACTICES</strong></p>
<ul>
<li>Have main umbrella navigation terms      for your main menu and keep them short.</li>
<li>Keep important      information within 3 clicks of the user.</li>
<li>Advocate for the users of      the site.</li>
<li>Outgoing links should      never be placed in your main navigation, though there are some exceptions.</li>
<li>Keep in mind that      companies tend to know their customers and business. If they insist on      something you think is bad practice, compromise or give in depending upon      the situation.</li>
</ul>
<h2>Getting comfortable with content</h2>
<p>When it comes to reading a site, people want content to be clear, concise, and legible. In order to facilitate this, shorter sentences are used and body copy fonts are mostly sans-serif. There’s a good reason you see Verdana and Arial on the majority of web pages. Every computer has them pre-installed and they’re easy to read at smaller sizes.</p>
<p>Request content before you start coding the site, but after you’ve got the navigation planned. It takes time for people to write and by letting them know what you want, before you need it, the process will go much smoother. However, there may be times when you’ll need body copy and none is available. This might crop up while you’re building a site and want to see how content will look in your layout. For this, most turn to the old printer’s resource of Lorem Ipsum.</p>
<p>Lorem Ipsum is dummy text and has been used by the printing and typesetting industry since the 1500s. When websites came along, the same principles were used in their creation and thus the text made the leap from paper to screen. Just make sure that Lorem Ipsum is erased when you get the actual content.</p>
<p><strong>Trivia: </strong>Lorem Ipsum is Latin and comes from Cicero’s “de Finibus Bonorum et Malorum” which was written in 45 B.C.</p>
<p>Image content is another beast altogether. A few things I recommend are getting<strong> </strong>a professional photographer or going to a stock photo site. With professional images your site will look better and inspire more trust with users. Also make sure your image conveys the same message as your text. Think of a few adjectives that describe your organization. Do those adjectives apply to your pictures? If not- don’t use them.</p>
<p><strong>BEST PRACTICES</strong></p>
<ul>
<li>Request content ahead of      time.</li>
<li>Use bolding and      italicizing sparsely for only important elements- the more bolding and      italicizing you have, the less important and more confusing those elements      become.</li>
<li>Make sure your content is      edited for grammar and spelling.</li>
<li>Use professional images      that convey your organization’s purpose throughout the site.</li>
</ul>
<p><strong>WORST PRACTICES</strong></p>
<ul>
<li>Don’t center your content- especially with paragraphs.  Centering rarely      looks good and reading from a jagged edge is hard on your users.</li>
<li>Using too many fonts is      confusing. Limit yourself to 2 different fonts (usually one serif and the      other sans-serif) and use one font for headings and one for body copy.</li>
<li>Some fonts are downright      inappropriate for their subject matter. Comic Sans gives a childish      feeling and unless your site deals directly with children- don’t use it.</li>
<li>Stay away from site      traffic counters or gif animations. They date your site like nothing      else.</li>
</ul>
<p>﻿</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/940/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/940/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=940&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/01/27/organization-and-introduction-crash-course-in-web-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/73c8ab129a1c66994d28253ed8bf2f53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">misatakashino</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcoming our newest team member</title>
		<link>http://webtide.wordpress.com/2011/01/03/welcoming-our-newest-team-member/</link>
		<comments>http://webtide.wordpress.com/2011/01/03/welcoming-our-newest-team-member/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 14:00:42 +0000</pubDate>
		<dc:creator>Andy Rainey</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[job]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=887</guid>
		<description><![CDATA[Rachel Carden officially joins the Web Communications team today, and we&#8217;re excited to have her on board.  She is a talented designer and developer who comes to us from Samford University, and is a UA graduate who is excited about being &#8230; <a href="http://webtide.wordpress.com/2011/01/03/welcoming-our-newest-team-member/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=887&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Rachel Carden officially joins the Web Communications team today, and we&#8217;re excited to have her on board.  She is a talented designer and developer who comes to us from Samford University, and is a UA graduate who is excited about being back at the Capstone.  She&#8217;s a great addition to our web community at UA, and we&#8217;re looking forward to seeing her contributions!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/887/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/887/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=887&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2011/01/03/welcoming-our-newest-team-member/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b15c91ed06b0d5d065eabf510a609592?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AMR</media:title>
		</media:content>
	</item>
		<item>
		<title>Permalink options for custom post types in WordPress</title>
		<link>http://webtide.wordpress.com/2010/12/15/using-custom-permalinks-with-custom-post-types-in-wordpress/</link>
		<comments>http://webtide.wordpress.com/2010/12/15/using-custom-permalinks-with-custom-post-types-in-wordpress/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 15:03:08 +0000</pubDate>
		<dc:creator>Milton Brian Jones</dc:creator>
				<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=884</guid>
		<description><![CDATA[I recently did some work with custom post types in WordPress. As I finished setting up my first custom post type, the last thing I got hung up on was customizing the permalink settings for the new post type. It&#8217;s &#8230; <a href="http://webtide.wordpress.com/2010/12/15/using-custom-permalinks-with-custom-post-types-in-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=884&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I recently did some work with <a href="http://codex.wordpress.org/Custom_Post_Types">custom post types</a> in WordPress.  As I finished setting up my first custom post type, the last thing I got hung up on was customizing the permalink settings for the new post type.  It&#8217;s a really easy thing to do, but it took me a few minutes to figure it out, so I wanted to write a quick post describing the options in case that would help anyone else.</p>
<p>Obviously before you can deal with the permalinks settings for your custom post type, you have to have a custom post type.  Today&#8217;s article does not address that (at least not comprehensively), but there are plenty of great resources that describe that process.  Here are some of the ones that have been helpful to me:</p>
<ul>
<li><a href="http://codex.wordpress.org/Custom_Post_Types">Custom post types on WordPress codex</a></li>
<li><a href="http://www.wpbeginner.com/wp-tutorials/how-to-use-custom-post-types/">How to use Custom Post Types in WordPress 3.0 from WPBeginner</a></li>
<li><a href="http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress">Custom post types in WordPress by Justin Tadlock</a></li>
</ul>
<p>Let&#8217;s say you&#8217;ve defined a custom post type called &#8220;Helpful Hints&#8221; with the following settings (this code would go in the <em>functions.php</em> file within your theme):</p>
<p><pre class="brush: php;">
&lt;?php
add_action('init', 'my_custom_init');
function my_custom_init()  {
register_post_type('hints', array(
	'label' =&gt; __('Helpful Hints'),
	'singular_label' =&gt; __('Helpful Hint'),
	'public' =&gt; true,
	'show_ui' =&gt; true,
	'capability_type' =&gt; 'post',
	'hierarchical' =&gt; false,
	'rewrite' =&gt; false,
	'query_var' =&gt; false,
	'supports' =&gt; array('title','editor','author','thumbnail','excerpt','comments')
  ));
}
?&gt;
</pre></p>
<p>As you might guess, the part we need to work with to modify the permalink settings is the <em>rewrite</em> argument.  The default of <em>rewrite</em> is true, but in the code above we have it set to false.  Having it set as false will disable so-called &#8220;pretty URLs&#8221; (even if you have &#8220;pretty URLs&#8221; enabled in your general permalinks settings) and result in your custom posts having URLs like this:</p>
<p><em><a href="http://www.yourwebsite.com/?post_type=hints&#038;p=323" rel="nofollow">http://www.yourwebsite.com/?post_type=hints&#038;p=323</a></em></p>
<p>Remember, the URL above is not the default, but I wanted to show you the &#8220;ugliest&#8221; URL first and work up from there.  As you can see, the post_type shows up exactly as we defined it in <a href="http://codex.wordpress.org/Function_Reference/register_post_type">register_post_type</a> (hints) and the post ID is added to the query string as well.  </p>
<p>If we change the <em>rewrite</em> argument to true, we&#8217;ll get this instead:  </p>
<p><em><a href="http://www.yourwebsite.com/hints/how-to-do-something" rel="nofollow">http://www.yourwebsite.com/hints/how-to-do-something</a></em></p>
<p>This is the default when you have &#8220;pretty URLs&#8221; enabled in your general permalink settings.  That is, if we included no <em>rewrite</em> argument in the register_post_type arguments, this is what we would get.  Again, remember that the text for the slug (the part after the .com/) will be taken directly from the post_type, not from the label, or the singular label, or anything else.</p>
<p>In most cases, that will probably be sufficient.  But suppose for a minute that you don&#8217;t want just &#8220;hints&#8221; to show up as your slug.  Let&#8217;s say you want something a little more descriptive, maybe something like &#8220;helpful-hints.&#8221;</p>
<p>You can do this by adding an array that assigns a slug in the <em>rewrite</em> argument:</p>
<p><pre class="brush: php;">
&lt;?php
add_action('init', 'my_custom_init');
function my_custom_init()  {
register_post_type('hints', array(
	'label' =&gt; __('Helpful Hints'),
	'singular_label' =&gt; __('Helpful Hint'),
	'public' =&gt; true,
	'show_ui' =&gt; true,
	'capability_type' =&gt; 'post',
	'hierarchical' =&gt; false,
	'rewrite' =&gt; array('slug' =&gt; 'helpful-hints'),
	'query_var' =&gt; false,
	'supports' =&gt; array('title','editor','author','thumbnail','excerpt','comments')
  ));
}
?&gt;
</pre></p>
<p>Since the default value of <em>rewrite</em> is true, we&#8217;re already going to have a &#8220;pretty URL,&#8221; but the <em>slug</em> array gives us a more descriptive URL without affecting anything else as far as labels and such.  The result looks like this:</p>
<p><em><a href="http://www.yourwebsite.com/helpful-hints/how-to-do-something" rel="nofollow">http://www.yourwebsite.com/helpful-hints/how-to-do-something</a></em></p>
<p>To review, for a WordPress site that has &#8220;pretty URLs&#8221; enabled in the permalinks settings, here&#8217;s how your custom post type permalinks will display with various rewrite settings:</p>
<ul>
<li><strong>By default:</strong>  Rewrite is set to true but with no custom slug.  The post_type will be used for the slug in the URL.</li>
<li><strong>Rewrite set to false:</strong>  The URL will revert to a query string in the URL that includes the post_type and the post ID.  This will happen even if your site has permalinks enabled in the general settings.  </li>
<li><strong>Rewrite set to true with slug defined:</strong>  This will result in a pretty URL with any slug you choose.</li>
</ul>
<p>One final thing to keep in mind here is that anytime you change the rewrite settings in your code, you will need to open your permalinks settings screen in the WordPress Admin panel to flush the rewrite rules.  Without doing that, your changes will not go into effect.  For more information on this, check out <a href="http://core.trac.wordpress.org/ticket/13022">ticket #13022 on the WordPress trac</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/884/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/884/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=884&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/12/15/using-custom-permalinks-with-custom-post-types-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/83fd7794d23b5b3518fbeb59c7c2f2ff?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">MBJ</media:title>
		</media:content>
	</item>
		<item>
		<title>WordPress University webinar on Higher Ed Experts</title>
		<link>http://webtide.wordpress.com/2010/12/13/wordpress-university-webinar-on-higher-ed-experts/</link>
		<comments>http://webtide.wordpress.com/2010/12/13/wordpress-university-webinar-on-higher-ed-experts/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 14:30:45 +0000</pubDate>
		<dc:creator>Andy Rainey</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[webinar]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=867</guid>
		<description><![CDATA[Just a quick announcement about a unique professional development opportunity in the new year&#8230; It&#8217;s no secret that we in Web Communications are big fans of WordPress, and we&#8217;ve addressed our use of WordPress as a content management system for institutional &#8230; <a href="http://webtide.wordpress.com/2010/12/13/wordpress-university-webinar-on-higher-ed-experts/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=867&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Just a quick announcement about a unique professional development opportunity in the new year&#8230;</p>
<p>It&#8217;s no secret that we in Web Communications are big fans of WordPress, and we&#8217;ve addressed our use of WordPress as a content management system for institutional sites here plenty in the past.  Now we&#8217;re partnering with Higher Ed Experts to conduct a webinar on using WordPress in higher education.  The <strong><a href="http://higheredexperts.com/edu/webinar/wordpress-university/">WordPress University webinar</a></strong> is set for March 22, 23 &amp; 24, 2011, and our WordPress guru and developer <a href="http://webtide.wordpress.com/author/mmuro/">Matthew Muro</a> will be delivering the second panel, titled &#8220;How to create a branded WordPress theme for your decentralized units.&#8221;  Other participants include Mike Richwalsky from John Carroll University and Stephanie Leary from Texas A&amp;M University.</p>
<p>If you&#8217;re interested in exploring the use of and application of WordPress in greater depth and getting hands-on with using WordPress to manage your college/division/department web site, I&#8217;d encourage you to sign up for the webinar &#8211; it&#8217;s going to be a great class.  If there is interest from multiple areas, we can possibly organize a group session on campus &#8211; just let me know in the comments section or shoot me a message.</p>
<p><a href="http://higheredexperts.com/edu/webinar/wordpress-university/"><img class="alignnone size-full wp-image-875" title="hee_logo" src="http://webtide.files.wordpress.com/2010/12/hee_logo.png?w=584" alt=""   /></a><strong><br />
WordPress University:<br />
Strategies, tools and shortcuts for WordPress-based higher ed websites<br />
</strong>March 22, 23 &amp; 24, 2011 – 1PM-2PM ET<br />
<strong><a href="http://higheredexperts.com/edu/webinar/wordpress-university/">More Information and Registration</a></strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/867/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/867/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=867&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/12/13/wordpress-university-webinar-on-higher-ed-experts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b15c91ed06b0d5d065eabf510a609592?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">AMR</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2010/12/hee_logo.png" medium="image">
			<media:title type="html">hee_logo</media:title>
		</media:content>
	</item>
		<item>
		<title>Restrict Categories &#8211; My Experience Writing a WordPress Plugin</title>
		<link>http://webtide.wordpress.com/2010/12/07/restrict-categories-my-experience-writing-a-wordpress-plugin/</link>
		<comments>http://webtide.wordpress.com/2010/12/07/restrict-categories-my-experience-writing-a-wordpress-plugin/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 17:52:44 +0000</pubDate>
		<dc:creator>Matthew Muro</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[restrict categories]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=840</guid>
		<description><![CDATA[Two months ago today I released my first WordPress plugin, Restrict Categories, and in that short time it has already reached over 1,000 downloads.  I thought this milestone was a good chance to write about my experiences developing a plugin. &#8230; <a href="http://webtide.wordpress.com/2010/12/07/restrict-categories-my-experience-writing-a-wordpress-plugin/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=840&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Two months ago today I released my first WordPress plugin, <a href="http://wordpress.org/extend/plugins/restrict-categories/">Restrict Categories</a>, and in that short time it has already reached over 1,000 downloads.  I thought this milestone was a good chance to write about my experiences developing a plugin.</p>
<h2>Background</h2>
<p>A couple of months ago, I was doing some research for a project here at Web Communications and it needed to have a particular functionality within WordPress.  We needed to control which categories certain users would be able to edit and post.  At first, I had hope this was possible because I discovered several plugins that appeared to accomplish what I wanted.  However, I quickly realized that none of them worked or didn&#8217;t really do what I wanted them to do.  My options were slim: 1) fix one of the broken plugins or, 2) write my own.  After trying to fix a couple of the plugins that had promise, but failing to do so, I started the process of developing my own.</p>
<h2>Where to start?</h2>
<p>The first place I looked was the WordPress Codex and leaned on it heavily in the early goings.  Specifically, I looked at the <a href="http://codex.wordpress.org/Developer_Documentation#Plugin_Development">Plugin Development</a> pages.  The pages I relied on the most were <a href="http://codex.wordpress.org/Writing_a_Plugin">Writing a Plugin</a>, <a href="http://codex.wordpress.org/Adding_Administration_Menus">Adding Administration Menus</a>, <a href="http://codex.wordpress.org/Creating_Options_Pages">Creating Options Pages</a>, and the always helpful <a href="http://codex.wordpress.org/Function_Reference">Function Reference</a>.</p>
<p>I also think it&#8217;s beneficial to check out <a href="http://codex.wordpress.org/WordPress_Coding_Standards">WordPress Coding Standards</a>, <a href="http://codex.wordpress.org/Inline_Documentation">Inline Documentation</a>, <a href="http://codex.wordpress.org/I18n_for_WordPress_Developers">Internationalization</a>, and <a href="http://codex.wordpress.org/Data_Validation">Data Validation</a>.</p>
<h2>Initial Development</h2>
<p>In very basic terms, this is what I needed my plugin to do:</p>
<ul>
<li>Display a list of all user roles (Administrator, Editor, Author, etc)</li>
<li>Display a list of all categories next to each role</li>
<li>Allow the plugin user some way to select categories and assign them to that author</li>
<li>On the Posts screen, display only those posts with categories from those selected above</li>
</ul>
<p>Tackling development on this went in pieces.</p>
<ol>
<li>Create the basics of what I need to get my settings page to show up in the WordPress menu</li>
<li>Get a list of user roles</li>
<li>Get a list of all categories</li>
<li>Combine all of these things on my plugin page and have a process that saves the information to the database</li>
<li>Use that information to filter the Posts screen for restricted user roles</li>
</ol>
<p>Some of these steps were easier than others and there were many days where I tried one thing, thinking it was the solution, only to be deterred and abandon it for a different route.  But, after a week and a half of trial and error, I finally had a working plugin.</p>
<h2>Getting my plugin in the WordPress Plugin Directory</h2>
<p>If you&#8217;ve ever wondered how people get their plugin on the WordPress.org site, you first start with the <a href="http://wordpress.org/extend/plugins/about/">Plugin Developer Center</a>.  I <a href="http://wordpress.org/extend/plugins/add/">signed up</a> and then began my learning process with <a href="http://wordpress.org/extend/plugins/about/svn/">SVN</a> (Subversion).  Having never used SVN before, I was a bit unfamiliar with where to start or what program to use!  If you are on a Mac, your best bet is to use Terminal.  There are some graphical interfaces that are supposed to make it easier, but I then found it hard to follow<a href="http://wordpress.org/extend/plugins/about/svn/"> the SVN directions from the WordPress documentation</a>.</p>
<p>Anyway, once I figured that out, my plugin was soon live and being displayed in the &#8220;Newest Plugins&#8221; section.  Very cool.</p>
<h2>Improvements</h2>
<p>In many ways, Version 1.o had many of the pitfalls that most newbie WordPress plugin developers fall victim to.  In fact, I&#8217;m pretty sure <a href="http://planetozh.com/blog/2009/09/top-10-most-common-coding-mistakes-in-wordpress-plugins/">I was committing a couple of these Top 10 mistakes</a>.  I was also getting some <a href="http://wordpress.org/tags/restrict-categories?forum_id=10">users with errors</a>.  So, I began troubleshooting my code as well as looking into how to make my plugin better.</p>
<p>For the first couple of revisions, the updates were mainly bug fixes.  Then, I decided to test it in the alpha version of WordPress 3.1.  One of the changes they made to the Posts screen inadvertently would allow a restricted user to bypass all restriction and they could get to a post they weren&#8217;t allowed to view.  What was even worse was that I couldn&#8217;t figure out how to fix my code to make it work with new Posts screen.  Uh oh.</p>
<p>So, I reached out to the WordPress community asking for a solution.  I asked a question on the <a href="http://lists.automattic.com/pipermail/wp-hackers/2010-November/035716.html">wp-hackers mailing list</a> and, when I couldn&#8217;t get a workable solution there, headed towards the <a href="http://wordpress.stackexchange.com/questions/3780/get-cat-parameter-from-admin-ajax">WordPress Stack Exchange</a>.  Luckily, someone responded with an answer.</p>
<p>I was resistant to the &#8220;solution&#8221; presented to me at first because I felt I was so close to the answer and was getting the run-around.  What I was <em>really</em> doing was not wanting to do the work to change my code.  However, once I actually took the time to work this solution into my code, I realized <strong>it was better</strong>.  This wasn&#8217;t the last time that asking a question in the community led me to a better solution.</p>
<p>It took two months and 1,000+ downloads to make me a better WordPress developer and a better PHP coder.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/840/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/840/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=840&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/12/07/restrict-categories-my-experience-writing-a-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/29653b4cd79fd57441baa9eac32010f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mmuro</media:title>
		</media:content>
	</item>
		<item>
		<title>Changing the URL of your WordPress site</title>
		<link>http://webtide.wordpress.com/2010/10/27/changing-the-url-of-your-wordpress-site/</link>
		<comments>http://webtide.wordpress.com/2010/10/27/changing-the-url-of-your-wordpress-site/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 13:54:45 +0000</pubDate>
		<dc:creator>Matthew Muro</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=805</guid>
		<description><![CDATA[A question often asked is how to change the URL of their WordPress site. Here&#8217;s a common scenario:  you install WordPress into a sub-directory on your web server so you can create a theme, upload content, and test it without &#8230; <a href="http://webtide.wordpress.com/2010/10/27/changing-the-url-of-your-wordpress-site/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=805&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A question often asked is how to change the URL of their WordPress site.</p>
<p>Here&#8217;s a common scenario:  you install WordPress into a sub-directory on your web server so you can create a theme, upload content, and test it without interrupting your current site.  There&#8217;s nothing wrong with doing it this way.  In fact, this is how a lot of people develop and test websites before launching, myself included.  One problem many people run into after switching their homepage to point to the sub-directory you installed WordPress is that many of the URLs still use the sub-directory instead of the root.</p>
<p>Let&#8217;s look at an example.</p>
<ul>
<li>Current site URL: <a href="http://mywebsite.com" rel="nofollow">http://mywebsite.com</a></li>
<li>WordPress Development URL: <a href="http://mywebsite.com/wordpress" rel="nofollow">http://mywebsite.com/wordpress</a></li>
</ul>
<p>At some point development stops and you are ready to switch your homepage so that it&#8217;s using the /wordpress/ directory.  However, you notice that something isn&#8217;t quite right.  Perhaps the links to your posts are going to the old development URL?  Perhaps your theme was dependent on the old URL and the header image is broken?</p>
<p>This is fixable in two easy steps.</p>
<h3>Update URL in WordPress admin panel</h3>
<p>The first step is to login to the admin and go to Settings -&gt; General.  Update the <em>WordPress address (URL)</em> and <em>Site Address (URL)</em> options from <a href="http://mywebsite.com/wordpress" rel="nofollow">http://mywebsite.com/wordpress</a> to <a href="http://mywebsite.com" rel="nofollow">http://mywebsite.com</a>.</p>
<h3>Run MySQL query to update content</h3>
<p>The next step is to run a MySQL query.  If you aren&#8217;t familiar with SQL, contact your host or IT support to see if they can run it for you.</p>
<p><pre class="brush: sql;">
UPDATE wp_posts SET guid = REPLACE (guid,'http://mywebsite.com/wordpress','http://mywebsite.com');
UPDATE wp_posts SET post_content = REPLACE (post_content,'http://mywebsite.com/wordpress','http://mywebsite.com');
</pre></p>
<p>Once you have completed these steps, all URLs should be updated.</p>
<p>If you are performing more complex moves such as moving the database to a different server or moving the WordPress files around, check out these articles on the WordPress Codex: <a href="http://codex.wordpress.org/Moving_WordPress">Moving WordPress</a> and <a href="http://codex.wordpress.org/Changing_The_Site_URL">Changing The Site URL</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/805/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/805/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=805&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/10/27/changing-the-url-of-your-wordpress-site/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/29653b4cd79fd57441baa9eac32010f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mmuro</media:title>
		</media:content>
	</item>
		<item>
		<title>Teaching Good Web Design: Part 2</title>
		<link>http://webtide.wordpress.com/2010/10/21/teaching-good-web-design-part-2/</link>
		<comments>http://webtide.wordpress.com/2010/10/21/teaching-good-web-design-part-2/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 21:02:07 +0000</pubDate>
		<dc:creator>Lisa Sandy</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[color]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=783</guid>
		<description><![CDATA[In part one the underpinnings of a good design were laid out. This helped to arrange the content and establish a hierarchy of information in your design. However, there is more to creating a successful piece than just spectacular organization. &#8230; <a href="http://webtide.wordpress.com/2010/10/21/teaching-good-web-design-part-2/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=783&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In part one the underpinnings of a good design were laid out. This helped to arrange the content and establish a hierarchy of information in your design. However, there is more to creating a successful piece than just spectacular organization. For a more complete picture we turn to the artsy part of design- the things that are easily visible to your viewers and will make people want to look at the content. The simplest of ticks with these elements can create a sleek modern look, a page full of rustic charm, or an exotic beauty. It all depends on how you use them.</p>
<h2>Adding the attention getters- The Elements of Design</h2>
<p><strong> </strong></p>
<p><strong>Line </strong>– Line is the most important element in web design as we use it to define breaks in sections and separations between navigation. Thinner lines (1px) will give a sleek minimalistic look while heavier lines (5px) can create nice borders around elements. Giving a line varying thickness can also create a unique feel, such as the stroke of a calligraphy brush or the hand crafted lines of art.</p>
<p><strong>Shape</strong>- As we work on the web world, the square and rectangle are the first shapes that pop into our minds when it comes to design. After all, they are easily stack-able, arrange-able, readable, and the way our mind orders things. However, when it comes to things that aren’t content, other shapes used in a design can make your site stand out from the crowd.</p>
<p><strong>Direction</strong>- Most layouts are horizontal, and with wide-screen monitors becoming more and more the norm, websites are becoming more focused on wide open layouts. This is not to say that vertical isn’t important, because if you work your design right, people will want to scroll down!<strong> </strong></p>
<p><strong>Size </strong>– Consider your positive space and your negative space when dealing with size. Most screens can now handle over 900px wide layouts, so you’ve got a good area to work with. Use size to single out important or eye-catching elements.</p>
<p><strong>Texture </strong>– Yes, you can have texture in a site. Subtle textures, such as those found in photos, can be overlaid on a color to help add character and that little extra personalization to a site .</p>
<p><strong>Color and Value</strong> – I’m placing these two together since they’re the major players in design. (Value is the lightness or darkness of a color, so we’ll just incorporate that into talking about color.) A Design relies upon colors. Be it black, white, red, or blue, all designs have color. What you need to keep in mind is that the best layouts have either 1 or 2 main colors and then the rest are accent colors. Having more than 2 main colors tends to overwhelm the eye, so keep your 3rd color as an accent by using it sparingly and in smaller doses around your page. Moving on, color combinations are tricky- lots of things like culture and personal preference tend to hold sway over things like this, but I can say don’t have every color the same value. Vary the lightness and darkness in your chosen colors to get a better result when you combine them. A bunch of different colors all at the same value can lead to a confusing page if not handled correctly.</p>
<h2><strong>Color Theory</strong></h2>
<p>Since color is such a big part of design, here are a few helpful insights into color theory.</p>
<p>First off are your <strong>primary colors </strong>which consist of blue, yellow, and red. It is these colors mixed that create all other colors. You cannot create these 3 colors out of any other color. Your <strong>secondary colors</strong> are when equal parts of two primary colors are mixed which gives us green, violet, and orange. Add more of one primary color than the other to a secondary color and you’ll get the <strong>tertiary colors</strong> of yellow-green, blue-green, blue-violet, red-violet, red-orange, and yellow-orange.</p>
<p style="text-align:center;"> </p>
<div id="attachment_787" class="wp-caption aligncenter" style="width: 356px"><img class="size-full wp-image-787 " title="colorwheel" src="http://webtide.files.wordpress.com/2010/10/colorwheel.jpg?w=584" alt=""   /><p class="wp-caption-text">The above color wheel, starting from top and going clockwise: yellow, yellow-orange, orange, red-orange, red, red-violet, violet, blue-violet, blue, blue-green, green, yellow-green</p></div>
<p><strong>Complementary colors</strong> are a pair of colors that are opposite in hue. What this means is that the primary color and secondary color do not share a primary color. For example the complementary color for blue is orange, a combination of red and yellow. Complementary colors put together at the same value tend to enhance both colors in a way that makes them stand out more or become stronger.</p>
<p>Complementary pairings are: red and green, blue and orange, yellow and violet</p>
<div id="attachment_790" class="wp-caption aligncenter" style="width: 478px"><img class="size-full wp-image-790 " title="complementary" src="http://webtide.files.wordpress.com/2010/10/complementary1.jpg?w=584" alt=""   /><p class="wp-caption-text">To show how complementary colors affect each other, a green square has been placed in a red one and a red square has been placed in a green one. (Both colors remain the same color and value in each square.)</p></div>
<p><strong>Analogous colors </strong>are colors next to the selected primary color on the color wheel, like blue and green or blue and violet. They tend to ease the eye into each color and don’t stand out as much creating a less jarring contrast. More often then not, you&#8217;ll be using analogous colors as your main colors and a complementary as your accent.</p>
<div id="attachment_791" class="wp-caption aligncenter" style="width: 478px"><img class="size-full wp-image-791" title="analogous" src="http://webtide.files.wordpress.com/2010/10/analogous.jpg?w=584" alt=""   /><p class="wp-caption-text">To show how analogous colors work together, a violet square has been placed in a blue one and a blue square has been placed in a violet one. (Both colors remain the same color and value in each square.)</p></div>
<p>A good place to further study color theory would be at <a href="http://www.tigercolor.com/color-lab/color-theory/color-harmonies.htm">Tiger Color’s Color Harmonies</a>. It shows the grouping<strong> </strong>of colors in<strong> </strong>complementary, analogous, triad, split-complementary, tetradic, and square ways.</p>
<h2>In closing&#8230;</h2>
<p>You can use these basics of art in design and create wonderful websites. Just remember that the above are merely helpers and good advice for you to think about when designing. For more information on design, I would recommend hanging around the fine art section of your local library or bookstore and perusing the books. You’ll find a lot of inspiration and great design.</p>
<p style="text-align:center;"> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/783/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/783/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=783&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/10/21/teaching-good-web-design-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/73c8ab129a1c66994d28253ed8bf2f53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">misatakashino</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2010/10/colorwheel.jpg" medium="image">
			<media:title type="html">colorwheel</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2010/10/complementary1.jpg" medium="image">
			<media:title type="html">complementary</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2010/10/analogous.jpg" medium="image">
			<media:title type="html">analogous</media:title>
		</media:content>
	</item>
		<item>
		<title>Teaching Good Web Design: Part 1</title>
		<link>http://webtide.wordpress.com/2010/10/12/teaching-good-web-design-part-1/</link>
		<comments>http://webtide.wordpress.com/2010/10/12/teaching-good-web-design-part-1/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 16:08:52 +0000</pubDate>
		<dc:creator>Lisa Sandy</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=779</guid>
		<description><![CDATA[How do you teach design? When I first tackled this project that’s immediately what popped into my head. After that came the crushing knowledge that design is such a massive collection of culture and history that I could not possibly teach all of that in one year much less one lesson. Pushing all thoughts of “It’s impossible!” out of my mind, I decided to focus on a different question. Forget about the art, the color theory, the stylistic implementation of items, and answer one thing- What makes a design good? Once I put all of that away, good design became a lot easier to teach. <a href="http://webtide.wordpress.com/2010/10/12/teaching-good-web-design-part-1/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=779&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>How do you teach design?</p>
<p>When I first tackled this project that’s immediately what popped into my head. After that came the crushing knowledge that design is such a massive collection of culture and history that I could not possibly teach all of that in one year much less one lesson. Pushing all thoughts of “It’s impossible!” out of my mind, I decided to focus on a different question. Forget about the art, the color theory, the stylistic implementation of items, and answer one thing- What makes a design good? Once I put all of that away, good design became a lot easier to teach.</p>
<p>So some of you may be thinking, if you take out the art, what’s left of design? The framework. Your layout is a very important feature in design. Positioning elements, arranging their size and working with their shape, helps to provide a flow to your design which in turn guides the viewer’s eye along the page.  A bad design takes no notice of the notion that things have a certain hierarchy within a page. A good design starts with a great base and so to further that, I’m going to tell you about the principles of art.</p>
<p>There are eight principles of art, each one helping your design achieve greatness. Carefully consider these within your layout frame.</p>
<h2>‘Principles of Art’ used in a framework design</h2>
<p><strong>Emphasis</strong> – Use emphasis by placing your most important items in larger areas higher up on your page. Consider how we read (left to right) and place an important object on the left so that the eye spots it first.</p>
<p><strong>Balance</strong> – Use different areas with the same visual weight in area to create a sense of balance to your layout.</p>
<p><strong>Harmony</strong> &#8211;  When a certain amount of space is reserved for a certain thing, make sure that every time that thing is brought up on the page is has that amount of space. This will allow the viewer to associate better between the two instances as belonging to the same subject matter and therefore creates harmony.</p>
<p><strong>Variety</strong> – In some areas, place things a bit differently to create a bit of uniqueness. Take a big space and split it into two smaller shapes. This allows for variety, yet still retains balance.</p>
<p><strong>Movement</strong> – Remember how a person’s eye moves through your design. You can make their eye start from anywhere- but a good design will keep the eye moving in a fluid motion over your design. A bad design is too confusing and doesn’t have any sense of flow.</p>
<p><strong>Rhythm </strong>– This deals with consistency. Remember that you want the eye to move and rest on certain elements. Blank space and area sizing can help you accomplish this- just make sure the page carries the rhythm throughout the design.</p>
<p><strong>Proportion or Scale</strong> – This is used mainly for importance. Consider which objects deserve the most attention in your layout. They should be in a bigger space/area when you’re planning your design.</p>
<p><strong>Unity</strong> – Once your layout is complete it should look like everything belongs together. The overall structure should not look awkward or stranded at any point.</p>
<p>In <a href="http://webtide.wordpress.com/2010/10/21/teaching-good-web-design-part-2/">part 2</a>, you&#8217;ll learn more about the looks of a site and the Elements of Design. This will help you to add a presentable face to your framework.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/779/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=779&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/10/12/teaching-good-web-design-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/73c8ab129a1c66994d28253ed8bf2f53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">misatakashino</media:title>
		</media:content>
	</item>
		<item>
		<title>How to make custom page templates in WordPress</title>
		<link>http://webtide.wordpress.com/2010/10/05/how-to-make-custom-page-templates-in-wordpress/</link>
		<comments>http://webtide.wordpress.com/2010/10/05/how-to-make-custom-page-templates-in-wordpress/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 14:32:54 +0000</pubDate>
		<dc:creator>Milton Brian Jones</dc:creator>
				<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=698</guid>
		<description><![CDATA[In this article, we&#8217;re looking at how to set up custom page templates in WordPress. The benefit of using custom page templates is that they allow you to basically build standard web pages that pull their content from the WordPress &#8230; <a href="http://webtide.wordpress.com/2010/10/05/how-to-make-custom-page-templates-in-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=698&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In this article, we&#8217;re looking at how to set up custom page templates in WordPress. The benefit of using custom page templates is that they allow you to basically build standard web pages that pull their content from the WordPress database. That means the content can be updated by non-technical users through a web form on the WordPress Admin Panel.</p>
<p>When you publish a page in WordPress, the page.php template is used by default. Certainly you can modify page.php as much as you like, but sometimes you want to design something different from this default template. Custom page templates enable you to design dynamic pages that differ from the standard page.php template. You can build and deploy as many of these as you like, so once you understand them, it really opens up a lot of options to customize your WordPress site to meet the needs of your organization.</p>
<p>There&#8217;s no point re-inventing the wheel, and lots of good information about this is available in the WordPress Codex. The best place to start for this topic is on the <a href="http://codex.wordpress.org/Pages">Pages entry</a>. I would recommend reading that entire page and probably checking out some of the other pages linked from there, but here is one important excerpt to get us going:</p>
<blockquote><p>WordPress can be configured to use different Page Templates for different Pages. Toward the bottom of the Write &gt; Page administration panel (or on the sidebar, depending on which version of WordPress you are using) is a drop-down labeled <em>Page Template</em>. From there you can select which Template will be used when displaying this particular Page.</p></blockquote>
<p>So, how do you create one of these page templates? Remember that all page template files in WordPress are PHP files, so if you wanted to create a custom page template for a page called Contact, you would start by setting up a file called contact.php. Technically, the only PHP that you <em>must</em> include in this page goes right at the top, where you identify contact.php as the page template with the name of Contact. The code looks like this:</p>
<p><pre class="brush: php;">
&lt;?php
/*
Template Name: Contact
*/
?&gt;
</pre></p>
<p>Once you&#8217;ve put that at the top of the contact.php file and uploaded the file, the Contact template (contact.php) will be available for you as a template whenever you create a page in the WordPress Admin Panel. All the page templates that are available will be shown in a dropdown menu to the right of the post box on the Add Page screen in a box labeled Attributes under Templates.</p>
<p><img class="alignright size-full wp-image-722" title="Screenshot of WordPress page template dropdown menu" src="http://webtide.files.wordpress.com/2010/09/wp-page-template-dropdown.gif?w=584" alt="Screenshot of WordPress page template dropdown menu"   />I&#8217;ve included a screenshot here of what that dropdown menu looks like. In this example, there are several custom templates to choose from.</p>
<p>We mentioned earlier that the only PHP you technically must have in a custom page template is the snippet above with the <em>Template Name: Contact</em> line in it. The reason that is true is because with that PHP included, the rest of any custom template <em>could</em> be static HTML if you wanted it to be. In practice, you&#8217;ll probably often want to be able to add and update content dynamically through the WordPress Admin Panel so there will be additional PHP, but that is not a requirement for a custom page template.</p>
<p>If you do want users to be able to add content for each page in the WP Admin Panel, how do you tell your template where and how to display that content within your custom page template? You do that by including <a href="http://codex.wordpress.org/The_Loop">The Loop</a> in your custom page template. There are lots of ways you can style the content from the loop, but here is a very basic version of it:</p>
<p><pre class="brush: php;">
&lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;

	&lt;?php the_title(); ?&gt;

	&lt;?php the_content(); ?&gt;

&lt;?php endwhile; endif; ?&gt;
</pre></p>
<p>The above version of the loop doesn&#8217;t include any extra CSS hooks and only displays the title and the content for the given page. There are lots of other things you could include such as <em><a href="http://codex.wordpress.org/Template_Tags/the_excerpt">the_excerpt</a></em> and <em><a href="http://codex.wordpress.org/Template_Tags/the_permalink">the_permalink</a></em>.</p>
<p>One thing that might be confusing about the loop in the context of pages is the use of the term post in The Loop. You might be thinking that <a href="http://webtide.wordpress.com/2010/09/09/using-wordpress-as-a-non-blog-cms-understanding-the-difference-between-posts-and-pages/">pages are different from posts in WordPress</a> so why are we looking for posts in the PHP here?</p>
<p>Pages are indeed different from posts in WordPress, but as far as how they are treated in the WordPress database structure and the way they are called in The Loop, pages are, in that context, a type of post.</p>
<p>Now that we&#8217;re using The Loop to display the content for the given page into our custom page template, we can put whatever we want to put around this content. That means our page can have a standard heading or banner at the top and a footer at the bottom, or basically anything else that you can code up. You can also use more WordPress template tags such as <em><a href="http://codex.wordpress.org/Function_Reference/get_header">get_header</a></em> and <em><a href="http://codex.wordpress.org/Function_Reference/get_footer">get_footer</a></em> to make including that kind of thing more modular.</p>
<p>Once you get used to building and using custom page templates, it becomes relatively straightforward to use WordPress to manage content on almost any type of page you can design.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/698/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=698&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/10/05/how-to-make-custom-page-templates-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/83fd7794d23b5b3518fbeb59c7c2f2ff?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">MBJ</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2010/09/wp-page-template-dropdown.gif" medium="image">
			<media:title type="html">Screenshot of WordPress page template dropdown menu</media:title>
		</media:content>
	</item>
		<item>
		<title>UA WordPress Theme: Update Notifications</title>
		<link>http://webtide.wordpress.com/2010/09/13/ua-wordpress-theme-update-notifications/</link>
		<comments>http://webtide.wordpress.com/2010/09/13/ua-wordpress-theme-update-notifications/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 18:44:13 +0000</pubDate>
		<dc:creator>Matthew Muro</dc:creator>
				<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=749</guid>
		<description><![CDATA[One problem with using a custom WordPress theme that doesn&#8217;t reside in the WordPress.org Themes Directory is that you don&#8217;t have many options for notifying users there is an update available.  If you installed a theme from the directory, WordPress &#8230; <a href="http://webtide.wordpress.com/2010/09/13/ua-wordpress-theme-update-notifications/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=749&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>One problem with using a custom WordPress theme that doesn&#8217;t reside in the <a href="http://wordpress.org/extend/themes/">WordPress.org Themes Directory</a> is that you don&#8217;t have many options for notifying users there is an update available.  If you installed a theme from the directory, WordPress uses a built-in function to inform you that updates are available (see <a href="http://codex.wordpress.org/Dashboard_Updates_SubPanel">Dashboard Updates SubPanel on the Codex</a>).</p>
<p>So, how does an external theme or plug-in notify a user?  Perhaps you maintain a blog and post your updates there.  Or, you could hope that your blog RSS feed is enough.  You could also have people subscribe to an email list and let them know that way.   All of these are fine methods and some we even use here.  But, the fundamental problem is that it assumes a user of your theme actively follows or is subscribed, in some way, to your blog.  Ideally, the best way to inform a user is through the WordPress Dashboard.</p>
<p>Since we presently cannot hook into the core WordPress function for theme/plug-in updates, the only way is to code your own method.  Luckily, this isn&#8217;t as hard as it might seem.</p>
<p>The <a href="http://codex.wordpress.org/Adding_Administration_Menus#Using_Wrapper_Functions">add_dashboard_page </a>function allows you to easily add a sub-level page under the top-level Dashboard menu item.  From this page, you can read in data from a file on your server (this file can be RSS, XML, TXT, or whatever) and perform a check against the installed theme.  If you are running an out-of-date theme, an update notification will appear in the sidebar and the page offers a download button to grab the latest version.</p>
<p>Here&#8217;s what that looks like:</p>
<p><a href="http://webtide.files.wordpress.com/2010/09/ua-theme-updates-e280b9-my-wordpress-site-e28094-wordpress_1284398406420.png"><img class="aligncenter size-full wp-image-750" title="UA Theme Updates ‹ My WordPress Site — WordPress_1284398406420" src="http://webtide.files.wordpress.com/2010/09/ua-theme-updates-e280b9-my-wordpress-site-e28094-wordpress_1284398406420.png?w=584" alt=""   /></a></p>
<p>Hopefully, WordPress will open up their API for theme/plug-in updates to externally hosted files in the future.  Until that time, though, this will have to do.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/749/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=749&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/09/13/ua-wordpress-theme-update-notifications/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/29653b4cd79fd57441baa9eac32010f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mmuro</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2010/09/ua-theme-updates-e280b9-my-wordpress-site-e28094-wordpress_1284398406420.png" medium="image">
			<media:title type="html">UA Theme Updates ‹ My WordPress Site — WordPress_1284398406420</media:title>
		</media:content>
	</item>
		<item>
		<title>Using WordPress as a non-blog CMS: Understanding the difference between posts and pages</title>
		<link>http://webtide.wordpress.com/2010/09/09/using-wordpress-as-a-non-blog-cms-understanding-the-difference-between-posts-and-pages/</link>
		<comments>http://webtide.wordpress.com/2010/09/09/using-wordpress-as-a-non-blog-cms-understanding-the-difference-between-posts-and-pages/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 16:15:12 +0000</pubDate>
		<dc:creator>Milton Brian Jones</dc:creator>
				<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://webtide.wordpress.com/?p=695</guid>
		<description><![CDATA[WordPress used to be thought of more as blogging software than a Content Management System. Fortunately, more and more people are beginning to appreciate the flexibility of WordPress to manage more traditional website content. However, if you are new to &#8230; <a href="http://webtide.wordpress.com/2010/09/09/using-wordpress-as-a-non-blog-cms-understanding-the-difference-between-posts-and-pages/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=695&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>WordPress used to be thought of more as blogging software than a Content Management System. Fortunately, more and more people are beginning to appreciate the flexibility of WordPress to manage more traditional website content. However, if you are new to WordPress, it may not be completely obvious to you how to handle the non-blog content within the context of WordPress.</p>
<p>I think the key to understanding how to use WordPress as a CMS for a traditional website is to understand the 2 main types of content that can be written in WordPress: posts and pages.</p>
<p>The basic difference is that posts are used for blog entries or articles while pages are used for what we might think of as more permanent (though not necessarily static) content in a traditional website.</p>
<p>Here is how the difference between posts and pages is described on the <a href="http://codex.wordpress.org/Pages">WordPress Codex entry for Pages</a>:</p>
<blockquote><p>In WordPress, you can write either posts or pages. When you&#8217;re writing a regular blog entry, you write a post. Posts automatically appear in reverse chronological order on your blog&#8217;s home page. Pages, on the other hand, are for content such as &#8220;About Me,&#8221; &#8220;Contact Me,&#8221; etc. Pages live outside of the normal blog chronology, and are often used to present information about yourself or your site that is somehow timeless &#8211; information that is always applicable. You can use Pages to organize and manage any amount of content.</p></blockquote>
<p>So, if you think about a typical blog, the main index will usually show the first couple of paragraphs of 5 or 6 recent posts, and then you can click a Read More link to view the full blog post. In WordPress, whenever you are looking at a single, full blog post by itself, the template that WordPress uses is a file called <em>single.php</em>. On the other hand, the template that controls the traditional pages we&#8217;ve been talking about is called <em>page.php</em>.</p>
<p><img class="alignnone size-full wp-image-704" title="WordPress Posts and Pages Admin Panel Screenshot" src="http://webtide.files.wordpress.com/2010/09/wp-post-pages-screenshot.jpg?w=584" alt="WordPress Posts and Pages Admin Panel Screenshot"   /></p>
<p>It&#8217;s important to understand a little bit about <a href="http://codex.wordpress.org/Templates">WordPress template files</a> at this point. A WordPress theme is a collection of files that allows you to customize the look (and to some extent structure and behavior) or your WordPress site. The theme is made up of PHP files called templates, which define how various content types are displayed on that particular WordPress theme.</p>
<p>The number of templates you include in your theme (or that will be included in themes you download/purchase) can vary, but most any theme will have a <em>page.php</em> template for pages and a <em>single.php</em> template for posts.</p>
<p>WordPress templates are similar to most other types of templates that you might be familiar with. The template defines what certain parts of a document will look like, and leaves at least one area open for editable content, which is added via the WordPress admin panel.</p>
<p>If you want a 7-page traditional website where 5 of the pages are the same but 2 are different, WordPress allows you to build custom templates such that different pages use different templates. In other words, all of your pages do not have to use <em>page.php</em>. For example, you could have 5 pages that use <em>page.php</em> and then set up additional custom templates for pages that require different layouts, functionality, etc.</p>
<p>With this setup, you can easily build a non-blog centered website with content managed through WordPress. It&#8217;s just a matter of defining any page templates you need and then entering content through the Pages module in the WordPress admin panel.</p>
<p>Defining and designing the templates is not much different from how you would design and build a static website. You can (and probably will) use PHP and or other dynamic components such as WordPress <a href="http://codex.wordpress.org/Template_Tags">template tags</a>, but there&#8217;s also nothing stopping you from building the templates as essentially just standard HTML with a main menu and any other elements you want to include across your pages.</p>
<p><em>Note: The templates will always have to be .php files in the end, but in some cases the only part of the document that uses PHP will be the editable part where the page content goes. Technically, you can also build the page with no PHP or content area as long as you still save it as PHP, but that would mean the page wouldn&#8217;t be editable through the WordPress admin panel.</em></p>
<p>The step-by-step process of setting up custom page templates is beyond the scope of this article, but the purpose of this post was just to explain the different between posts and pages. Hopefully this helps you understand how the use of templates for pages as opposed to templates for posts is central to using WordPress as a CMS for a traditional website.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webtide.wordpress.com/695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webtide.wordpress.com/695/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webtide.wordpress.com&#038;blog=1692607&#038;post=695&#038;subd=webtide&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webtide.wordpress.com/2010/09/09/using-wordpress-as-a-non-blog-cms-understanding-the-difference-between-posts-and-pages/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/83fd7794d23b5b3518fbeb59c7c2f2ff?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">MBJ</media:title>
		</media:content>

		<media:content url="http://webtide.files.wordpress.com/2010/09/wp-post-pages-screenshot.jpg" medium="image">
			<media:title type="html">WordPress Posts and Pages Admin Panel Screenshot</media:title>
		</media:content>
	</item>
	</channel>
</rss>
