<?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>Paul.Bagosy.Com</title>
	<atom:link href="http://paul.bagosy.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://paul.bagosy.com</link>
	<description></description>
	<lastBuildDate>Sun, 25 Jul 2010 13:42:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>New WordPress Widgets</title>
		<link>http://paul.bagosy.com/2010/07/25/new-wordpress-widgets/</link>
		<comments>http://paul.bagosy.com/2010/07/25/new-wordpress-widgets/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 13:42:20 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=894</guid>
		<description><![CDATA[Having been kicking around the exciting world of installing and customizing WordPress, I felt it was high time I launched myself into the even more exciting world of developing for WordPress.  And here&#8217;s what I&#8217;ve come up with: Recent User Posts Recent Category Posts Both of these are widgets that do basically the same thing, [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>Having been kicking around the exciting world of installing and customizing WordPress, I felt it was high time I launched myself into the even more exciting world of developing for WordPress.  And here&#8217;s what I&#8217;ve come up with:</p>
<p><a href="http://paul.bagosy.com/files/2010/07/recent-user-posts.1.0.zip" >Recent User Posts</a></p>
<p><a href="http://paul.bagosy.com/files/2010/07/recent-category-posts.1.0.zip" >Recent Category Posts</a></p>
<p>Both of these are widgets that do basically the same thing, so I&#8217;ll describe them together here.</p>
<p>In developing the new Wharton Magazine blog, we needed a widget to display the Editor&#8217;s most recent post.  I poked around for a bit, and realized that there really wasn&#8217;t a plugin to handle this, so the need for one was obvious.  After getting the basics down, I decided that it actually had more applications than just a single post, and started adding features.</p>
<p>So, the end result is two widgets.  Enter a title, select the user/category you want to display, enter the number of posts to display, and select if you want to display a link to the user/category and the time and date.  Not complicated to use and does just what it says it does.</p>
<p>Before I release it to the WordPress Plugins Codex, I&#8217;d like to see if anyone wants a shot at debugging or can offer any tips or suggestions.  Files are at the links above, and thanks in advance!</p>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/07/25/new-wordpress-widgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0</title>
		<link>http://paul.bagosy.com/2010/06/30/wordpress-3-0/</link>
		<comments>http://paul.bagosy.com/2010/06/30/wordpress-3-0/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 16:45:17 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PennridgeAlumni]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=890</guid>
		<description><![CDATA[I&#8217;m getting really drawn into WordPress and all its wonderful functionality, especially with the release of 3.0.  I retooled the back end of this site to run on WordPress MU a few months ago, because I run a few separate blogs and am in the process of expanding that for family members. I was happy [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>I&#8217;m getting really drawn into WordPress and all its wonderful functionality, especially with the release of 3.0.  I retooled the back end of this site to run on WordPress MU a few months ago, because I run a few separate blogs and am in the process of expanding that for family members.</p>
<p>I was happy to see that WordPress merged the base and MU codebases into one, fully-functional software package.  The upgrade wasn&#8217;t as smooth as I&#8217;d have liked it, but I guess they figure that if you&#8217;ve managed to install and maintain MU, you shouldn&#8217;t have a problem editing PHP and .htaccess files on your own (as opposed to automating what boils down to three lines of code).   Stupid me misread one of the steps and wound up with no images displaying sitewide for 24 hours, and wondering if I was going to have to re-import all of them.  Once I figured out my mistake, though, the problem seemed pretty trivial.  Other than that, installing and upgrading are remarkably simple.</p>
<p>WordPress has been getting better and better for the end user and administrator since I began using it about two years ago, and now that I&#8217;ve begun really getting into the heart of it, I&#8217;m really glad that the development has gone toward all of those things that I wish it did.  It&#8217;s like they&#8217;re reading my mind!</p>
<p>So, on the horizon are three projects that I&#8217;d love to tackle.  One is a freelance job that I&#8217;m hoping pans out, because it&#8217;s a site that I&#8217;d love to do.  The second is here at Wharton, which again, I&#8217;d love to do.  The third is a complete revamp of PennridgeAlumni.com, a site that I&#8217;ve been studiously avoiding for far, far too long.  Redoing it entirely in WordPress now seems like a possibility, and I&#8217;m already working on a development version of that.  Let&#8217;s see how far I get&#8230;</p>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/06/30/wordpress-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go Live &#8211; Alternate Universes</title>
		<link>http://paul.bagosy.com/2010/05/20/go-live-alternate-universes/</link>
		<comments>http://paul.bagosy.com/2010/05/20/go-live-alternate-universes/#comments</comments>
		<pubDate>Thu, 20 May 2010 15:38:14 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Web Sites]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=888</guid>
		<description><![CDATA[I was hoping to post a lot more go lives here, but I&#8217;ve changed jobs to a position at UPenn&#8217;s Wharton School of Business External Affairs, and I&#8217;m working mainly on internal projects. However, I&#8217;ve just completed a website for my Friendly Local Gaming Store, Alternate Universes. Alternate Universes had an existing website, but it [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>I was hoping to post a lot more go lives here, but I&#8217;ve changed jobs to a position at UPenn&#8217;s Wharton School of Business External Affairs, and I&#8217;m working mainly on internal projects.</p>
<p>However, I&#8217;ve just completed a website for my Friendly Local Gaming Store, <a href="http://alternateu.com/"  target="_blank">Alternate Universes</a>.</p>
<p><a href="http://alternateu.com/"  target="_blank"><img class="aligncenter size-full wp-image-879" title="Alternate Universes" src="http://paul.bagosy.com/wp-content/uploads/2010/05/alternate_universes.jpg" alt="Alternate Universes" width="600" height="400" /></a></p>
<p>Alternate Universes had an existing website, but it was built using static HTML that wasn&#8217;t very easy to update.  The new site uses WordPress as a CMS, offering much greater ease of updating, as well as being able to update multiple pages using a single post.  This allows for various pages to keep important content without the need to move content to those pages or clutter up the homepage for weeks or months.</p>
<p>Individual sub-pages are coded to include their related categories, allowing for general information for that page and a listing of pertinent posts.</p>
<p>The old site had an outdated calendar system, so I integrated Google Calendars using the <a rel="nofollow" href="http://code.google.com/p/wpng-calendar/"  target="_blank">wpng-calendar plugin</a> for the site&#8217;s sidebar, as well as a static instance of the full calendar.  This allows for much easier management and import of calendar data.</p>
<p>I converted the old phpBB3 forum to myBB, which was a bit more difficult than anticipated, even with a conversion app.  The app didn&#8217;t accurately convert the forum settings, which necessitated a lot of snooping around in the database to get everything matched up.  Once I found the broken relationships, though, it went rather quickly.  There were also a few glitches with forum caches and settings files needing to be rebuilt, but all-in-all, the structure converted quite nicely.  The new system will very aggressively tackle the issues they&#8217;d been having with Russian spambots filling their forum with Viagra ads and the like.</p>
<p>And finally, I get to take credit for the design.  I don&#8217;t tackle design very often, because this is about the best I&#8217;m capable of.</p>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/05/20/go-live-alternate-universes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tired of sanity? Learn to design and code email templates!</title>
		<link>http://paul.bagosy.com/2010/01/07/tired-of-sanity-learn-to-design-and-code-email-templates/</link>
		<comments>http://paul.bagosy.com/2010/01/07/tired-of-sanity-learn-to-design-and-code-email-templates/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 14:00:50 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=871</guid>
		<description><![CDATA[While sending an HTML email is basically like sending a webpage via email, designing and coding email templates is a wholly different beast than designing and coding a website. Email programs are essentially the Neanderthal cousins to the modern browser, but like their more modern, sleek, fire-wielding relatives, they all have their own horrid little [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>While sending an HTML email is basically like sending a webpage via email, designing and coding email templates is a wholly different beast than designing and coding a website.  Email programs are essentially the Neanderthal cousins to the modern browser, but like their more modern, sleek, fire-wielding relatives, they all have their own horrid little quirks that you need to be concerned with.</p>
<p><strong> Design:</strong> Now, we all know that designers love gradients and non-repeating background textures and non-Euclidean pattern fills and other things that drive developers absolutely batty, but in this case, developers have the advantage: <strong>EMAIL PROGRAMS DON’T DO BACKGROUND IMAGES</strong>.  Solid colors, folks.  That’s all you get.  That also means that any text blocks need to be a perfectly rectangular spaces with a single color behind it – no images bleeding into the text area.  <strong>NONE!</strong> It also means that dropshadows around expandable areas are right out, because they require a repeating background image.</p>
<p><strong>Coding.</strong> Coding a template is the HTML equivalent to speaking in Olde English &#8211; or conversing with your local Pikey.  Yes, it’s HTML and you’ll recognize some of it, but this is not what you’re used to.</p>
<p>For starters, scrap the &lt;html&gt; and &lt;body&gt; tags and everything in the &lt;head&gt; section.  Google hates ‘em.</p>
<p>Second, this is HTML 4.01 transitional.  Not XHTML.  And you don’t get to use &lt;div&gt; tags or style attributes.  That’s right, TABLES!</p>
<p>Third, you can’t use rowspans or colspans.  Now you’re not laughing so hard at that Neanderthal comment, are you?  Whoever came up with this system was wholly incapable of purchasing insurance online.</p>
<p>So, what does that leave you with?  Not much.  If you haven’t given the designer cause to hate you, you’ll probably have a nice two-column layout with a header and footer.  This means you need (at minimum) 5 tables:</p>
<p style="padding-left: 30px">1) The header table.  Since there’s no colspans, it has to be its own table.<br />
2) The body table, with two cells.<br />
3 and 4) The column tables, in body table cells 1 and 2.  You’ll need these for padding.<br />
5) The footer table.  Just like the header.</p>
<p>A note on padding:  Need 10 pixels of padding on just the left?  Best bet is to use another cell that&#8217;s 10 pixels wide and contains only blank.gif.</p>
<p>This is what your code is going to look like:</p>
<pre>&lt;table width="500" border="0" cellspacing="0" cellpadding="0"&gt;
 &lt;tr&gt;
  &lt;td width="500" height="100"&gt;&lt;img src="http://www.{DOMAIN}.com/images/newsletter_header.jpg" width="500" height="100" border="0"&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;table width="500" border="0" cellspacing="0" cellpadding="0"&gt;
 &lt;tr&gt;
  &lt;td width="250" bgcolor="#EEEEEE" valign="top"&gt;
   &lt;table width="250" border="0" cellspacing="0" cellpadding="10"&gt;
    &lt;tr&gt;
     &lt;td width="250"&gt;
      Lorem Ipsum!
     &lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
  &lt;/td&gt;
  &lt;td width="250" bgcolor="#CCCCCC" valign="top"&gt;
   &lt;table width="250" border="0" cellspacing="0" cellpadding="10"&gt;
    &lt;tr&gt;
     &lt;td width="250"&gt;
      Dolor Sit Amet!
     &lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;table width="500" border="0" cellspacing="0" cellpadding="0"&gt;
 &lt;tr&gt;
  &lt;td width="500" height="100"&gt;&lt;img src="http://www.{DOMAIN}.com/images/newsletter_footer.jpg" width="500" height="100" border="0"&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</pre>
<p>Yes, it&#8217;s a fun world of valign and bgcolor tags that will likely grant you the ability to see the small chittering things that lurk beneath your floorboards.  But wait!  There&#8217;s more!  In addition to a copy of our home game, you also get to use the &lt;FONT&gt; tag for the first time since Clinton was President!  Just a quick review of the syntax that no one will blame you for forgetting:</p>
<pre>&lt;font face="Arial, Helvetica, sans-serif" color="#333333" size="1"&gt;Please, why?&lt;/font&gt;</pre>
<p>As for the font sizes, well, you&#8217;re just going to have to play with it and see what works.</p>
<p>Finally, to summarize:</p>
<ol>
<li>No HTML head or body tags.</li>
<li>Besides that, make it compliant.</li>
<li>Tables tables tables.</li>
<li>No rowspan or colspan tags.</li>
<li>No style declarations whatsoever.</li>
<li>Tables within tables for padding.</li>
<li>Font tags.</li>
<li>Dogs and cats living together.</li>
<li>Mass hysteria.</li>
</ol>
<p>If you need a good example, Here&#8217;s the first BCASC newsletter code:</p>
<pre>&lt;table width="500" cellspacing="0" cellpadding="0" align="center"&gt;
 &lt;tr&gt;
  &lt;td&gt;
   &lt;table width="500" cellspacing="0" cellpadding="0"&gt;
    &lt;tr&gt;
     &lt;td width="500" height="86"&gt;&lt;img src="http://newsite.bcasc.org/images/newsletter_header.jpg" width="500" height="86" border="0" alt=""&gt;&lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
   &lt;table width="500" cellspacing="0" cellpadding="0"&gt;
    &lt;tr&gt;
     &lt;td width="4" height="41"&gt;&lt;img src="http://newsite.bcasc.org/images/newsletter_header_left.jpg" width="4" height="41" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="300" height="41" valign="bottom"&gt;
      &lt;table width="300" cellspacing="0" cellpadding="0"&gt;
       &lt;tr&gt;
        &lt;td width="10" height="41"&gt; &lt;/td&gt;
        &lt;td height="41"&gt;&lt;font face="Arial, Helvetica, sans-serif" size="3" color="#4B749E"&gt;Empowering Individuals, Creating Community&lt;/font&gt;&lt;/td&gt;
        &lt;td width="10" height="41"&gt; &lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;
     &lt;/td&gt;
     &lt;td width="192" height="41" valign="bottom" bgcolor="#E8EEF7"&gt;
      &lt;table width="192" cellspacing="0" cellpadding="0"&gt;
       &lt;tr&gt;
        &lt;td width="10" height="41"&gt; &lt;/td&gt;
        &lt;td&gt;&lt;font face="Arial, Helvetica, sans-serif" size="3" color="#D27904"&gt;Highlights&lt;/font&gt;&lt;/td&gt;
        &lt;td width="10" height="41"&gt; &lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;
     &lt;/td&gt;
     &lt;td width="4" height="41"&gt;&lt;img src="http://newsite.bcasc.org/images/newsletter_header_right.jpg" width="4" height="41" border="0" alt=""&gt;&lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
   &lt;table width="500" cellspacing="0" cellpadding="0"&gt;
    &lt;tr&gt;
     &lt;td width="1" bgcolor="#FAFAFA"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#F0F0F0"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#E2E2E2"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#CECECE"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="300" valign="top"&gt;
      &lt;table width="300" cellspacing="0" cellpadding="10"&gt;
       &lt;tr&gt;
        &lt;td&gt;
         &lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;
          Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi in nibh id diam varius laoreet id nec odio. Cras sed libero sed justo feugiat sodales in vitae nunc. Fusce non sem eget nunc luctus vulputate non a sem.&lt;br&gt;&lt;br&gt;
          Sed metus enim, rutrum at adipiscing a, tempor egestas orci. Nam ornare, eros ac aliquam accumsan, libero orci porta justo, non consequat erat erat interdum purus.&lt;br&gt;&lt;br&gt;
          Aenean in mi facilisis tortor sagittis pharetra. Morbi orci sem, fringilla ac viverra nec, pulvinar vitae mauris. Pellentesque sapien ligula, malesuada eu facilisis fringilla, rutrum sollicitudin magna.&lt;br&gt;&lt;br&gt;
          Imperdiet, orci sodales interdum sodales, tellus ligula malesuada odio, ac egestas enim mi ac odio. Ut nulla sem, posuere ac porttitor a, interdum ut nulla.
         &lt;/font&gt;
        &lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;
     &lt;/td&gt;
     &lt;td width="192" valign="top" bgcolor="#E8EEF7"&gt;
      &lt;table width="192" cellspacing="0" cellpadding="10"&gt;
       &lt;tr&gt;
        &lt;td&gt;
         &lt;ul&gt;
          &lt;li&gt;&lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;Nulla facilisi. Ut id sem erat. Donec lacinia porttitor arcu nec rutrum.&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;Proin varius venenatis ullamcorper. Vivamus ut nisl justo, at porttitor.&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;Nulla facilisi. Ut id sem erat. Donec lacinia porttitor arcu nec rutrum.&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;Proin varius venenatis ullamcorper.&lt;/font&gt;&lt;/li&gt;
         &lt;/ul&gt;
        &lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;
     &lt;/td&gt;
     &lt;td width="1" bgcolor="#CECECE"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#E2E2E2"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#F0F0F0"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#FAFAFA"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
   &lt;table width="500" cellspacing="0" cellpadding="0"&gt;
    &lt;tr&gt;
     &lt;td width="500" height="114"&gt;&lt;img src="http://newsite.bcasc.org/images/newsletter_footer.jpg" width="500" height="114" border="0" alt=""&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
     &lt;td width="500"&gt;
      &lt;font face="Arial, Helvetica, sans-serif" size="1" color="#444862"&gt;
       Address goes here&lt;br&gt;
       %%unsubscribe%%
      &lt;/font&gt;
     &lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</pre>
<p>I&#8217;m sure I could write an entire gripping Dean Koontz-style novel on this subject, but this should serve as a good starter guide.  Also, no one would want to read anything that resembled a Dean Koontz book, so I guess I&#8217;ve spared you that horror.  One horror per day is my limit, and learning to code an email template is pretty much akin to handing the keys to your brain to Cthulu and then drinking a gallon of Jolt Cola.  Enjoy!</p>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/01/07/tired-of-sanity-learn-to-design-and-code-email-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Content Swapping Portfolio</title>
		<link>http://paul.bagosy.com/2009/12/13/jquery-content-swapping-portfolio/</link>
		<comments>http://paul.bagosy.com/2009/12/13/jquery-content-swapping-portfolio/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 15:15:05 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=786</guid>
		<description><![CDATA[jQuery Swapping Portfolio Here&#8217;s a demo of everything I&#8217;m about to discuss. Recently, a number of clients have asked for an complex dynamic image-gallery-like page for a few different applications like portfolios and staff directories. The CMS I work with allows me to build a complex page for the client to load up with content, [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>jQuery Swapping Portfolio</p>
<p><a href="/jquery_portfolio/" target="_blank">Here&#8217;s a demo of everything I&#8217;m about to discuss.</a></p>
<div class="wp-caption aligncenter" style="width: 610px"><a href="http://paul.bagosy.com/jquery_portfolio/index.htm"  target="_blank"><img title="the musical stylings of Eerwyrm will revolt you." src="http://paul.bagosy.com/jquery_portfolio/images/main_thumbnail.jpg" alt="the musical stylings of Eerwyrm will revolt you." width="600" height="215" /></a><p class="wp-caption-text">the musical stylings of Eerwyrm will revolt you.</p></div>
<p>Recently, a number of clients have asked for an complex dynamic image-gallery-like page for a few different applications like portfolios and staff directories.  The CMS I work with allows me to build a complex page for the client to load up with content, but the front end is where all the magic happens.</p>
<p>The first of these sites featured an artistic design and required a portfolio for landscape projects, so I wanted to go with an elegant flowing effect. There are two primary element to this concept:  the navigation and the content.  The content itself can be further divided to images and text, both of which are important elements for this particular layout.</p>
<p>The navigation consits of two columns of thumbnails down the side (or wherever you need them &#8211; for this example they&#8217;re on the side).  They live in a div that&#8217;s floated to the right.  Here&#8217;s what that code looks like:</p>
<p>Each thumbnail is tied to a div which is given a different ID. (link_1, link_2, etc.).  In the script, we bind each of those IDs to a click event:</p>
<pre>	$('#link_1').bind('click', {id:'1'} ,clickHandler);
	$('#link_2').bind('click', {id:'2'} ,clickHandler);
	etc.</pre>
<p>When anything in that div is clicked, it fires the click event, aptly named clickHandler:</p>
<pre>	var clickHandler = function(link){
		$('.main').fadeOut().pause(250);
		$('#content').animate({"height": $('#main_' + link.data.id).height() + 20}, {duration: "slow"});
		$('#main_' + link.data.id).pause(250).fadeIn("slow");
	}</pre>
<p>Important safety tip: That pause() function is there to slow things down so fadeouts don&#8217;t cross:</p>
<pre>	$.fn.pause = function(duration) {
	    $(this).animate({ dummy: 1 }, duration);
	    return this;
	};</pre>
<p>Now, on the content side, it&#8217;s just a matter of stacking up DIVs with your content in them and giving each div a unique (and patterned with the same id structure as your thumbnail IDs) ID (main_1, main_2, etc.).  Granted, if you&#8217;ve got a lot of data, you&#8217;re probably better off with a system to import it via AJAX, but for this instance, we&#8217;re going to cover a smaller data set.</p>
<p>So, we&#8217;ve got our sidebar:</p>
<pre>&lt;div id="sidebar"&gt;
 &lt;div id="link_1"&gt;&lt;img src="images/thumb_1.jpg" alt="" /&gt;&lt;/div&gt;
 &lt;div id="link_2"&gt;&lt;img src="images/thumb_1.jpg" alt="" /&gt;&lt;/div&gt;
&lt;/div&gt;</pre>
<p>And we have our content:</p>
<pre> &lt;div id="content"&gt;
  &lt;div id="main_1" class="content_div"&gt;Content div 1&lt;/div&gt;
  &lt;div id="main_2" class="content_div"&gt;Content div 2&lt;/div&gt;
 &lt;/div&gt;</pre>
<p>Now we just need a little styling on the content divs to hide them:</p>
<pre> .content_div { display:none; }</pre>
<p>Then it&#8217;s just a matter of displaying your first div when the page loads:</p>
<pre>	$(window).load(function(){
		$('#content').animate({"height": $('#main_1').height() + 20}, {duration: "slow"});
		$('#main_1').pause(250).fadeIn("slow");
	});</pre>
<p>The $(window).load call is important.  You don&#8217;t want this to fire right on (document).ready if there are any images in your first div, because they will likely not be completely loaded and the code won&#8217;t know how big that div is going to be.</p>
<p>so, here&#8217;s the simple code:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
 &lt;head&gt;
  &lt;title&gt;&lt;/title&gt;
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
  &lt;style type="text/css"&gt;
   #sidebar { width:230px; float:left; }
   #sidebar div { float:left; margin-left:5px; }
   #content { width:500px; float:left; }
   .content_div { display:none; }
  &lt;/style&gt;
  &lt;script language="javascript" type="text/javascript" src="js/jquery.min.js"&gt;&lt;/script&gt;
  &lt;script language="javascript" type="text/javascript"&gt;
   &lt;!--
    $(document).ready(function(){

     $.fn.pause = function(duration) {
      $(this).animate({ dummy: 1 }, duration);
      return this;
     };

     var clickHandler = function(link){
      $('.content_div').fadeOut().pause(250);
      $('#content').animate({"height": $('#main_' + link.data.id).height() + 20}, {duration: "slow"});
      $('#main_' + link.data.id).pause(250).fadeIn("slow");
     }

     $(window).load(function(){
      $('#content').animate({"height": $('#main_1').height() + 20}, {duration: "slow"});
      $('#main_1').pause(250).fadeIn("slow");
     });

     $('#link_1').bind('click', {id:'1'} ,clickHandler);
     $('#link_2').bind('click', {id:'2'} ,clickHandler);
    });
   --&gt;
  &lt;/script&gt;
 &lt;/head&gt;
 &lt;body id="top"&gt;
  &lt;div id="sidebar"&gt;
   &lt;div id="link_1"&gt;&lt;img src="images/thumbnail.jpg" alt="" /&gt;&lt;/div&gt;
   &lt;div id="link_2"&gt;&lt;img src="images/thumbnail.jpg" alt="" /&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div id="content"&gt;
   &lt;div id="main_1" class="content_div"&gt;Content div 1&lt;/div&gt;
   &lt;div id="main_2" class="content_div"&gt;Content div 2&lt;/div&gt;
  &lt;/div&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2009/12/13/jquery-content-swapping-portfolio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vertically centering images in a DIV</title>
		<link>http://paul.bagosy.com/2009/12/13/vertically-centering-images-in-a/</link>
		<comments>http://paul.bagosy.com/2009/12/13/vertically-centering-images-in-a/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 15:05:51 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=756</guid>
		<description><![CDATA[Have you ever needed to vertically center and image in a div only to realize that it&#8217;s nowhere near as easy as it is in a table with vertical-align:middle? Horizontal centering is easy, but that damnable vertical is always just out of reach. Sure, there are ways to make it look centered, but that flies [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>Have you ever needed to vertically center and image in a div only to realize that it&#8217;s nowhere near as easy as it is in a table with vertical-align:middle?  Horizontal centering is easy, but that damnable vertical is always just out of reach.  Sure, there are ways to make it <em>look</em> centered, but that flies out the window when you&#8217;re talking about dynamic sizes.</p>
<p>The work-around I use for this problem is to head a different route.  I know I can&#8217;t center horizontally with a DIV, so I stop trying and learn to love the space.  I just use a blank .gif the same height as my div and then use the style tag right on the IMG to set the background to my image with a position of center center.  <em>Viola</em>, instant centered image!</p>
<pre>&lt;div style="height:200px; width:200px;"&gt;&lt;img src="images/blank.gif" style="background:url(images/thumbnail.jpg) center center no-repeat;" alt="" /&gt;&lt;/div&gt;</pre>
<div style="border: 1px solid #999999;height: 200px;width: 200px;margin:0px auto"><img src="/jquery_portfolio/images/blank.gif" alt="blank Vertically centering images in a DIV"  title="Vertically centering images in a DIV" /></div>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2009/12/13/vertically-centering-images-in-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Streamlined graphical navigation</title>
		<link>http://paul.bagosy.com/2009/12/10/streamlined-graphical-navigation/</link>
		<comments>http://paul.bagosy.com/2009/12/10/streamlined-graphical-navigation/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 15:15:05 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=716</guid>
		<description><![CDATA[After covering the long and short of using CSS for mouseover graphical navigation, I was clued into a similar but vastly more efficient way of doing the same thing with less overhead. Why cut up all those images when we can just use one? Here&#8217;s what I&#8217;m talking about: Notice the second line of navigation [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>After covering the long and short of <a href="http://paul.bagosy.com/2009/04/horizontal-rollover-navigation-for-fun-and-profit/" >using CSS for mouseover graphical navigation</a>, I was clued into a similar but vastly more efficient way of doing the same thing with less overhead.  Why cut up all those images when we can <strong>just use one</strong>?</p>
<p>Here&#8217;s what I&#8217;m talking about:</p>
<div class="wp-caption alignnone" style="width: 610px"><img title="Look familiar?" src="http://paul.bagosy.com/wp-content/themes/paul.bagosy.com/images/header.jpg" alt="Look familiar?" width="600" /><p class="wp-caption-text">Look familiar?</p></div>
<p>Notice the second line of navigation there mirroring the first?  That&#8217;s all the mouseovers.  The trick is simply to position this image as we need it.</p>
<p>So, here&#8217;s the HTML:</p>
<pre>   &lt;div id="header"&gt;
    &lt;ul&gt;
     &lt;li id="nav_01"&gt;&lt;a href="http://paul.bagosy.com"&gt;Home&lt;/a&gt;&lt;/li&gt;
     &lt;li id="nav_02"&gt;&lt;a href="/about/"&gt;Home&lt;/a&gt;&lt;/li&gt;
     &lt;li id="nav_03"&gt;&lt;a href="/resume/"&gt;Resumé&lt;/a&gt;&lt;/li&gt;
     &lt;li id="nav_04"&gt;&lt;a href="/portfolio/"&gt;Portfolio&lt;/a&gt;&lt;/li&gt;
     &lt;li id="nav_05"&gt;&lt;a href="/contact/"&gt;Contact&lt;/a&gt;&lt;/li&gt;
     &lt;li id="nav_06"&gt;&lt;a href="/feed/"&gt;Subscribe to Feed&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
   &lt;/div&gt;</pre>
<p>Pretty much the same concept as before.</p>
<p>Now, we get into the CSS:</p>
<pre>#header                  { width:946px; height:172px; background:url(images/header.jpg) top center no-repeat; position:relative; }
  #header ul             { width:946px; height:172px; margin:0px; padding:0px; list-style:none; }
  #header ul li          { margin:0px; padding:0px; list-style:none; position:absolute; }
  #header ul li a        { text-indent:-9009px; display:block; width:100%; height:100%; }
  #header ul li a:hover  { background-image:url(images/header.jpg); background-repeat:no-repeat; }</pre>
<p>What&#8217;s important here is that we&#8217;re defining the background-image and background-repeat separately in the a:hover declaration, and they&#8217;re going to be the same for every link.  Granted, you probably don&#8217;t need the background-repeat, but it&#8217;s good to be thorough.</p>
<p>Now that we&#8217;ve defined the overarching styles, let&#8217;s do the individual links:</p>
<pre>  #nav_01          { width:103px; height:57px; left:45px; top:100px; }
  #nav_01 a:hover  { background-position:-45px -172px; }
  #nav_02          { width:113px; height:57px; left:148px; top:100px; }
  #nav_02 a:hover  { background-position:-148px -172px; }
  #nav_03          { width:122px; height:57px; left:261px; top:100px; }
  #nav_03 a:hover  { background-position:-261px -172px; }
  #nav_04          { width:154px; height:57px; left:383px; top:100px; }
  #nav_04 a:hover  { background-position:-383px -172px; }
  #nav_05          { width:136px; height:57px; left:537px; top:100px; }
  #nav_05 a:hover  { background-position:-537px -172px; }
  #nav_06          { width:227px; height:57px; left:673px; top:100px; }
  #nav_06 a:hover  { background-position:-673px -172px; }</pre>
<p>With each of the list items, we&#8217;re just telling them how big to be (width, height) and where to be (left, top).  We&#8217;ve already told the anchor tags to fill their space above, so we just need to worry about the hover.  Since we&#8217;ve already told them what image to use (the same as the header background), all we need to do is tell them where to put it.  We set the background-position to show the mouseover portion of the image by defining it in negative terms (x first, y second).</p>
<p>For this example, we&#8217;ve got an image that&#8217;s 229 pixels tall, 172 pixels of which will be visible as our header.  So, the y part starts at 172 pixels, which means we need to drag it -172 pixels up for each of our mouseovers.  Then, it&#8217;s as simple as grabbing our left positions for the list item and moving it that far to the left.</p>
<p>Bingo, instant mouseovers with one image.  Instead of seven server calls and the need to preload (header BG and six mouseover images), we&#8217;re doing one server call and as soon as the header shows, your mouseovers are already preloaded!</p>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2009/12/10/streamlined-graphical-navigation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go-Live &#8211; PMRS, Inc.</title>
		<link>http://paul.bagosy.com/2009/12/07/go-live-pmrs-inc/</link>
		<comments>http://paul.bagosy.com/2009/12/07/go-live-pmrs-inc/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 20:30:08 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[IE6]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=691</guid>
		<description><![CDATA[PMRS Inc. What the client wanted: A newly-redesigned website to represent their corporate face on the internet. They had concerns about the site being visible in IE6, possibly without JavaScript enabled, due to their target audience using almost exculsively large corporate internet connections with older technology and security restrictions. What I delivered: The design itself [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p><strong><a href="http://www.pmrsinc.com"  target="_blank">PMRS Inc.</a></strong></p>
<div id="attachment_696" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-696" title="PMRS, Inc." src="http://paul.bagosy.com/wp-content/uploads/2009/12/pmrsinc1.jpg" alt="PMRS, Inc." width="600" height="400" /><p class="wp-caption-text">PMRS, Inc.</p></div>
<p><strong>What the client wanted:</strong><br />
A newly-redesigned website to represent their corporate face on the internet.  They had concerns about the site being visible in IE6, possibly without JavaScript enabled, due to their target audience using almost exculsively large corporate internet connections with older technology and security restrictions.</p>
<p><strong>What I delivered</strong>:<br />
The design itself has a number of floating elements, including Flash and irregularly-repeating backgrounds with alpha-channel elements.  PNGs were going to be necessary, and to make sure they worked in IE6, I employed the <a href="http://www.twinhelix.com/css/iepngfix/"  target="_blank">TwinHelix IE6 PNG hack</a>.  This lead me to the horrible realization that <a href="http://paul.bagosy.com/2009/11/ie6-is-there-nothing-it-can%E2%80%99t-make-complicated/" >positioning background PNGs is problematic in IE6</a>, so there were a few concessions made for IE6 support, but largely, the site looks identical in all browsers.</p>
<p>There was no concern with SEO friendliness, so I went with a JavaScript-based dropdown menu for multi-level support.  To compensate for the possibility of a JS being disabled, each top-level menu item has its own landing page, and there is a separate stylesheet loaded with a noscript tag.</p>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2009/12/07/go-live-pmrs-inc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go-Live: Indian Valley Dental</title>
		<link>http://paul.bagosy.com/2009/11/25/go-live-indian-valley-dental/</link>
		<comments>http://paul.bagosy.com/2009/11/25/go-live-indian-valley-dental/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 16:56:19 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=651</guid>
		<description><![CDATA[I&#8217;ve decided to start cataloging the sites that I&#8217;ve done recently, big or small. So, here we go: Indian Valley Dental What the client wanted: This was a redesign of an existing CMS site that had a lot of Flash-based elements, including the navigation. What I delivered: The design kept the header flash from the [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>I&#8217;ve decided to start cataloging the sites that I&#8217;ve done recently, big or small. So, here we go:</p>
<p><strong><a href="http://www.indianvalleydental.com" >Indian Valley Dental</a></strong></p>
<p><strong> </strong></p>
<p style="text-align: center"><strong><strong></p>
<div id="attachment_656" class="wp-caption aligncenter" style="width: 610px"><strong><strong><img class="size-full wp-image-656" title="Indian Valley Dental" src="http://paul.bagosy.com/wp-content/uploads/2009/11/indianvalley1.jpg" alt="Indian Valley Dental" width="600" height="400" /></strong></strong><p class="wp-caption-text">Indian Valley Dental</p></div>
<p></strong></strong></p>
<p style="text-align: left"><strong><strong>What the client wanted:</strong></strong><br />
This was a redesign of an existing CMS site that had a lot of Flash-based elements, including the navigation.</p>
<p style="text-align: left"><strong>What I delivered:</strong><br />
The design kept the header flash from the old site, and I brought over the little Flash page title flourish.</p>
<p>I reworked the existing CMS to provide data is much more search-engine friendly and a lot more streamlined.  The header navigation uses a CSS hover effect with a jQuery dropdown.  The bottom navigation uses a quick server-side element to generate a style that underlines the page that you&#8217;re currently on, and the Contact Us page uses jQuery form validation and an AJAX spam-catcher.</p>
<p>The site is identical in IE 6, 7 and 8, Firefox 3, Chrome 3, Safari 4PB and Opera 10 (aside from a few form elements that resist styling).</p>
<p>Simple from the ground up, but that&#8217;s the way I like them.</p>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2009/11/25/go-live-indian-valley-dental/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Viewing hidden files in Dreamweaver</title>
		<link>http://paul.bagosy.com/2009/11/17/viewing-hidden-files-in-dreamweaver/</link>
		<comments>http://paul.bagosy.com/2009/11/17/viewing-hidden-files-in-dreamweaver/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 16:32:11 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[miscellany]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=586</guid>
		<description><![CDATA[Thanks to this brief tutorial, I can now see pesky hidden files like .htaccess files in Dreamweaver &#8211; server side and local. Because, for whatever reason, Windows just looooves to hide .htaccess files once you&#8217;re done editing them. Further clarification on the button that turtorial is talking about: Click that funky little button, then select [...]]]></description>
			<content:encoded><![CDATA[<!-- wp-jquery-lightbox, a WordPress plugin by ulfben --> <p>Thanks to <a href="http://c.hadcoleman.com/2009/04/show-hidden-files-in-dreamweaver/" >this brief tutorial</a>, I can now see pesky hidden files like .htaccess files in Dreamweaver &#8211; server side <em>and</em> local.  Because, for whatever reason, Windows just <em>looooves</em> to hide .htaccess files once you&#8217;re done editing them.</p>
<p>Further clarification on the button that turtorial is talking about:</p>
<p><img class="alignnone size-full wp-image-631" title="dw" src="http://paul.bagosy.com/wp-content/uploads/2009/11/dw11.jpg" alt="dw11 Viewing hidden files in Dreamweaver" width="600" height="287" /></p>
<p>Click that funky little button, then select <strong>View </strong>and <strong>Show Hidden Files</strong>.  Viola!</p>
<p>-pb</p>
<div id="crp_related"> </div>]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2009/11/17/viewing-hidden-files-in-dreamweaver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
