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

<channel>
	<title>nate jones interactive &#187; wordpress</title>
	<atom:link href="http://pixelydo.com/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://pixelydo.com</link>
	<description>interactive design with a dash of social media expertise</description>
	<lastBuildDate>Mon, 14 Nov 2011 14:01:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Digital Signage with WordPress</title>
		<link>http://pixelydo.com/flatscreens/</link>
		<comments>http://pixelydo.com/flatscreens/#comments</comments>
		<pubDate>Sun, 26 Jun 2011 15:16:26 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[front]]></category>
		<category><![CDATA[cheap digital signage]]></category>
		<category><![CDATA[digital sign]]></category>
		<category><![CDATA[digital signage]]></category>
		<category><![CDATA[DIY digital signage]]></category>
		<category><![CDATA[flatscreen]]></category>
		<category><![CDATA[free digital signage]]></category>
		<category><![CDATA[sign]]></category>
		<category><![CDATA[signage]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=395</guid>
		<description><![CDATA[When the president of the Chicago campus of The Chicago School of Professional Psychology asked for flatscreen televisions to be hung by each of the elevators and in gathering spaces, most people thought the difficult part would be getting a good price on the TVs.]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:</strong>It&rsquo;s now on <a href="https://github.com/natejones/DigitalSignageWordpress">Github</a>.</p>
<p>When the president of the Chicago campus of The Chicago School of Professional Psychology asked for flatscreen televisions to be hung by each of the elevators and in gathering spaces, most people thought the difficult part would be getting a good price on the TVs.</p>
<p>
<blockquote>
<p>You won&#8217;t be able to afford digital signage technology.</p>
</blockquote>
<p>The school is also host to an international institute that focuses on marketing messages; specifically digital signage. They were thrilled that the school was going to jump onto the technology, but were stuck on the cost of existing platforms.</p>
<p>The real challenge was dropped on my plate at the end of a status meeting. I was pumped!</p>
<p>&ldquo;The flatscreens are happening. Can you design a layout? <em>And make it sustainable to manage?</em>&rdquo;</p>
<p><a class="fancy" href="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens0.png"><img src="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens0-150x150.png" alt="" title="flatscreens0" width="150" height="150" class="alignnone size-thumbnail wp-image-422" /></a><a href="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens1.png" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens1-150x150.png" alt="" title="flatscreens1" width="150" height="150" class="alignnone size-thumbnail wp-image-423" /></a><a class="fancy" href="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens21.jpg"><img src="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens21-150x150.jpg" alt="" title="flatscreens2" width="150" height="150" class="alignnone size-thumbnail wp-image-424" /></a><a class="fancy" href="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens31.jpg"><img src="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens31-150x150.jpg" alt="" title="flatscreens3" width="150" height="150" class="alignnone size-thumbnail wp-image-425" /></a></p>
<hr />
<h2>I turned to WordPress</h2>
<p>But I knew it needed a strict structure, people couldn&#8217;t be expected to adhere on their own.</p>
<p>The entire screen is filled with carousel that, using @malsup&#8217;s <a href="http://jquery.malsup.com/cycle/">jQuery Cycle Plugin</a>, displays a single post for 18 seconds at a time. There&rsquo;s also a dock at the bottom of the page with four dynamic sidebars that are driven by <a href="http://www.gmarwaha.com/jquery/jcarousellite/">jCarouselLite</a>.</p>
<ul>
<li>the <a href="http://wordpress.org/extend/plugins/more-fields/" target="_blank">More Fields plugin</a> allowed me to add the specific fields I would need:
<ul>
<li>background color</li>
<li>subhead</li>
<li>web address</li>
<li>image</li>
<li>image alignment</li>
<li><a href="http://nathangjones.com/wp-content/uploads/2011/03/post.png" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2011/03/post-150x150.png" alt="" title="post" width="150" height="150" class="alignnone size-thumbnail wp-image-426" /></a></li>
</ul>
</li>
<li>the <a href="http://wordpress.org/extend/plugins/cool-weather/" target="_blank">Weather plugin</a> could be customized for Chicago (<a href="#functions">more details on this later</a>)</li>
<li>the school uses Google calendars, so the <a href="http://wordpress.org/extend/plugins/wordpress-ics-importer/" target="_blank">ICS Calendar plugin</a> pulled in the ICS feed for a scrolling list of events</li>
<li>for a little local color, the <a href="http://wordpress.org/extend/plugins/kb-advanced-rss-widget/" target="_blank">KB Advanced RSS plugin</a> scrolled the great events listed on <a href="http://gapersblock.com/" target="_blank">GapersBlock</a></li>
<li>the <a href="http://wordpress.org/extend/plugins/qr-code-widget/" target="_blank">QR Code Tag plugin</a> automatically generates a QR code for a specified URL</li>
<li>because the design breaks on smaller screens, the <a href="http://wordpress.org/extend/plugins/wordpress-mobile-edition/" target="_blank">WordPress Mobile Edition plugin</a> allowed for mobile visitors to not feel left out</li>
<li>since none of the events are evergreen, the <a href="http://wordpress.org/extend/plugins/post-expirator/" target="_blank">Post Expirator plugin</a> does just what it says</li>
<li>I also built a simple current time plugin (<a href="#time">more on this later</a>)</li>
</ul>
<p><a name="functions"></a></p>
<h2>Let&#8217;s start with functions.php</h2>
<p>The first is fairly straightforward about setting up five sidebars. Yes, five. In order to get the time and weather to not remain the same from when the browser started in the morning, the <em>sidebar</em> sidebar doesn&#8217;t appear on the page directly, but appears in an iFramed house of mirrors.<sup><a href="#weather">1</a></sup></p>
<p>We&#8217;re just registering new sidebars, naming them, giving the title an H3 and a link.</p>
<pre class="brush: php; title: ; notranslate">if ( function_exists('register_sidebar') )
register_sidebar(array('name'=&gt;'sidebar',
          'before_widget' =&gt; '&lt;div&gt;',
          'after_widget' =&gt; '&lt;/div&gt;',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://www.weather.com/weather/today/Chicago+IL+USIL0225?lswe=Chicago,%20IL&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
register_sidebar(array('name' =&gt; 'DockLeft',
          'before_widget' =&gt; '&lt;div&gt;',
          'after_widget' =&gt; '&lt;/div&gt;',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://www.weather.com/weather/today/Chicago+IL+USIL0225?lswe=Chicago,%20IL&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
register_sidebar(array('name' =&gt; 'DockCenter',
          'before_widget' =&gt; '',
          'after_widget' =&gt; '',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://ego.thechicagoschool.edu&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
register_sidebar(array('name' =&gt; 'DockRight',
          'before_widget' =&gt; '',
          'after_widget' =&gt; '',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://gapersblock.com/&quot; target=&quot;_blank&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
register_sidebar(array('name' =&gt; 'DockFarRight',
          'before_widget' =&gt; '&lt;div&gt;',
          'after_widget' =&gt; '&lt;/div&gt;',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://www.thechicagoschool.edu/content.cfm/academic_calendar&quot; target=&quot;_blank&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));</pre>
<p>After the sidebars are registered, we want to get rid of WordPress&#8217; pesky automatic adding of paragraphs to widgets.</p>
<pre class="brush: xml; title: ; notranslate">remove_filter ('the_content', 'wpautop');</pre>
<p>Finally, we need to be able to get all of the data entered into those additional structured fields</p>
<pre class="brush: php; title: ; notranslate">function get_custom_field_value($szKey, $bPrint = false) {
     global $post;
     $szValue = get_post_meta($post-&gt;ID, $szKey, true);
     if ( $bPrint == false ) return $szValue; else echo $szValue;
}
</pre>
<p>We&#8217;re left with this as functions.php</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
if ( function_exists('register_sidebar') )
register_sidebar(array('name'=&gt;'sidebar',
          'before_widget' =&gt; '&lt;div&gt;',
          'after_widget' =&gt; '&lt;/div&gt;',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://www.weather.com/weather/today/Chicago+IL+USIL0225?lswe=Chicago,%20IL&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
register_sidebar(array('name' =&gt; 'DockLeft',
          'before_widget' =&gt; '&lt;div&gt;',
          'after_widget' =&gt; '&lt;/div&gt;',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://www.weather.com/weather/today/Chicago+IL+USIL0225?lswe=Chicago,%20IL&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
register_sidebar(array('name' =&gt; 'DockCenter',
          'before_widget' =&gt; '',
          'after_widget' =&gt; '',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://ego.thechicagoschool.edu&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
register_sidebar(array('name' =&gt; 'DockRight',
          'before_widget' =&gt; '',
          'after_widget' =&gt; '',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://gapersblock.com/&quot; target=&quot;_blank&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
register_sidebar(array('name' =&gt; 'DockFarRight',
          'before_widget' =&gt; '&lt;div&gt;',
          'after_widget' =&gt; '&lt;/div&gt;',
          'before_title' =&gt; '&lt;h3&gt;&lt;a href=&quot;http://www.thechicagoschool.edu/content.cfm/academic_calendar&quot; target=&quot;_blank&quot;&gt;',
          'after_title' =&gt; '&lt;/a&gt;&lt;/h3&gt;',
));
remove_filter ('the_content', 'wpautop');
function get_custom_field_value($szKey, $bPrint = false) {
     global $post;
     $szValue = get_post_meta($post-&gt;ID, $szKey, true);
     if ( $bPrint == false ) return $szValue; else echo $szValue;
}
?&gt;</pre>
<p><a name="header"></a></p>
<h2>Next, tackle header.php</h2>
<p>This content would be changing regularly and needed to appear fresh as close to immediately as possible, so I added a meta refresh on every hour. Also, a meta nocache.</p>
<pre class="brush: xml; title: ; notranslate"> &lt;meta http-equiv=&quot;refresh&quot; content=&quot;3600&quot;&gt;
     &lt;meta http-equiv=&quot;pragma&quot; content=&quot;nocache&quot;&gt;</pre>
<p>jQuery is called from Google, and <a href="http://jquery.malsup.com/cycle/">jQuery Cycle Plugin</a> and <a href="http://www.gmarwaha.com/jquery/jcarousellite/">jCarouselLite</a> are called immediately after.</p>
<pre class="brush: xml; title: ; notranslate">&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
     &lt;script type=&quot;text/javascript&quot; src=&quot;&lt;?php bloginfo('stylesheet_directory'); ?&gt;/scripts/jquery.cycle.all.js&quot;&gt;&lt;/script&gt;
     &lt;script src=&quot;&lt;?php bloginfo('stylesheet_directory'); ?&gt;/scripts/jcarousellite_1.0.1c4.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>Next, the settings for the main windown and the three scrolling sidebars on the dock are set.</p>
<pre class="brush: xml; title: ; notranslate">     &lt;script type=&quot;text/javascript&quot;&gt;
          $(document).ready(function(){
               $('#myslides').cycle({
                    fx: 'fade',
                    speed: 1000,
                    timeout: 18000
               });
               $(&quot;.scroll&quot;).jCarouselLite({
                    vertical: true,
                    hoverPause:false,
                    visible: 1,
                    auto:9000,
                    speed:500
               });
               $(&quot;.scroll2&quot;).jCarouselLite({
                    vertical: true,
                    hoverPause:false,
                    visible: 2,
                    auto:11000,
                    speed:500
               });
               $(&quot;.scroll3&quot;).jCarouselLite({
                    vertical: true,
                    hoverPause:false,
                    visible: 2,
                    auto:7000,
                    speed:500
               });
          });
     &lt;/script&gt;
</pre>
<p>That leaves us with this:</p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
     &lt;meta charset=&quot;utf-8&quot; /&gt;
     &lt;meta http-equiv=&quot;refresh&quot; content=&quot;3600&quot;&gt;
     &lt;meta http-equiv=&quot;pragma&quot; content=&quot;nocache&quot;&gt;
     &lt;title&gt;&lt;?php bloginfo('name'); ?&gt;&lt;/title&gt;
     &lt;meta name=&quot;description&quot; content=&quot;&lt;?php bloginfo('description'); ?&gt;&quot; /&gt;
     &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;&lt;?php bloginfo('stylesheet_url'); ?&gt;&quot; /&gt;
     &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
     &lt;script type=&quot;text/javascript&quot; src=&quot;&lt;?php bloginfo('stylesheet_directory'); ?&gt;/scripts/jquery.cycle.all.js&quot;&gt;&lt;/script&gt;
     &lt;script src=&quot;&lt;?php bloginfo('stylesheet_directory'); ?&gt;/scripts/jcarousellite_1.0.1c4.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
     &lt;script type=&quot;text/javascript&quot;&gt;
          $(document).ready(function(){
               $('#myslides').cycle({
                    fx: 'fade',
                    speed: 1000,
                    timeout: 18000
               });
               $(&quot;.scroll&quot;).jCarouselLite({
                    vertical: true,
                    hoverPause:false,
                    visible: 1,
                    auto:9000,
                    speed:500
               });
               $(&quot;.scroll2&quot;).jCarouselLite({
                    vertical: true,
                    hoverPause:false,
                    visible: 2,
                    auto:11000,
                    speed:500
               });
               $(&quot;.scroll3&quot;).jCarouselLite({
                    vertical: true,
                    hoverPause:false,
                    visible: 2,
                    auto:7000,
                    speed:500
               });
          });
     &lt;/script&gt;
          &lt;?php wp_head() ?&gt;
&lt;/head&gt;
&lt;body&gt;</pre>
<p><a name="home"></a></p>
<h2>Home.php is next</h2>
<p>I was on a real <em>home.php</em> kick at the time, but there&#8217;s no reason why index.php wouldn&#8217;t work for this as well. It&#8217;s probably smarter that way anyway.</p>
<p>First things first; call header.php</p>
<pre class="brush: xml; title: ; notranslate">&lt;?php get_header() ?&gt;</pre>
<p>Next, the big part. We&#8217;ll build out the slideshow. Get the posts, order them randomly and call the <em>background color</em> field to set the class for the wrapper.</p>
<pre class="brush: xml; title: ; notranslate">&lt;div id=&quot;myslides&quot;&gt;
          &lt;?php query_posts(&quot;orderby=rand&quot;); $i = 1;  ?&gt;
          &lt;?php while (have_posts()) : the_post(); ?&gt;
               &lt;div class=&quot;&lt;?php $key=&quot;background&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&quot;&gt;
</pre>
<p>Next, call the <em>post title</em>, <em>subhead</em> field and <em>image</em> field. Call the <em>image alignment</em> field to set the class of the image. Finally, call the content of the post</p>
<pre class="brush: xml; title: ; notranslate">
&lt;h1&gt;&lt;?php the_title() ?&gt;&lt;/h1&gt;
&lt;h2&gt;&lt;?php $key=&quot;subhead&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;&lt;?php $key=&quot;image&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&quot; class=&quot;&lt;?php $key=&quot;imagealign&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&quot; /&gt;
&lt;?php the_content(); ?&gt;&lt;/p&gt;
</pre>
<p>Now, the fun part&mdash;create the QR code on the fly, by calling the <em>web address</em> field.</p>
<pre class="brush: xml; title: ; notranslate">&lt;p class=&quot;url&quot;&gt;
&lt;img src=&quot;&lt;?php $key=&quot;webaddress&quot;;
  global $qrcodetag;
  echo $qrcodetag-&gt;getQrCodeUrl(get_post_meta($post-&gt;ID, $key, true),248,'UTF-8','L',4,0);
?&gt;&quot; /&gt;
</pre>
<p>Tidy everything up.</p>
<pre class="brush: xml; title: ; notranslate">                    &lt;/div&gt;&lt;!--.container--&gt;
               &lt;/div&gt;&lt;!--color--&gt;
     &lt;?php endwhile; ?&gt;
     &lt;/div&gt;&lt;!--#myslides--&gt;
</pre>
<p>Now, on to the pseudo dock, where we have a little location message and call our sidebars.</p>
<pre class="brush: xml; title: ; notranslate">     &lt;div id=&quot;dock&quot;&gt;
     &lt;a href=&quot;http://ego.thechicagoschool.edu/&quot; class=&quot;youarehere&quot;&gt;The Chicago School, Chicago campus&lt;/a&gt;
          &lt;div class=&quot;dockleft&quot;&gt;
               &lt;?php if(function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar(DockLeft)) : ?&gt;
               &lt;?php endif; ?&gt;
          &lt;/div&gt; &lt;!-- .dockleft --&gt;
          &lt;div class=&quot;dockcenter&quot;&gt;
               &lt;?php if(function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar(DockCenter)) : ?&gt;
               &lt;?php endif; ?&gt;
          &lt;/div&gt; &lt;!-- .dockcenter --&gt;
          &lt;div class=&quot;dockright&quot;&gt;
               &lt;?php if(function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar(DockRight)) : ?&gt;
               &lt;?php endif; ?&gt;
          &lt;/div&gt; &lt;!-- .dockright --&gt;
          &lt;div class=&quot;dockfarright&quot;&gt;
               &lt;?php if(function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar(DockFarRight)) : ?&gt;
               &lt;?php endif; ?&gt;
          &lt;/div&gt; &lt;!-- .dockfarright --&gt;
     &lt;/div&gt; &lt;!-- #dock --&gt;
</pre>
<p>That leaves us with this for the home.php or index.php file</p>
<pre class="brush: xml; title: ; notranslate">&lt;?php get_header() ?&gt;

&lt;div id=&quot;myslides&quot;&gt;
          &lt;?php query_posts(&quot;orderby=rand&quot;); $i = 1;  ?&gt;
          &lt;?php while (have_posts()) : the_post(); ?&gt;
               &lt;div class=&quot;&lt;?php $key=&quot;background&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&quot;&gt;
                    &lt;div class=&quot;container&quot;&gt;
                         &lt;h1&gt;&lt;?php the_title() ?&gt;&lt;/h1&gt;
                         &lt;h2&gt;&lt;?php $key=&quot;subhead&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&lt;/h2&gt;
                         &lt;p&gt;&lt;img src=&quot;&lt;?php $key=&quot;image&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&quot; class=&quot;&lt;?php $key=&quot;imagealign&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&quot; /&gt;
                              &lt;?php the_content(); ?&gt;&lt;/p&gt;
&lt;p class=&quot;url&quot;&gt;
&lt;img src=&quot;&lt;?php $key=&quot;webaddress&quot;;
  global $qrcodetag;
  echo $qrcodetag-&gt;getQrCodeUrl(get_post_meta($post-&gt;ID, $key, true),248,'UTF-8','L',4,0);
?&gt;&quot; /&gt;
                    &lt;/div&gt;&lt;!--.container--&gt;
               &lt;/div&gt;&lt;!--color--&gt;
     &lt;?php endwhile; ?&gt;
     &lt;/div&gt;&lt;!--#myslides--&gt;
     &lt;div id=&quot;dock&quot;&gt;
     &lt;a href=&quot;http://ego.thechicagoschool.edu/&quot; class=&quot;youarehere&quot;&gt;&lt;img class=&quot;ted&quot; src=&quot;http://full/path/to/wp-content/uploads/Ted-Rubenstein1.jpg&quot; /&gt; Dr. Ted Rubenstein, 1964-2010&lt;/a&gt;
          &lt;div class=&quot;dockleft&quot;&gt;
               &lt;?php if(function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar(DockLeft)) : ?&gt;
               &lt;?php endif; ?&gt;
          &lt;/div&gt; &lt;!-- .dockleft --&gt;
          &lt;div class=&quot;dockcenter&quot;&gt;
               &lt;?php if(function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar(DockCenter)) : ?&gt;
               &lt;?php endif; ?&gt;
          &lt;/div&gt; &lt;!-- .dockcenter --&gt;
          &lt;div class=&quot;dockright&quot;&gt;
               &lt;?php if(function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar(DockRight)) : ?&gt;
               &lt;?php endif; ?&gt;
          &lt;/div&gt; &lt;!-- .dockright --&gt;
          &lt;div class=&quot;dockfarright&quot;&gt;
               &lt;?php if(function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar(DockFarRight)) : ?&gt;
               &lt;?php endif; ?&gt;
          &lt;/div&gt; &lt;!-- .dockfarright --&gt;
     &lt;/div&gt; &lt;!-- #dock --&gt;
&lt;?php get_footer() ?&gt;</pre>
<p><a name="time"></a></p>
<h2>Current Time plugin</h2>
<p>After looking and looking for a current time plugin that displayed exactly how I needed, I gave up and decided to write my own simple plugin for it. Look up your <a href="http://php.net/manual/en/timezones.php">PHP timezone</a>, and you&#8217;ll be all set.</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
/*
Plugin Name: Current Time
Plugin URI: http://nathangjones.com/
Description: Current Time WordPress Plugin
Author: nate jones
Version: 1
Author URI: http://nathangjones.com/
*/

function currentTime()
{
     date_default_timezone_set('America/Chicago');
     $time = date(&quot;g:i a&quot;);
     $date = date(&quot;M j&quot;);
     echo '&lt;span class=&quot;time&quot;&gt;';
     echo $time;
     echo '&lt;/span&gt;';
     echo '&lt;br /&gt;';
     echo '&lt;span class=&quot;date&quot;&gt;';
     echo $date;
     echo '&lt;/span&gt;';
}

function widget_currentTime($args) {
  extract($args);
  echo $before_widget;
  echo $before_title;?&gt;&lt;?php echo $after_title;
  currentTime();
  echo $after_widget;
}

function currentTime_init()
{
  register_sidebar_widget(__('Current Time'), 'widget_currentTime');
}
add_action(&quot;plugins_loaded&quot;, &quot;currentTime_init&quot;);
?&gt;</pre>
<p><a name="weather"></a></p>
<h2>iFrame house of mirrors</h2>
<p>As I mentioned before, displaying weather and time wasn&#8217;t a big deal. The big deal was that they&#8217;d only be accurate for the first minute of the day. I&#8217;m sure there&#8217;s a more elegant way to conduct this business, I was just stumped and found this to work for me.</p>
<p><strong>Enter the house of mirrors</strong></p>
<p>We already created the sidebar, but it&#8217;s just not displayed on the screen. So we&#8217;ll create <em>weather.html</em> and iFrame in that sidebar. Then we&#8217;ll iframe weather.html in our dock, and set it to refresh every minute. Unnecessarily complicated, no? First, let&#8217;s call the stylesheet and jQuery</p>
<pre class="brush: xml; title: ; notranslate">&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;full/path/to/style.css&quot; /&gt;
     &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>Next, for a hint of simplicity, we&#8217;ll duplicate the same DIVs that appear in the WordPress site.</p>
<pre class="brush: xml; title: ; notranslate">&lt;dock id=&quot;dockleft&quot;&gt;
     &lt;div&gt;
          &lt;div class=&quot;textwidget&quot;&gt;
               &lt;iframe src=&quot;http://full/path/to/left-dock/&quot; scrolling=&quot;no&quot; height=&quot;100%&quot; widht=&quot;100%&quot; style=&quot;height:100%; width:100%; background:transparent; border:none;&quot;&gt;&lt;/iframe&gt;
          &lt;/div&gt;
     &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Finally, to make the incessant refreshing of content appear a little less obvious and more refined, let&#8217;s ease it in and out</p>
<pre class="brush: xml; title: ; notranslate">&lt;script&gt;
var refreshId = setInterval(function()
{
      $('#dockleft').fadeOut(&quot;fast&quot;).load('http://full/path/to/left-dock/').fadeIn(&quot;fast&quot;);
}, 15000);
&lt;/script&gt;</pre>
<p>That leaves us here for weather.html</p>
<pre class="brush: xml; title: ; notranslate">&lt;html&gt;
&lt;head&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://full/path/to/style.css&quot; /&gt;
     &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;script&gt;
var refreshId = setInterval(function()
{
      $('#dockleft').fadeOut(&quot;fast&quot;).load('http://full/path/to/left-dock/').fadeIn(&quot;fast&quot;);
}, 15000);
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;dock id=&quot;dockleft&quot;&gt;
     &lt;div&gt;
          &lt;div class=&quot;textwidget&quot;&gt;
               &lt;iframe src=&quot;http://full/path/to/left-dock/&quot; scrolling=&quot;no&quot; height=&quot;100%&quot; widht=&quot;100%&quot; style=&quot;height:100%; width:100%; background:transparent; border:none;&quot;&gt;&lt;/iframe&gt;
          &lt;/div&gt;
     &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;</pre>
<p><a name="footer"></a></p>
<h2>Footer</h2>
<p>Nothing to see here. Just closing up the wrapper</p>
<pre class="brush: xml; title: ; notranslate">     &lt;div class=&quot;footer&quot;&gt;
          &lt;?php wp_footer() ?&gt;
     &lt;/div&gt;&lt;!-- footer --&gt;
     &lt;/div&gt;&lt;!-- wrapper --&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><a name="widgets"></a></p>
<h2>Placing the widgets into their respective sidebars</h2>
<p>Drag the <em>Weather</em> and <em>Current Time</em> widgets into the <em>sidebar</em> sidebar. Then a text widget into the <em>DockLeft</em> sidebar to iframe in <em>weather.html</em></p>
<pre class="brush: xml; title: ; notranslate">&lt;iframe src=&quot;http://full/path/to/weather.html&quot; scrolling=&quot;no&quot; height=&quot;100%&quot; widht=&quot;100%&quot; style=&quot;height:100%; width:100%; background:transparent;&quot;&gt;&lt;/iframe&gt;</pre>
<p><a href="http://nathangjones.com/wp-content/uploads/2011/03/widgets.png" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2011/03/widgets-150x150.png" alt="" title="widgets" width="150" height="150" class="alignnone size-thumbnail wp-image-427" /></a></p>
<p><a name="css"></a></p>
<h2>Finally, some style</h2>
<p>CSS is my favorite thing to do. It&#8217;s how I decompress and relax.</p>
<p>First the architecture, with one tiny trick. The TVs would be using Chrome to display the site in full-screen. The only problem was that they automatically put the cursor dead-center on the screen, which is a sure give away that it&#8217;s a website. So we replace the cursor with an image; a 98% transparent PNG. </p>
<pre class="brush: css; title: ; notranslate">
html{
height:100%;
margin:0;
padding:0;
width:100%;
background:transparent;
}
* {
margin:0;
padding:0;
}
a:link, a:visited, a:hover, a:active{
outline:none;
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
}
body{
padding:0;
height:100%;
width:100%;
background:transparent;
text-align:left;
overflow:hidden;
cursor: url(images/blank.png), default;
}</pre>
<p>Next, the fonts and content.</p>
<pre class="brush: css; title: ; notranslate">@font-face {
     font-family: 'TradeGothicLTStdLight';
     src: url('fonts/TradeGothicLTStd-Light.eot');
     src: local('fonts/Trade Gothic LT Std'), local('fonts/TradeGothicLTStd-Light'), url('fonts/TradeGothicLTStd-Light.woff') format('woff'), url('fonts/TradeGothicLTStd-Light.ttf') format('truetype');
}

@font-face {
     font-family: 'TradeGothicLTStdRegular';
     src: url('fonts/TradeGothicLTStd.eot');
     src: local('fonts/Trade Gothic LT Std'), local('fonts/TradeGothicLTStd'), url('fonts/TradeGothicLTStd.woff') format('woff'), url('fonts/TradeGothicLTStd.ttf') format('truetype');
}

@font-face {
     font-family: 'TradeGothicLTStdBold';
     src: url('fonts/TradeGothicLTStd-Bold.eot');
     src: local('fonts/Trade Gothic LT Std'), local('fonts/TradeGothicLTStd-Bold'), url('fonts/TradeGothicLTStd-Bold.woff') format('woff'), url('fonts/TradeGothicLTStd-Bold.ttf') format('truetype');
}

#myslides h1{
font:normal 500 4.5em 'TradeGothicLTStdBold';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:block;
margin:2% 0 0 2%;
}
#myslides h2{
font:normal 500 3.5em 'TradeGothicLTStdRegular';
color:#d8d8d8;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:block;
margin:1% 2%;
clear:left;
}
#myslides p{
font:normal 500 2.5em 'TradeGothicLTStdRegular';
color:#ccc;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:block;
margin:1% 2%;
clear:left;
width:90%;
}
#myslides p.url{
font:normal 500 1.5em 'TradeGothicLTStdRegular';
color:#ccc;
text-shadow:0px 1px 1px #2b2b2b;
display:block;
position:absolute;
bottom:6%;
right:2%;
/*-- float:right;
margin:2% 2% 1% 2%;
clear:left; --*/
width:90%;
text-align:right;
}
#myslides p.url a, p.url a:visited{
font:normal 500 1em 'TradeGothicLTStdRegular';
color:#ccc;
text-shadow:0px 1px 1px #2b2b2b;
display:inline;
margin:1% 2%;
width:90%;
text-decoration:none;
}
#myslides p.url a:hover{
text-decoration:underline;
}
#myslides p.url img{
width:10%;
margin:0;
vertical-align: bottom;
}
img.Left, img.left{
box-shadow:0px 0px 12px rgba(0,0,0,.5);
-moz-box-shadow:0px 0px 12px rgba(0,0,0,.5);
-webkit-box-shadow:0px 0px 12px rgba(0,0,0,.5);
border-radius:7px;
-moz-border-radius:7px;
-webkit-border-radius:7px;
float:left;
display:inline;
margin:1%;
text-decoration:none;
outline:none;
width:30%;
max-height: 50%;
}
img.Right, img.right{
box-shadow:0px 0px 12px rgba(0,0,0,.5);
-moz-box-shadow:0px 0px 12px rgba(0,0,0,.5);
-webkit-box-shadow:0px 0px 12px rgba(0,0,0,.5);
border-radius:7px;
-moz-border-radius:7px;
-webkit-border-radius:7px;
float:right;
display:inline;
margin:1%;
text-decoration:none;
outline:none;
width:30%;
max-height:50%;
}</pre>
<p>Now, some styles that are specific to main post. Including the background color of the sllides.</p>
<pre class="brush: css; title: ; notranslate">div#myslides{
height:100%;
width:100%;
position:relative;
overflow:hidden;
clear:both;
}
div#myslides div{
height:100%;
width:100%;
float:left;
display:block;
clear:both;
position:relative;
}
div#myslides div.container{
max-height:85%;
width:100%;
position:absolute;
top:0;
left:0;
background:transparent;
}
div#myslides div.Brown{
background:url(background/brown.jpg) 0 0 repeat-x;
}
div#myslides div.Darkblue, div#myslides div.DarkBlue{
background:url(background/darkblue.jpg) 0 0 repeat-x;
}
div#myslides div.Green{
background:url(background/green.jpg) 0 0 repeat-x;
}
div#myslides div.Lightblue{
background:url(background/lightblue.jpg) 0 0 repeat-x;
}
div#myslides div.Orange{
background:url(background/orange.jpg) 0 0 repeat-x;
}
div#myslides div.Purple{
background:url(background/purple.jpg) 0 0 repeat-x;
}
div#myslides div.Red{
background:url(background/red.jpg) 0 0 repeat-x;
}</pre>
<p>Next up, the dock.</p>
<pre class="brush: css; title: ; notranslate">#dock{
position:absolute;
z-index:99;
bottom:0;
left:0;
height:20%;
width:100%;
background:-webkit-gradient(linear, left top, left bottom, from(rgba(137,137,137,0.8)), to(rgba(54,54,54,0.8)), color-stop(.3,#333333));
background: -moz-linear-gradient(bottom, rgba(137,137,137,0.8), rgba(54,54,54,0.8));
box-shadow:-2px 0px 12px rgba(0,0,0,.6);
-moz-box-shadow:-2px 0px 12px rgba(0,0,0,.6);
-webkit-box-shadow:-2px 0px 12px rgba(0,0,0,.6);
border-top-left-radius:18px;
-moz-border-radius-topleft:18px;
-webkit-border-top-left-radius:18px;
border-top-right-radius:18px;
-moz-border-radius-topright:18px;
-webkit-border-top-right-radius:18px;
}
#dock div{
float:left;
display:inline;
border-right:dotted .11em #fff;
height:95%;
margin:5px 1% 0 0;
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
padding:0 1%;
overflow:hidden;
}
#dock div.dockleft{
padding-left:2%;
width:8%;
height:100%;
}
#dock div.dockcenter{
width:26%;
height:100%;
}
#dock div.dockright{
width:26%;
height:100%;
}
#dock div.dockfarright{
width:26%;
border-right:none;
height:100%;
}
#dock div div{
width:100%;
border:none;
height:100%;
margin:0;
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
padding:0 1%;
}
#dock img{
padding:1%;
}
#dock h3, #pagesidebar h3{
font:normal 500 2.2em 'TradeGothicLTStdBold';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:block;
margin:0 0 5px 0;
line-height:1em;
}
#dock span.temp, #pagesidebar span.temp{
font:normal 500 200% 'TradeGothicLTStdRegular';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:inline;
margin:1% 2%;
}
h3 span.addy{
clear:none;
font:normal 500 40% 'TradeGothicLTStdRegular';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
display:inline;
float:right;
margin:1.3em 0 0 4em;
}
#dock ul, #pagesidebar ul{
list-style:none;
width:100%;
float:left;
display:block;
font:normal 500 1.6em 'TradeGothicLTStdRegular';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
}
#dock ul li, #pagesidebar ul li{
margin:0 0 .1em 0;
padding-bottom:10px;
}
#dock a, #dock a:visited, #pagesidebar a, #pagesidebar a:visited{
text-decoration:none;
}
#dock a:hover, #pagesidebar a:hover{
text-decoration:underline;
}
#dock .youarehere, #dock a.youarehere:visited{
font:normal 500 1.7em 'TradeGothicLTStdLight';
color:#ccc;
text-shadow:0px 1px 1px #2b2b2b;
text-decoration:none;
display:inline;
position:absolute;
top:-33%;
left:2%;
background:transparent;
width:33%;
}
#dock a.youarehere:hover{
color:#1A1A1A;
text-shadow:0px 1px 1px #f4f4f4;
text-decoration:none;
background:#f4f4f4;
}
img.ted{
background:transparent;
text-decoration:none;
border-radius:7px;
-moz-border-radius:7px;
-webkit-border-radius:7px;
height:24%;
display:inline;
position:relative;
}
span.time, span.date{
font:normal 500 175% 'TradeGothicLTStdRegular';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:inline;
margin:0;
clear:left;
}
span.time{
border-top:dotted 1px #fff;
}</pre>
<p>Some styles for the ICS Calendar widget.</p>
<pre class="brush: css; title: ; notranslate">.scroll ul, .scroll2 ul, .scroll3 ul, .scroll ul li, .scroll2 ul li{
height:100%;
}
.scroll3 ul li, .scroll2 ul li{
height:40%;
}
ul#ics-calendar-widget{
width:100%;
list-style:none;
}
ul#ics-calendar-widget li.item{
font-family:'TradeGothicLTStdRegular';
}
ul#ics-calendar-widget li.item a{
font-family:'TradeGothicLTStdBold';
}
div.scroll ul li:first-line{
font-family:'TradeGothicLTStdBold';
}
span.tiny{
font:oblique 500 12px arial;
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
}
div.scroll3 ul li a, div.scroll2 ul li a, div.scroll ul li a{
font:500 1.2em 'TradeGothicLTStdBold';
}
#dock div.scroll3 ul li{
padding-bottom:5px;
}</pre>
<p>Finally, making the time &#038; weather look right.</p>
<pre class="brush: css; title: ; notranslate">#pagesidebar{
width:100%;
height:100%;
background:transparent;
display:block;
position:absolute;
top:0;
left:0;
border:none;
}
iframe{
background:transparent;
border:none;
}</pre>
<p>That leaves us here for the stylesheet.</p>
<pre class="brush: css; title: ; notranslate">
/*----------Architecture----------*/
html{
height:100%;
margin:0;
padding:0;
width:100%;
background:transparent;
}
* {
margin:0;
padding:0;
}
a:link, a:visited, a:hover, a:active{
outline:none;
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
}
body{
padding:0;
height:100%;
width:100%;
background:transparent;
text-align:left;
overflow:hidden;
cursor: url(images/blank.png), default;
}

/*----------CONTENT----------*/
@font-face {
     font-family: 'TradeGothicLTStdLight';
     src: url('fonts/TradeGothicLTStd-Light.eot');
     src: local('fonts/Trade Gothic LT Std'), local('fonts/TradeGothicLTStd-Light'), url('fonts/TradeGothicLTStd-Light.woff') format('woff'), url('fonts/TradeGothicLTStd-Light.ttf') format('truetype');
}

@font-face {
     font-family: 'TradeGothicLTStdRegular';
     src: url('fonts/TradeGothicLTStd.eot');
     src: local('fonts/Trade Gothic LT Std'), local('fonts/TradeGothicLTStd'), url('fonts/TradeGothicLTStd.woff') format('woff'), url('fonts/TradeGothicLTStd.ttf') format('truetype');
}

@font-face {
     font-family: 'TradeGothicLTStdBold';
     src: url('fonts/TradeGothicLTStd-Bold.eot');
     src: local('fonts/Trade Gothic LT Std'), local('fonts/TradeGothicLTStd-Bold'), url('fonts/TradeGothicLTStd-Bold.woff') format('woff'), url('fonts/TradeGothicLTStd-Bold.ttf') format('truetype');
}

#myslides h1{
font:normal 500 4.5em 'TradeGothicLTStdBold';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:block;
margin:2% 0 0 2%;
}
#myslides h2{
font:normal 500 3.5em 'TradeGothicLTStdRegular';
color:#d8d8d8;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:block;
margin:1% 2%;
clear:left;
}
#myslides p{
font:normal 500 2.5em 'TradeGothicLTStdRegular';
color:#ccc;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:block;
margin:1% 2%;
clear:left;
width:90%;
}
#myslides p.url{
font:normal 500 1.5em 'TradeGothicLTStdRegular';
color:#ccc;
text-shadow:0px 1px 1px #2b2b2b;
display:block;
position:absolute;
bottom:6%;
right:2%;
/*-- float:right;
margin:2% 2% 1% 2%;
clear:left; --*/
width:90%;
text-align:right;
}
#myslides p.url a, p.url a:visited{
font:normal 500 1em 'TradeGothicLTStdRegular';
color:#ccc;
text-shadow:0px 1px 1px #2b2b2b;
display:inline;
margin:1% 2%;
width:90%;
text-decoration:none;
}
#myslides p.url a:hover{
text-decoration:underline;
}
#myslides p.url img{
width:10%;
margin:0;
vertical-align: bottom;
}
img.Left, img.left{
box-shadow:0px 0px 12px rgba(0,0,0,.5);
-moz-box-shadow:0px 0px 12px rgba(0,0,0,.5);
-webkit-box-shadow:0px 0px 12px rgba(0,0,0,.5);
border-radius:7px;
-moz-border-radius:7px;
-webkit-border-radius:7px;
float:left;
display:inline;
margin:1%;
text-decoration:none;
outline:none;
width:30%;
max-height: 50%;
}
img.Right, img.right{
box-shadow:0px 0px 12px rgba(0,0,0,.5);
-moz-box-shadow:0px 0px 12px rgba(0,0,0,.5);
-webkit-box-shadow:0px 0px 12px rgba(0,0,0,.5);
border-radius:7px;
-moz-border-radius:7px;
-webkit-border-radius:7px;
float:right;
display:inline;
margin:1%;
text-decoration:none;
outline:none;
width:30%;
max-height:50%;
}

/*----------SLIDER----------*/
div#myslides{
height:100%;
width:100%;
position:relative;
overflow:hidden;
clear:both;
}
div#myslides div{
height:100%;
width:100%;
float:left;
display:block;
clear:both;
position:relative;
}
div#myslides div.container{
max-height:85%;
width:100%;
position:absolute;
top:0;
left:0;
background:transparent;
}
div#myslides div.Brown{
background:url(background/brown.jpg) 0 0 repeat-x;
}
div#myslides div.Darkblue, div#myslides div.DarkBlue{
background:url(background/darkblue.jpg) 0 0 repeat-x;
}
div#myslides div.Green{
background:url(background/green.jpg) 0 0 repeat-x;
}
div#myslides div.Lightblue{
background:url(background/lightblue.jpg) 0 0 repeat-x;
}
div#myslides div.Orange{
background:url(background/orange.jpg) 0 0 repeat-x;
}
div#myslides div.Purple{
background:url(background/purple.jpg) 0 0 repeat-x;
}
div#myslides div.Red{
background:url(background/red.jpg) 0 0 repeat-x;
}

/*----------DOCK----------*/
#dock{
position:absolute;
z-index:99;
bottom:0;
left:0;
height:20%;
width:100%;
background:-webkit-gradient(linear, left top, left bottom, from(rgba(137,137,137,0.8)), to(rgba(54,54,54,0.8)), color-stop(.3,#333333));
background: -moz-linear-gradient(bottom, rgba(137,137,137,0.8), rgba(54,54,54,0.8));
box-shadow:-2px 0px 12px rgba(0,0,0,.6);
-moz-box-shadow:-2px 0px 12px rgba(0,0,0,.6);
-webkit-box-shadow:-2px 0px 12px rgba(0,0,0,.6);
border-top-left-radius:18px;
-moz-border-radius-topleft:18px;
-webkit-border-top-left-radius:18px;
border-top-right-radius:18px;
-moz-border-radius-topright:18px;
-webkit-border-top-right-radius:18px;
}
#dock div{
float:left;
display:inline;
border-right:dotted .11em #fff;
height:95%;
margin:5px 1% 0 0;
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
padding:0 1%;
overflow:hidden;
}
#dock div.dockleft{
padding-left:2%;
width:8%;
height:100%;
}
#dock div.dockcenter{
width:26%;
height:100%;
}
#dock div.dockright{
width:26%;
height:100%;
}
#dock div.dockfarright{
width:26%;
border-right:none;
height:100%;
}
#dock div div{
width:100%;
border:none;
height:100%;
margin:0;
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
padding:0 1%;
}
#dock img{
padding:1%;
}
#dock h3, #pagesidebar h3{
font:normal 500 2.2em 'TradeGothicLTStdBold';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:block;
margin:0 0 5px 0;
line-height:1em;
}
#dock span.temp, #pagesidebar span.temp{
font:normal 500 200% 'TradeGothicLTStdRegular';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:inline;
margin:1% 2%;
}
h3 span.addy{
clear:none;
font:normal 500 40% 'TradeGothicLTStdRegular';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
display:inline;
float:right;
margin:1.3em 0 0 4em;
}
#dock ul, #pagesidebar ul{
list-style:none;
width:100%;
float:left;
display:block;
font:normal 500 1.6em 'TradeGothicLTStdRegular';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
}
#dock ul li, #pagesidebar ul li{
margin:0 0 .1em 0;
padding-bottom:10px;
}
#dock a, #dock a:visited, #pagesidebar a, #pagesidebar a:visited{
text-decoration:none;
}
#dock a:hover, #pagesidebar a:hover{
text-decoration:underline;
}
#dock .youarehere, #dock a.youarehere:visited{
font:normal 500 1.7em 'TradeGothicLTStdLight';
color:#ccc;
text-shadow:0px 1px 1px #2b2b2b;
text-decoration:none;
display:inline;
position:absolute;
top:-33%;
left:2%;
background:transparent;
width:33%;
}
#dock a.youarehere:hover{
color:#1A1A1A;
text-shadow:0px 1px 1px #f4f4f4;
text-decoration:none;
background:#f4f4f4;
}
span.time, span.date{
font:normal 500 175% 'TradeGothicLTStdRegular';
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
float:left;
display:inline;
margin:0;
clear:left;
}
span.time{
border-top:dotted 1px #fff;
}
/*----------GCAL----------*/
.scroll ul, .scroll2 ul, .scroll3 ul, .scroll ul li, .scroll2 ul li{
height:100%;
}
.scroll3 ul li, .scroll2 ul li{
height:40%;
}
ul#ics-calendar-widget{
width:100%;
list-style:none;
}
ul#ics-calendar-widget li.item{
font-family:'TradeGothicLTStdRegular';
}
ul#ics-calendar-widget li.item a{
font-family:'TradeGothicLTStdBold';
}
div.scroll ul li:first-line{
font-family:'TradeGothicLTStdBold';
}
span.tiny{
font:oblique 500 12px arial;
color:#fff;
text-shadow:0px 1px 1px #2b2b2b;
}
div.scroll3 ul li a, div.scroll2 ul li a, div.scroll ul li a{
font:500 1.2em 'TradeGothicLTStdBold';
}
#dock div.scroll3 ul li{
padding-bottom:5px;
}

/*----------WEATHER/TIME----------*/
#pagesidebar{
width:100%;
height:100%;
background:transparent;
display:block;
position:absolute;
top:0;
left:0;
border:none;
}
iframe{
background:transparent;
border:none;
}</pre>
<h2>Security</h2>
<p>Also, because I&#8217;m paranoid, I installed these security plugins and have a 50-character password safely generated by <a href="http://agilewebsolutions.com/onepassword" target="_blank">1Password</a></p>
<ul>
<li>Audit Trail</li>
<li>Invisible Defender</li>
<li>Login LockDown</li>
<li>Secure WordPress</li>
<li>WP Security Scan</li>
<li>WordPress Database Backup</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/flatscreens/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>WordPress Digital Signage</title>
		<link>http://pixelydo.com/wordpress-digital-signage/</link>
		<comments>http://pixelydo.com/wordpress-digital-signage/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 19:35:28 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[cheap digital signage]]></category>
		<category><![CDATA[digital sign]]></category>
		<category><![CDATA[digital signage]]></category>
		<category><![CDATA[DIY digital signage]]></category>
		<category><![CDATA[flatscreen]]></category>
		<category><![CDATA[free digital signage]]></category>
		<category><![CDATA[sign]]></category>
		<category><![CDATA[signage]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=465</guid>
		<description><![CDATA[When the president of the Chicago campus of The Chicago School of Professional Psychology asked for flatscreen televisions to be hung by each of the elevators and in gathering spaces, most people thought the difficult part would be getting a good price on the TVs. You won&#8217;t be able to afford digital signage technology. The [...]]]></description>
			<content:encoded><![CDATA[<p>When the president of the Chicago campus of The Chicago School of Professional Psychology asked for flatscreen televisions to be hung by each of the elevators and in gathering spaces, most people thought the difficult part would be getting a good price on the TVs.</p>
<p>
<blockquote>
<p>You won&#8217;t be able to afford digital signage technology.</p>
</blockquote>
<p>The school is also host to an international institute that focuses on marketing messages; specifically digital signage. They were thrilled that the school was going to jump onto the technology, but were stuck on the cost of existing platforms.</p>
<p>The real challenge was dropped on my plate at the end of a status meeting.</p>
<p>&ldquo;The flatscreens are happening. Can you design a layout? <em>And make it sustainable to manage?</em>&rdquo;</p>
<p>The digital signs are displayed on at least 15 52&#8243; televisions in two buildings that run Chrome in full-screen. Each post is displayed for 18 seconds, and a dock at the bottom of the screen displays the time, weather, local events, academic events &amp; campus events.</p>
<p>I wrote an <a href="/flatscreens/">entirely too long blog post</a> that spells out each step and aspect of the entire operation.</p>
<p><a class="fancy" href="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens0.png"><img src="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens0-150x150.png" alt="" title="flatscreens0" width="150" height="150" class="alignnone size-thumbnail wp-image-422" /></a><a href="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens1.png" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens1-150x150.png" alt="" title="flatscreens1" width="150" height="150" class="alignnone size-thumbnail wp-image-423" /></a><a class="fancy" href="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens21.jpg"><img src="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens21-150x150.jpg" alt="" title="flatscreens2" width="150" height="150" class="alignnone size-thumbnail wp-image-424" /></a><a class="fancy" href="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens31.jpg"><img src="http://nathangjones.com/wp-content/uploads/2011/03/flatscreens31-150x150.jpg" alt="" title="flatscreens3" width="150" height="150" class="alignnone size-thumbnail wp-image-425" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/wordpress-digital-signage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AAM Hartford 2010</title>
		<link>http://pixelydo.com/aam-hartford-2010/</link>
		<comments>http://pixelydo.com/aam-hartford-2010/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 16:21:15 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=132</guid>
		<description><![CDATA[The Association of Anglican Musicians was bringing their 2010 conference to Hartford, Connecticut. The conference committee wanted to step up and use the web for more than posting PDFs.]]></description>
			<content:encoded><![CDATA[<p>The Association of Anglican Musicians was bringing their 2010 conference to Hartford, Connecticut. The conference committee wanted to step up and use the web for more than posting PDFs. This site allows for online registration, superfast updates and it&#8217;s just plain prettier + cheekier. It&#8217;s also dovetailed with an active presence on Twitter and Facebook.</p>
<p><a href="http://nathangjones.com/wp-content/uploads/2009/07/aam.jpg" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2009/07/aam-150x150.jpg" alt="" title="aam" width="150" height="150" class="alignnone size-thumbnail wp-image-133" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/aam-hartford-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Latino Mental Health Providers Network</title>
		<link>http://pixelydo.com/latino-mental-health-providers-network/</link>
		<comments>http://pixelydo.com/latino-mental-health-providers-network/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 20:27:56 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[buddypress]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[member directory]]></category>
		<category><![CDATA[membership directory]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=459</guid>
		<description><![CDATA[The Latino Mental Health Providers Network at The Chicago School of Professional Psychology (LMHPN) had a lofty goal of unifying and creating a community of mental health practitioners who serve Latino/a populations in Chicago. Armed with a grant from The Chicago Community Trust, they planned various forms of outreach, including budgeting $130,000 for a website [...]]]></description>
			<content:encoded><![CDATA[<p>The Latino Mental Health Providers Network at The Chicago School of Professional Psychology (LMHPN) had a lofty goal of unifying and creating a community of mental health practitioners who serve Latino/a populations in Chicago.</p>
<p>Armed with a grant from The Chicago Community Trust, they planned various forms of outreach, including budgeting $130,000 for a website and online directory.</p>
<p>After having an initial interactive branding meeting with them, I asked for a few days to see what I could whip up.</p>
<p>Combining the open source WordPress with its outstanding BuddyPress plugin gave me much of the functionality that was needed. After a few tweaks to emphasize the member searching and downplay the blogging, I presented the concept to the LMHPN leadership, and they were thrilled.</p>
<p><a href="http://nathangjones.com/wp-content/uploads/2011/03/lmhpn.png" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2011/03/lmhpn-150x150.png" alt="" title="lmhpn" width="150" height="150" class="alignnone size-thumbnail wp-image-460" /></a></p>
<p>I put in some more time in customizing the theme and training content owners, and the site was ready to launch&mdash;ahead of schedule. Oh yeah, and for free.</p>
<p>They put that $130,000 into other means of community service &amp; outreach.</p>
<p>The site features statics content pages, an expanded registration page and a search that queries the members&#8217; specializations, locations, populations served &#038; interests.</p>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/latino-mental-health-providers-network/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Santa Barbara Graduate Institute</title>
		<link>http://pixelydo.com/santa-barbara-graduate-institute/</link>
		<comments>http://pixelydo.com/santa-barbara-graduate-institute/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 04:37:16 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=285</guid>
		<description><![CDATA[The Santa Barbara Graduate Institute had a severely outdated site built on static HTML pages. After it joined up with The Chicago School, I designed their new site and built it on WordPress. p.s. the rotating ads and amazing new logo are the work of kelli langdon]]></description>
			<content:encoded><![CDATA[<p>The Santa Barbara Graduate Institute had a severely outdated site built on static HTML pages. After it joined up with The Chicago School, I designed their new site and built it on WordPress.</p>
<p><a href="http://nathangjones.com/wp-content/uploads/2009/12/sbgi.edu-screen-capture-2011-3-7-14-2-22.png" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2009/12/sbgi.edu-screen-capture-2011-3-7-14-2-22-150x150.png" alt="" title="sbgi.edu screen capture 2011-3-7-14-2-22" width="150" height="150" class="alignnone size-thumbnail wp-image-450" /></a></p>
<p><em>p.s. the rotating ads and amazing new logo are the work of </em><a href="http://fertrue.com/"><em>kelli langdon</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/santa-barbara-graduate-institute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ashland Montessori School</title>
		<link>http://pixelydo.com/ashland-montessori-school/</link>
		<comments>http://pixelydo.com/ashland-montessori-school/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 01:13:12 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=199</guid>
		<description><![CDATA[The Ashland Montessori School needed a completely new presence and strategy for the web. I created a new logo, redesigned &#038; reorganized the web site and rewrote all the copy.]]></description>
			<content:encoded><![CDATA[<p>The Ashland Montessori School needed a completely new presence and strategy for the web. I created a new logo, redesigned &amp; reorganized the web site and rewrote all the copy. <a href="http://www.facebook.com/pages/Ashland-OH/Ashland-Montessori-School/104140431465">Facebook</a>, <a href="http://www.flickr.com/photos/40223422@N02/">Flickr</a> &amp; <a href="http://twitter.com/tweetessori">Twitter</a> accounts were created, and a message board &amp; emergency text message system were implemented.<br />
<a href="http://nathangjones.com/wp-content/uploads/2009/09/ashlandmontessori.jpg" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2009/09/ashlandmontessori-150x150.jpg" alt="" title="ashlandmontessori" width="150" height="150" class="alignnone size-thumbnail wp-image-200" /></a></p>
<p>I trained the teachers on both the technical and strategic aspects of creating new content for the site &amp; their social media accounts.</p>
<p><a href="http://ashlandmontessori.org/">http://ashlandmontessori.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/ashland-montessori-school/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Garfield Park Preparatory Academy</title>
		<link>http://pixelydo.com/garfield-park-preparatory-academy/</link>
		<comments>http://pixelydo.com/garfield-park-preparatory-academy/#comments</comments>
		<pubDate>Mon, 25 May 2009 04:24:13 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=41</guid>
		<description><![CDATA[Click here to visit the Garfield Park Preparatory Academy website The Chicago School teamed up with Chicago Public Schools on an ambitious and high-profile project to improve educational opportunities for children on the city’s west side and offer TCS students unique practicum and internship experiences. Garfield Park Preparatory Academy, a contract school opened in September [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong><a href="http://www.garfieldparkprep.org/" target="_blank">Click here to visit the Garfield Park Preparatory Academy website</a></strong></p></blockquote>
<p>The Chicago School teamed up with Chicago Public Schools on an ambitious and high-profile project to improve educational opportunities for children on the city’s west side and offer TCS students unique practicum and internship experiences.</p>
<p>Garfield Park Preparatory Academy, a contract school opened in September 2009, under CPS’ Renaissance 2010 initiative. The school will improve elementary education in unique and powerful ways and also leverage the talents of Chicago School faculty and graduate students.</p>
<p><a href="http://nathangjones.com/wp-content/uploads/2009/06/garpark.jpg" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2009/06/garpark-150x150.jpg" alt="" title="garpark" width="150" height="150" class="alignnone size-thumbnail wp-image-68" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/garfield-park-preparatory-academy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Chicago School Counseling Centers</title>
		<link>http://pixelydo.com/the-chicago-school-counseling-centers/</link>
		<comments>http://pixelydo.com/the-chicago-school-counseling-centers/#comments</comments>
		<pubDate>Mon, 25 May 2009 04:21:13 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=34</guid>
		<description><![CDATA[When The Chicago School acquired The California Graduate Institute, CGI&#8217;s Counseling Centers needed some web help. By redesigning the site reorganizing and freshening up the content, the Counseling Centers looked like they&#8217;re part of the family.]]></description>
			<content:encoded><![CDATA[<p>When The Chicago School acquired The California Graduate Institute, CGI&#8217;s Counseling Centers needed some web help. By redesigning the site reorganizing and freshening up the content, the Counseling Centers looked like they&#8217;re part of the family.</p>
<p><a href="http://nathangjones.com/wp-content/uploads/2009/06/counseling.jpg" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2009/06/counseling-150x150.jpg" alt="" title="counseling" width="150" height="150" class="alignnone size-thumbnail wp-image-67" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/the-chicago-school-counseling-centers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JoshGrimm.com</title>
		<link>http://pixelydo.com/joshgrimmcom/</link>
		<comments>http://pixelydo.com/joshgrimmcom/#comments</comments>
		<pubDate>Mon, 25 May 2009 04:19:25 +0000</pubDate>
		<dc:creator>@natejones</dc:creator>
				<category><![CDATA[portfolio]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://nathangjones.com/?p=31</guid>
		<description><![CDATA[Josh was finishing up his Ph.D. at Iowa and putting himself on the job market. He needed somewhere to show his credentials and personality.]]></description>
			<content:encoded><![CDATA[<p>Josh was finishing up his Ph.D. at Iowa and putting himself on the job market. He needed somewhere to show his credentials and personality.</p>
<p><a href="http://nathangjones.com/wp-content/uploads/2009/06/joshgrimm.jpg" class="fancy"><img src="http://nathangjones.com/wp-content/uploads/2009/06/joshgrimm-150x150.jpg" alt="" title="joshgrimm" width="150" height="150" class="alignnone size-thumbnail wp-image-71" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelydo.com/joshgrimmcom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

