<?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>The Fish Wrapper&#187; newdtlt</title>
	<atom:link href="http://wrapping.marthaburtis.net/category/newdtlt/feed/" rel="self" type="application/rss+xml" />
	<link>http://wrapping.marthaburtis.net</link>
	<description>tales of swimming upstream</description>
	<lastBuildDate>Tue, 27 Jul 2010 15:18:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Hacking a Basic Newsletter for WP</title>
		<link>http://wrapping.marthaburtis.net/2010/01/07/newsletter/</link>
		<comments>http://wrapping.marthaburtis.net/2010/01/07/newsletter/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 17:15:51 +0000</pubDate>
		<dc:creator>Martha</dc:creator>
				<category><![CDATA[newdtlt]]></category>
		<category><![CDATA[html email]]></category>
		<category><![CDATA[newsletter]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wrapping.marthaburtis.net/?p=243</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Hacking+a+Basic+Newsletter+for+WP&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.subject=newdtlt&amp;rft.source=The+Fish+Wrapper&amp;rft.date=2010-01-07&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://wrapping.marthaburtis.net/2010/01/07/newsletter/&amp;rft.language=English"></span>
Last semester, when we launched our new DTLT Web site, I was hoping to really use it as a tool for getting the word out to our faculty about news, upcoming events, professional dev. opportunities, and showcase projects. Ideally, I wanted to use it as a hub from which all of this information could be [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Hacking+a+Basic+Newsletter+for+WP&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.subject=newdtlt&amp;rft.source=The+Fish+Wrapper&amp;rft.date=2010-01-07&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://wrapping.marthaburtis.net/2010/01/07/newsletter/&amp;rft.language=English"></span>
<p>Last semester, when we launched our new <a href="http://home.umwdtlt.org">DTLT Web site</a>, I was hoping to really use it as a tool for getting the word out to our faculty about news, upcoming events, professional dev. opportunities, and showcase projects. Ideally, I wanted to use it as a hub from which all of this information could be delivered.</p>
<p>What I really wanted was an easy way to create a newsletter that included content from the new site. I planned on sending these out to all UMW faculty about once a month. By using the site to generate the newsletter, I wouldn&#8217;t have to build it from scratch. After all, everything that I wanted to share with the faculty should, ideally, also have some presence on the Web site. What I quickly discovered, however, was that there was no easy way to use the content I was generating on the site to create such a newsletter.</p>
<p>WP has a few newsletter/subscription plugins, but they seem to do one of two things: send updates to subscribers whenever a new post is generated or simply generate a list of emails that you can then use with some other newsletter program. Neither of these was really ideal. I was pretty certain that most faculty wouldn&#8217;t appreciate an email from DTLT every time we added something to the site. And I&#8217;m not using any other third-party program to generate a newsletter. I also didn&#8217;t want an opt-in solution. I really wanted to be able to send something to all faculty using our internal all faculty email list at the University.</p>
<p>What I wanted was very simple: a basic text of html email that I could send to faculty with a list anof new items and links to read more.</p>
<p>After a few months of tinkering (and getting distracted by other projects), I&#8217;ve finally come up with a solution.</p>
<p>Basically, I created a custom page template called template.php  newsletter.php which can be applied to page when you create it. The text you put in the page becomes the text at the top of the newsletter. (&#8221;Welcome Back! We hope you had a nice break. Here is our latest newsletter. . .&#8221;). Then you use a custom field (&#8221;issuecat&#8221;)on the page to define a category number. In my case, I created a category called &#8220;January 2010 Newsletter&#8221; and entered the corresponding category number into the custom field.</p>
<p>When <a href="http://home.umwdtlt.org/january-2010-newsletter/">I view the page</a>, I get a specially formatted page, showing the text of the page and the content (up to the &#8220;More&#8221; divider&#8221;) for whatever posts I put in my category. At the top of the page is a link to the actual page on the blog in case someone can&#8217;t view the HTML email. I&#8217;ve also allowed for custom images to be displayed with the posts through the use of another custom field: newsimg. (Although I&#8217;m not using these at the moment.)</p>
<p>Getting the newsletter into an email program takes a little bit of trickery, and it depends a lot on what email program you&#8217;re using. In my case, I work on a Mac and use Mail or Entourage to send through our Microsoft Outlook mail server. Sending an HTML email that you&#8217;ve created elsewhere can&#8217;t be done out of the box in either of these programs. However, for Entourage there is a script that will allow you to send <a href="http://scriptbuilders.net/files/sendcomplexhtmlx2.1.html">a complex HTML email</a>. Basically, you save the WP newsletter page to your computer and then use this script to point Entourage to the file. The message should preserve all it&#8217;s formatting. In Mail, you can copy and paste the text of the newsletter into an email message. This won&#8217;t preserve images, but it will preserve the basic formatting.</p>
<p>In all honestly, I would love to do this with just a plan text email.  There&#8217;s no particular reason why it has to be HTML and I&#8217;m not huge fan of HTML email. However, in order to have something that gets automatically generated (so that I&#8217;m not spending a bunch of time doing even basic line/paragraph breaks) by WP, this seemed like the only solution.</p>
<p>The code to make the template itself work is nothing fancy &#8212; just a variable for the category custom field that&#8217;s used to execute a second query on the page to grab the appropriate posts. The ordering is just descending chronological. I&#8217;d like to play around with grouping the posts based on type (event, news, project, etc.) but that&#8217;ll have to be for the next iteration.</p>
<p>The formatting of the page is based on a basic HTML email template I found online (can&#8217;t find the link right now, but I&#8217;ll try to add it later). As it turns out, the HTML you use to generate email is like generating a circa-1997 Web page. Figuring out how to make that work was painful.</p>
<p>If anyone cares to try it out, here&#8217;s a link to the <a href="http://wrapping.marthaburtis.net/wp-content/uploads/2010/01/newsletter.php_1.zip">template file, zipped up</a>. You&#8217;ll have to make some changes to the code (for the page title, image, etc.) Also, full disclosure: I&#8217;m not a programmer, just a hack. There may be a better way to do this, code-wise. I just know it served my purposes. <img src='http://wrapping.marthaburtis.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://wrapping.marthaburtis.net/2010/01/07/newsletter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What Lies Within: Of Calendars, Hidden Data, and Hacked Templates</title>
		<link>http://wrapping.marthaburtis.net/2009/09/16/what-lies-within-of-calendars-hidden-data-and-hacked-templates/</link>
		<comments>http://wrapping.marthaburtis.net/2009/09/16/what-lies-within-of-calendars-hidden-data-and-hacked-templates/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 16:49:56 +0000</pubDate>
		<dc:creator>Martha</dc:creator>
				<category><![CDATA[newdtlt]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[kb avanced rss widget]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[the loop]]></category>
		<category><![CDATA[thickbox]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wrapping.marthaburtis.net/?p=233</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=What+Lies+Within%3A+Of+Calendars%2C+Hidden+Data%2C+and+Hacked+Templates&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.subject=newdtlt&amp;rft.source=The+Fish+Wrapper&amp;rft.date=2009-09-16&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://wrapping.marthaburtis.net/2009/09/16/what-lies-within-of-calendars-hidden-data-and-hacked-templates/&amp;rft.language=English"></span>
I&#8217;ve blogged in the past about my endless DTLT Web Site Redesign project. And I&#8217;ve committed myself to regularly blogging about what I&#8217;m doing as part of that project. And then, of course, I&#8217;ve promptly broken that commitment. Oops.
I guess it&#8217;s time for an update, and, to start, I want to describe how I&#8217;m handling [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=What+Lies+Within%3A+Of+Calendars%2C+Hidden+Data%2C+and+Hacked+Templates&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.subject=newdtlt&amp;rft.source=The+Fish+Wrapper&amp;rft.date=2009-09-16&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://wrapping.marthaburtis.net/2009/09/16/what-lies-within-of-calendars-hidden-data-and-hacked-templates/&amp;rft.language=English"></span>
<p>I&#8217;ve blogged in the past about my <a href="http://wrapping.marthaburtis.net/2008/11/17/revamp/">endless DTLT Web Site Redesign project</a>. And I&#8217;ve committed myself to regularly blogging about what I&#8217;m doing as part of that project. And then, of course, I&#8217;ve promptly broken that commitment. Oops.</p>
<p>I guess it&#8217;s time for an update, and, to start, I want to describe how I&#8217;m handling event presentation on the <a href="http://home.umwdtlt.org">new site</a>. (We actually launched it a few weeks ago, but there&#8217;s still a lot more work to do.)<br />
<span id="more-233"></span><br />
I knew that one of the features of the new site needed to be a way to publish information about upcoming teaching and learning technology-related events. I wanted this not only to be a mechanism for publishing information about our own events but for sharing information, particularly with UMW faculty, about events that ELI, NMC, and NITLE were hosting.</p>
<p>To start I played around with a host of Event plugins for Wordpress. But they all failed me in one way or another.</p>
<p><a href="http://www.lukehowell.com/events-calendar/">Events Calendar</a>, which we&#8217;ve had in UMW Blogs for quite some time, has tons of features but there was one thing it didn&#8217;t do well. See, I wanted my events to have a post-like presence within the site. In other words, I wanted to be able to use the standard Wordpress Loop to filter info about events and I wanted to be able to tag them and categorize them like all the other content on the site. Events Calendar creates a whole separate structure for storing event information. It was also, quite frankly, a beast of a plugin. There were more features then I really needed.</p>
<p>I looked around a bit for a calendar plugin that would actually store events as posts. <a href="http://wordpress.org/extend/plugins/event-calendar/">Event Calendar 3</a> looked promising, but it wasn&#8217;t compatible with the latest version of WP.</p>
<p><a href="http://wordpress.org/extend/plugins/events-category/">Events Category</a> looked really promising &#8212; very simple and elegant solution. But it&#8217;s not being maintained anymore. <a href="http://wordpress.org/extend/plugins/vent/">Vent</a> also looked like a possibility, but, again, no 2.8.4 love.</p>
<p>Then I stumbled upon this funny, half-baked plugin called <a href="http://wordpress.org/extend/plugins/upc0ming/">Upc0ming</a>. It seemed to allow you to show all upcoming events on a Google Calendar in a sidebar widget. I thought this sounded intriguing. We use Google calendars pretty regularly in DTLT, and I thought it might be nice to publish our events in that application, and then just feed information into the site.</p>
<p>The next challenge was how to get information about those events into the main content stream of the site. Simply displaying Google Calendar events wasn&#8217;t going to solve my dilemma of how to tag and categorize event information just like any other post on the site.</p>
<p>Then it occurred to me that I could actually grab an RSS feed from Google Calendar and run it through FeedWordpress. Each event could become a post (that I could automatically stick in an &#8220;Event&#8221; category with FWP&#8217;s settings). As FWP captured those events, I could tag them appropriately. Granted, this requires me to remember to periodically go in and tag posts, but this didn&#8217;t seem like to big of a deal. I expect to be spending quite a bit of time in the back-end of this site, anyway. It also meant anyone in DTLT could easily add an event to <a href="http://www.google.com/calendar/embed?src=b87dta7q5p2o19180h0q34s5u4%40group.calendar.google.com&amp;ctz=America/New_York">our Google Calendar</a> (which I shared with everyone in the division) and it would just show up in the site.</p>
<p>This solution took me about halfway to where I wanted to be. At this point, I had a widget on my homepage that would show upcoming events. If someone clicked on the &#8220;More information&#8221; link, they&#8217;d be sent to the Google event page (which I actually programmed to open in a thickbox). However, if they ended up on a tag page where an internal page post (fed by FeedWordpress) for an event showed up, they&#8217;d go to that post not the Google calendar. This didn&#8217;t seem ideal to me. The information fed in from Google Calendar wasn&#8217;t elegant or formatted, so those posts were sort of unappetizing. And I really wanted people&#8217;s experience to be consistent.</p>
<p>As a solution, I decided to hack the archive template of my theme. For those of you who don&#8217;t know, the archive template (archive.php) is the template that gets used by default whenever a user goes to any category or tag page. So, for example, if a user clicks on a link for the tag &#8220;umwblogs,&#8221; WP uses the archive template to show all the posts that have been tagged with &#8220;umwblogs.&#8221; The Loop in the template is set to just return those posts that fit whatever criteria is appropriate to the page someone has browsed to.</p>
<p>I went ahead and modified The Loop so that if the post was in the category &#8220;event,&#8221; (which every Google Calendar-fed post would be), WP would use a link to the Google Calendar event (in a thickbox, again), instead of a link to the post. I was able to do this because when FeedWordpress makes posts out of a Google Calendar feed items, it puts the original calendar item url into a custom field called &#8220;syndication_permalink.&#8221;</p>
<p>So what does this all mean? Basically, it means that the event information that gets fed into posts from Google Calendar (supplemented by my own manual tagging) can be used to filter events, but what users actually see when they want more information is the Google Calendar event not the ugly post. The post just serves as placeholder for storing information about the event that Wordpress can use for filtering.</p>
<p>I&#8217;d like to say that this was the end of my journey, but, of course, it wasn&#8217;t. It gets better. <img src='http://wrapping.marthaburtis.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I mentioned that the plugin I was using to display the Google Events was upc0ming. Out of the box, this seemed to work. I plugged a Google Calendar feed address into it, and it spit out a nicely formatted event item in a sidebar widget. However, I quickly noticed some problems. First, events weren&#8217;t ordered by when they were going to occur, but by when I had authored them (more on this later). Second, I couldn&#8217;t control how many events were showing up &#8212; by default it just showed me everything. Third, when an event was over, it didn&#8217;t drop off the list (again, more on this later).</p>
<p>I decided I needed to go back to the drawing board to find a better way to display my Google Calendar events on the homepage. I actually worried that all my work mentioned above might have been for naught. I thought for sure I&#8217;d find a Google Calendar plugin that allowed me to customize ordering, display, number of events, etc. But my searches were fruitless. (If I missed something, let me know!!)</p>
<p>At this point, I posted a desperate tweet asking if anyone had any ideas. <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fcogdogblog.com%2F&amp;ei=-xWxStL9H9yw8QbG-KXDDg&amp;usg=AFQjCNHTjCX1kYpVYkhFg2sDONUicXoXmg&amp;sig2=GedtU88V82Qvcs-puvDhlw">Alan</a> suggested I just use the &#8220;agenda&#8221; feature in the Google Calendar embed code. Doh. I probably should have noticed that earlier, huh? I went ahead and played around with this, but I have to admit I couldn&#8217;t get past the visual look. The embedded calendar just looked clunky, and I&#8217;d become wedded to the simple CSS styling of upc0ming and my thickbox hack. There&#8217;s just no way to style an embeded iframe, so I kept looking.</p>
<p><a href="http://twitter.com/jmemax/statuses/3759626788">My friend Jamey</a> suggested I check out the<a href="http://code.google.com/apis/calendar/docs/2.0/reference.html#Calendar_feeds"> Google Calendar feed api&#8217;s</a>. This turned out to be a great suggestion, but I&#8217;ll come back to it in a bit.</p>
<p>In the meantime, I kept searching for plugins that might afford me some solution. And then I stumbled on the motherload: <a href="http://adambrown.info/b/widgets/category/kb-advanced-rss/">KB Advanced RSS Widget</a>. If you&#8217;ve ever struggled with the default RSS feed widget in WP and wanted more control over how feeds are presented, CHECK OUT THIS PLUGIN. Basically, it allows you to customize how feed items are displayed on a very granular level.</p>
<p>The Widget comes with a script that will parse your feed (uses Magpie, I believe) and show you all of the &#8220;hidden&#8221; xml fields that the standard RSS widget doesn&#8217;t touch. Using the parser, I was able to pick out the starttime (and customize the date display), and wrap it in the css and html I needed to replicate the elegant display that I liked so much from upc0ming. Truly, I only grazed the surface of what I think you could do with this widget. Let me repeat: If you work work with RSS feeds and Wordpress, CHECK OUT THIS PLUGIN!</p>
<p>One more note: As I was working with the KB widget, I realized my Google Calendar feed wasn&#8217;t quite meeting my needs. For example, by default it was ordering calendar events by publication date, not start time. Also, it was showing me them in the wrong order. That&#8217;s when my friend&#8217;s suggestion to check out the Google Calendar feed api came in handy. As it turns out, by adding various parameters to the calendar feed, you can modify the feed output. I added &#8220;orderby=starttime&amp;sortorder=ascending&amp;futureevents=true&#8221; and got a feed that was ordered by startime, in ascedning order, and only showed future events. Sweet.</p>
<p>One, one more note: The one nut I wasn&#8217;t able to crack was how to deal with recurring events. The Google feed structures the recurring event information in a way that the KB widget couldn&#8217;t handle. So, you&#8217;ll see that events which recur on several days, have a listing for each day. Maybe someday I&#8217;ll figure that one out. . .<!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://wrapping.marthaburtis.net/2009/09/16/what-lies-within-of-calendars-hidden-data-and-hacked-templates/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DTLT Revamp: Custom Fields Are Your Friends</title>
		<link>http://wrapping.marthaburtis.net/2008/11/26/dtlt-revamp-custom-fields-are-your-friends/</link>
		<comments>http://wrapping.marthaburtis.net/2008/11/26/dtlt-revamp-custom-fields-are-your-friends/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 17:00:17 +0000</pubDate>
		<dc:creator>Martha</dc:creator>
				<category><![CDATA[newdtlt]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[custom fields]]></category>
		<category><![CDATA[dtlt]]></category>
		<category><![CDATA[flutter]]></category>
		<category><![CDATA[fresh post]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.marthaburtis.net/wrapping/2008/11/26/dtlt-revamp-custom-fields-are-your-friends/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=DTLT+Revamp%3A+Custom+Fields+Are+Your+Friends&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.subject=newdtlt&amp;rft.source=The+Fish+Wrapper&amp;rft.date=2008-11-26&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://wrapping.marthaburtis.net/2008/11/26/dtlt-revamp-custom-fields-are-your-friends/&amp;rft.language=English"></span>
This post is the second in a series that I&#8217;m writing about my experiments with redesigning the DTLT Web site. You can read the introduction here. You can see all of the posts in this series here.  
There are a lot of places I could start my next post about the DTLT site, but given [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=DTLT+Revamp%3A+Custom+Fields+Are+Your+Friends&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.subject=newdtlt&amp;rft.source=The+Fish+Wrapper&amp;rft.date=2008-11-26&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://wrapping.marthaburtis.net/2008/11/26/dtlt-revamp-custom-fields-are-your-friends/&amp;rft.language=English"></span>
<p><em>This post is the second in a series that I&#8217;m writing about my experiments with redesigning the DTLT Web site. You can <a href="http://www.marthaburtis.net/wrapping/2008/11/17/revamp/">read the introduction here</a>. You can <a href="http://www.marthaburtis.net/wrapping/category/newdtlt/">see all of the posts in this series here</a>.  </em></p>
<p>There are a lot of places I could start my next post about the DTLT site, but given the critical role that I&#8217;m imagining for custom fields (and, hopefully, the <a href="http://freshout.us/goodies/fresh-post-for-wordpress-wordpress-cms/">Flutter</a> plugin), I thought that might make the most sense.</p>
<h3> A Very Basic Introduction to Custom Fields</h3>
<p>For those of you who don&#8217;t know, custom fields are a built-in feature of Wordpress. They&#8217;re a part of the write panel for posts and pages, but you may have never noticed them. Here&#8217;s the default custom field panel:</p>
<p><img src="http://farm4.static.flickr.com/3187/3056549810_86e36ff56a.jpg" /></p>
<p>Basically, they allow you to associate additional information with your posts or pages. If you read the official description of custom fields on Wordpress&#8217; site, you&#8217;ll see that the developers refer to this feature as a way to add meta-data to a post or page.  Basically, you choose a &#8220;key&#8221; for your field &#8212; that&#8217;s the name of the element &#8212; and a value. Once you create a new field/key, you can associate it with other posts/pages, by choosing it from the &#8220;Select&#8221; drop-down menu. You can also  also add a key to a post more than once.</p>
<p>But creating the custom field is only the first step. Once you&#8217;ve done that, the information is stored in the WP database, but it&#8217;s not going to show up on your post and page magically. You&#8217;ve got to edit the template to display the values. To do this, you use a built-in template tag (more on these in a later post) that you add to The Loop (which is the core part of WP template code for displaying posts and pages). The tag is just a simple snippet of php:</p>
<pre>&lt;?php the_meta(); ?&gt;</pre>
<p>With that bit of code added, your field values appear in your post/page (the location depends on where you place the code in The Loop). The technique is pretty simple, but it&#8217;s not terribly nuanced. All you&#8217;re going to get is a unordered list of  whatever custom fields are associated with the post, and a pre-existing style in the WP CSS will be used to style it (of course you can modify that style, but you&#8217;re still dealing with a list of content).</p>
<p>For more advanced approaches, there are some built-in functions in WP that allow you to do more than just display the custom fields in a list. You can find more information about them on the <a href="http://codex.wordpress.org/Using_Custom_Fields#Internal_Functions">WP page about custom fields</a>.</p>
<p>On that same page, I&#8217;m particularly intrigued by this text: &#8220;We expect that independent developers will come up with many interesting uses for post meta-data in the form of plugins. The <tt>the_meta()</tt> template function is just an extremely basic example.&#8221; What&#8217;s interesting to me is how few plugins I&#8217;ve found that do make use of custom fields. When I first started using Wordpress a few years ago, I started looking around for more powerful/elegant ways of utilizing this feature, but I&#8217;ve never found very much. I think that&#8217;s kind of odd &#8212; to my mind, custom fields provide some really intriguing ways of extending Wordpress.</p>
<p>If you&#8217;re interested in learning more about custom fields, I encourage you to take a look at some of these resources:</p>
<ul>
<li><a href="http://codex.wordpress.org/Using_Custom_Fields">WP&#8217;s Custom Fields page </a></li>
<li><a href="http://justintadlock.com/archives/2007/10/24/using-wordpress-custom-fields-introduction">A Custom Fields Tutorial Series</a> at <a href="http://www.justintadlock.com/">justintadlock.com </a></li>
<li><a href="http://www.cogdog.com">Alan CogDog Levine</a>&#8217;s <a href="http://cogdogblog.com/2008/02/14/wordpressing-dissected/">awesome dissection of the NMC Pachyderm site </a>(actually there&#8217;s way more in here than just custom fields, but it&#8217;s a critical piece of his design puzzl)</li>
</ul>
<h3>So, Why Do I Care About Custom Fields, Anyway?</h3>
<p>My interest, quite frankly, is less in the possibility of adding meta-data to WP content. What I&#8217;m interested in really is being able to structure posts and pages, based on the kind of content that&#8217;s being created. So, for example, if I was creating a post about a project that we&#8217;re working on in DTLT, I could set up several custom fields for the various pieces that would make up a project content piece: Description, URL, Collaborator(s), Screenshot. There are three main reasons why I&#8217;m interested in this approach to content creation:</p>
<ol>
<li>I imagine it would let me do more interesting things in terms of presenting the content. If each piece of information is held in a different custom field &#8220;container,&#8221; I can arrange them on the page (in custom templates) and style them more granularly.</li>
<li>If I pre-define fields for a type of content, then there&#8217;s a better chance of creating more consistent pieces of content, in general (particularly when multiple authors are working in a blog). If it&#8217;s important to me that a project post have particular types of information, then the custom fields serve as a kind of prompt to make sure each new post is complete.</li>
<li>For certain fields, I can imagine wanting to &#8220;pivot&#8221; information presentation on them. For example, if I&#8217;ve got a &#8220;collaborator(s)&#8221; field for projects, I might want to be able to slice my project content up so that I can see all of those projects that a particular faculty member collaborated on DTLT with.</li>
</ol>
<p>All of these reasons really require that I structure my content into different containers, and custom fields definitely seems like a way to do this.</p>
<h3>Where Flutter Comes In</h3>
<p><a href="http://www.flickr.com/photos/marthagrace/3060799165/" title="Photo Sharing"><img src="http://farm4.static.flickr.com/3171/3060799165_596d054ebc.jpg" alt="2008-11-26_1111" align="left" border="0" height="206" hspace="5" vspace="5" width="500" /></a>I mentioned above that my search for WP plugins that build on the custom field feature has been pretty fruitless. Well, a few weeks ago, I finally turned up one that that looks like it has a lot of promise. Flutter (previously called Fresh Post), puts a more elegant front-end on custom fields, allowing you to define new &#8220;Write Panels&#8221; (essentially new versions of &#8220;Write Page&#8221; or &#8220;Write Post&#8221; in the administrative back-end of WP) with custom data fields.  You can define as many different write panels as you want, theoretically with each one designed to deal with a different flavor of content for your site.</p>
<p><a href="http://www.flickr.com/photos/marthagrace/3060807293/" title="Photo Sharing"><img src="http://farm4.static.flickr.com/3057/3060807293_c37cce2060.jpg" alt="2008-11-26_1116" align="right" border="0" height="381" hspace="5" vspace="5" width="500" /></a>The first step in setting up a custom Write Panel is defining some options for it. You can see those in the image on the right. Being able to automatically define a category and set which default edit blocks appear is very cool.<br />
<br clear="all" /><br />
Once I&#8217;ve created the custom panel, you can add custom fields to it. And, you have more options than just designating a key and a value for custom fields. Flutter actually has several field types that you can choose from:</p>
<ul>
<li>Textbox</li>
<li>Multiline Textbox</li>
<li>Checkbox</li>
<li>Checkbox List</li>
<li>Radiobutton List</li>
<li>Dropdown List</li>
<li>Listbox</li>
<li>File</li>
<li>Image</li>
<li>Date</li>
<li>Audio</li>
</ul>
<p>Basically, you define the fields you want to make up custom type of content and you build a custom panel for that type. When you&#8217;re done, you&#8217;re &#8220;Write&#8221; tab will reflect the new panel names (and you can hide the default Page/Post sub-tabs to minimize confusion).</p>
<p>Another very cool feature is that you can create groups of fields that can then be duplicated. So, for example, if I want to be able to add RSS feeds to a new piece of content,  I can define a group called &#8220;RSS Feed&#8221; with two custom fields, &#8220;FeedTitle&#8221; and &#8220;FeedURL.&#8221; That group can then be duplicated, allowing me to have more than one RSS feed associated with a post. I can then use something like SimplePie to display the feed(s) on the page. (I&#8217;m using SimplePie this way now with <a href="http://marthaburtis.net/newdtlt/?p=7">the &#8220;Person&#8221; content type on the new DTLT site</a>. There&#8217;s no styling yet, so it looks crappy but you get the point.)</p>
<p>There&#8217;s a whole other level to Flutter that I haven&#8217;t gotten into yet &#8212; once you&#8217;ve created your custom write panels, you can then use a GUI editor to edit your theme with custom widgets (or so it seems). However, my initial research into this feature suggests it&#8217;s built on the Canvas WP template engine, and <a href="http://code.google.com/p/canvas-for-wordpress//">I believe that project is now defunct</a>.</p>
<p>There are a few pitfalls that I&#8217;ve run in to with Flutter.</p>
<ol>
<li> By default, the &#8220;File&#8221; field type uses a Flash-based file uploader that I can&#8217;t get to work in my version of Firefox (3.0.4) with my version of Flash (10). It took me a while to find out that I could opt for the standard file upload feature in the Flutter settings. (The Flash version did work for me on Safari. Sorry, can&#8217;t tell you what the IE situation is.)</li>
<li>While you can disable the &#8220;Write &gt; Post&#8221; and &#8220;Write &gt; Page&#8221; subtabs, you can&#8217;t disable the &#8220;Manage &gt; Post&#8221; and &#8220;Manage &gt; Page&#8221; subtabs. It&#8217;s a small thing, but it could lead to confusion, particularly if there are multiple authors on a blog.</li>
<li>When you create a custom write panel of the &#8220;Page&#8221; variety, you&#8217;re given the option to show or not show the category block. Well, pages in WP don&#8217;t use categories (unfortunately!). I thought that it was possible Flutter had found a way to assign categories to pages, but, alas, this is not the case. Looks like they just offer the same customization options whether the custom panel is a post or a page. For this reason, I&#8217;m using posts exclusively as the building blocks for my content. I need me some categories.</li>
<li>The default WYSIWYG editor for custom fields of the type &#8220;text area&#8221; doesn&#8217;t seem to be as fully featured as the default WP editor. I&#8217;ve got the very cool <a href="http://wpmudev.org/project/cets_embedrss">cets_EmbedRSS</a> plugin installed (kudos to Jim for <a href="http://bavatuesdays.com/embed-rss-plugin-for-wordpress/">pointing this one out</a>), and while it adds the RSS button to the editor in the text area, it doesn&#8217;t seem to work. I&#8217;m not sure what&#8217;s going on here, but be forewarned.</li>
<li>In <a href="http://www.darcynorman.net/2008/11/18/is-flutter-a-cck-for-wordpress/">a post that D&#8217;Arcy recently wrote</a> about Flutter, he mentioned that it did some odd things to the main write panel, causing his posts to wrap strangely. I haven&#8217;t seen this behavior, but that doesn&#8217;t mean there isn&#8217;t something wrong.</li>
<li>D&#8217;Arcy also mentions that what&#8217;s going on behind the scenes with Flutter is a bit klugey. This probably has as much to do with how custom fields are handled in the WP database as it does to anything that Flutter is doing, in particular. Basically, custom fields are stored in a table called wp_postmeta. Each new value is a new record, with post_id (presumably to associate the custom field with the proper post or page), meta_key, and meta_value fields. That seems a bit topsy-turvy &#8212; the fact that there is no relational structure where a new custom field becomes a new record, and then the values are associated with those records, but what the heck do I know? Flutter builds a bunch of new tables to store information about the different Flutter options that are then associated with the custom field records (don&#8217;t know how, yet; I haven&#8217;t really looked into it). Bottom line: I have no idea if the back-end database structure is going to affect any of the cool things that I&#8217;m wondering if I could do with Flutter. Guess I&#8217;ll find out.</li>
</ol>
<p>For now, I&#8217;ve created five different custom write panels for the new DTLT site: Person, (News) Post, Opportunity, Project, and Resource. They each have a different set of fields, depending on what I imagine they should consist of. (I&#8217;ll blog later about what fields I&#8217;m using for what content, since that gets at a whole other, non-technology, set of decisions.) One of the cool things about this approach is that since at their core they are all just posts, you can use categories and tags as a way to slice across the different content types. So, for example, if I tag a (News) Post and a Project with &#8220;SteveGreenlaw,&#8221; then my tag page for &#8220;SteveGreenlaw&#8221; will show me all of the content (of any type) that is tagged that way. With a little template massaging, I think the display could be finessed to make that a pretty cool view of content.</p>
<h3>What&#8217;s Next</h3>
<ol>
<li>I&#8217;m really excited about diving into creating the custom templates to display these different types of content. I&#8217;ve finally wrapped my heard around The Loop (I think) and features of WP like template tags. I&#8217;m basically an ignoramous when it comes to php, so I&#8217;ve got a lot of learning to do (there&#8217;s another post here about a breakthrough I had about learning php &#8212; I&#8217;ve got to blog about that, too!).</li>
<li>I&#8217;m also interested in figuring out if there is a way to filter WP content based on custom fields. So, for example, as I mentioned in my example above, if I&#8217;ve got a field called &#8220;Contributor(s),&#8221; can I create a display of content that just shows those posts that share the same value in that field? I&#8217;m sure there&#8217;s a way to do it. Question is if I can figure out how.</li>
<li>Perhaps the biggest challenge I&#8217;d like to try and solve that I haven&#8217;t even touched on here is how custom fields can interact with RSS feeds. I&#8217;ve <a href="http://justintadlock.com/archives/2008/01/27/custom-fields-for-feeds-wordpress-plugin">found at least one plugin</a> that seems to allow for including custom fields in RSS feeds. The reason I&#8217;m interested in this is that I think it might allow for distributed authorship on a blog like ours. Truth is, we all blog in different places, primarily, and very often the contributions we make to our own blogs could be meaningful on the DTLT site. I don&#8217;t want to ask people to duplicate effort. So, I&#8217;m wondering if it would be possible to get a feed from our disparate blog sources that spits out the same custom fields as I&#8217;ve defined for the DTLT site. One of the cool features of Flutter which I didnt&#8217; get into above (because I really haven&#8217;t tried it) is that Write Panels can be exported and imported. So, theoretically, I could share those custom panels with others running WP, and if they have Flutter installed and if I can figure out how to add custom fields to the RSS feeds and if I can figure out how to get the DTLT site to reconsume those fields, we could do something kind of slick. That&#8217;s a lot of if&#8217;s, and, truth be told, this part of my project is as much proof-of-concept as anything else. Mostly, I&#8217;m interested in experimeting with distrubuted authorship, and this seems like one interesting approach.</li>
</ol>
<p>So, that&#8217;s it for now. Thanks to Jim for <a href="http://bavatuesdays.com/blogging-wordpress-as-a-cms/">the shout-out about this project</a>. Now that he&#8217;s &#8220;outed&#8221; me, I&#8217;ve got more incentive to keep on blogging about it. <img src='http://wrapping.marthaburtis.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://wrapping.marthaburtis.net/2008/11/26/dtlt-revamp-custom-fields-are-your-friends/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Revamp</title>
		<link>http://wrapping.marthaburtis.net/2008/11/17/revamp/</link>
		<comments>http://wrapping.marthaburtis.net/2008/11/17/revamp/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 01:24:38 +0000</pubDate>
		<dc:creator>Martha</dc:creator>
				<category><![CDATA[newdtlt]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[dtlt]]></category>
		<category><![CDATA[revamp]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.marthaburtis.net/wrapping/2008/11/17/revamp/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Revamp&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.subject=newdtlt&amp;rft.source=The+Fish+Wrapper&amp;rft.date=2008-11-17&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://wrapping.marthaburtis.net/2008/11/17/revamp/&amp;rft.language=English"></span>
One of my goals in my new role is to blog more regularly about the projects I&#8217;ll be working on. To that end, I&#8217;m going to use this post to kick off what will (hopefully) become a series about a project to revamp the DTLT Web site. I&#8217;ve wanted to tackle this initiative for several [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Revamp&amp;rft.aulast=&amp;rft.aufirst=&amp;rft.subject=newdtlt&amp;rft.source=The+Fish+Wrapper&amp;rft.date=2008-11-17&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://wrapping.marthaburtis.net/2008/11/17/revamp/&amp;rft.language=English"></span>
<p>One of my goals in my new role is to blog more regularly about the projects I&#8217;ll be working on. To that end, I&#8217;m going to use this post to kick off what will (hopefully) become a series about a project to revamp the <a href="http://www.umw.edu/doit/dtlt">DTLT Web site.</a> I&#8217;ve wanted to tackle this initiative for several years, but I never seemed to be able to carve out the time.</p>
<p>Because I&#8217;ve been thinking about this site for so long, I have a pretty good idea of how I&#8217;d like it to shape up. That said, another reason why it&#8217;s taken so long to get around to doing it is that everytime the project came up around the table it seemed like we&#8217;d talk it to death &#8212; and I&#8217;ll be the first to admit to leading the charge on over-talking the issue.</p>
<p>This time around, I&#8217;m planning on just putting something out there that seems to make sense to me and that reflects (as much as possible) the conversations that we have had in DTLT over the years about a new Web presence for the division. I figure we&#8217;ll take our usual iterative approach and something good will emerge. Er, at least I hope so.</p>
<p>I have another reason for wanting to tackle this project &#8212; and wanting to blog it. For quite sometime, we&#8217;ve been speculating about the feasibility of using Wordpress as an actual content  management system. We&#8217;re surely not the only folks doing this &#8212; there are quite a few more experienced Wordpress users out there who have tackled this issue. And, undoubtedly, the work that my colleague <a href="http://www.bavatuesdays.com">Jim Groom</a> does in Wordpress pushes these boundaries (and inspires me) regularly.</p>
<p>It often seemed, however, that when push came to shove, there was always something that prevented WP from being the right CMS solution. Although I think I&#8217;ve always suspected that with the right mix of plugins and the right theme, the problems could be surmounted.</p>
<p>So the other thing I&#8217;m going to be trying to do in some detail is narrate the process of piecing together various WP plugins in order to strike the right CMS note, so to speak. I&#8217;ve already found a few gems that I think are answers to several of our Web site prayers.</p>
<p>In my research into how to piece this system together, I was surprised at how hard it was to find a comprehensive approach to WP as a CMS. There are lots of people talking CMSing WP on various forums or at various plugin sites. But I couldn&#8217;t find anyone who was tackling the problem &#8220;cradle to grave,&#8221; so to speak. (I fully realize I may have just missed some amazing resources out there &#8212; please let me know if I have!). I&#8217;m not sure why this is. In a conversation the other day, Jim speculated that a lot of the work in this area is being done for commercial purposes, and the developers may not want to share all the details of how they trick out WP. Well, I don&#8217;t care about that for my purposes &#8212; UMW&#8217;s paying me regardless. <img src='http://wrapping.marthaburtis.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  So, I&#8217;m going to narrate away (including the missteps I take), and maybe I&#8217;ll create something useful for someone else down the road.</p>
<p>I tend to think about Web sites in terms of content types. I&#8217;m not sure that&#8217;s the best thing, but it&#8217;s how my brain works. Right now, I&#8217;ve got five main types of content I&#8217;d like to see us include:</p>
<ul>
<li><strong>(News) Posts:</strong> I&#8217;m calling them NEWS Posts just to dilineate them from the WP &#8220;posts.&#8221; Ultimately, I think I&#8217;ll be using WP Posts as the main content unit for all of these, and I want to not get muddled by the nomenclature. These are pretty self-explanatory: posts about news or announcement for our division.</li>
<li><strong>Projects</strong>: These would be brief descriptions of past or ongoing projects with screenshots, links, and a list of contributors.</li>
<li><strong>Opportunities</strong>: Any event, workshop, grant, contest, etc. that a faculty member of student might be interested in.</li>
<li><strong>Resources</strong>: These would be short write-ups of tools, technologies, software, hardware that could be used by faculty to augment the learning environment.</li>
<li><strong>People</strong>: To start, these would be write-ups of each of us in DTLT. Eventually, maybe we&#8217;d have write-ups for faculty collaborators</li>
</ul>
<p>There are a few other features I&#8217;m intersted in:</p>
<ul>
<li><strong>Subscriptions</strong>: A main goal of this site is to provide faculty with more and better news from DTLT. We can send out all-faculty emails, but I kind of hate that approach. My gut feeling is a lot of faculty just delete these unread. I&#8217;d like to create a system that allows a faculty member to opt-in to receiving our news, and, hopefully, with some granularity about what kind of news he/she gets.</li>
<li><strong>Events</strong>: I&#8217;d like a calendar of events. This is a bit tricky as there are other calendar sources that we contribute to at UMW. I&#8217;ll need to figure out if this can interoperate with them. I also need to figure out how Events and Opportunities are related.</li>
<li><strong>A Non-Bloggy Theme</strong>: I&#8217;m really aiming to push WP out of it&#8217;s blog boundaries for this project. I know it&#8217;s possible to build a perfectly good site that isn&#8217;t really a blog by using a blog theme, but I want to do something different. I&#8217;m investigating tricking out one of the more magazine-style themes.</li>
<li><strong>Cross-tagging and categories</strong>: To whatever extent possible, I&#8217;m hoping to use WP tags and categories to cross-link among all of the content typtes (that&#8217;s why it&#8217;s important to use posts and not pages as the content unit since pages don&#8217;t use categories)</li>
</ul>
<p>I&#8217;ve probably put the cart before the horse here. Any decent Web developer would probably say I should start by outlining my goals for the site. Don&#8217;t worry, I&#8217;ve thought about those issues. But, truth be told, I&#8217;m a concrete thinker. I need to start futzing in order to solidify my own understanding of my goals. So I will expand on that, but a little later.</p>
<p>In the meantime, I have done some initial development and research. So if you want to play along from home:</p>
<ul>
<li>I&#8217;m building the experimental site at <a href="http://www.marthaburtis.net/newdtlt">http://www.marthaburtis.net/newdtlt</a>. Be forewarned: this site is NOT ready for primetime. I fully expect to break it and blow it up regularly.</li>
<li>I&#8217;m going to post screenshots along the way in a Flickr collection. <a href="http://flickr.com/photos/marthagrace/sets/72157609359020436/">Link</a> <strike>forthcoming</strike>.</li>
<li>I&#8217;m tagging stuff I find that might be useful at <a href="http://delicious.com/mburtis/dtltsite">http://delicious.com/mburtis/dtltsite</a></li>
<li>Right now, the following plugins are looking very promising (particularly in concert with each other). If you know anything about them, feel free to share:
<ul>
<li><a href="http://freshout.us/goodies/fresh-post-for-wordpress-wordpress-cms/">Flutter</a> (formerly Fresh Post) allows you to create custom Write Panels that make use of WP custom fields (I&#8217;ve always thought custom fields must be part of the key to turning WP into a CMS</li>
<li><a href="http://dynamictangentconceptions.dtcnet.co.uk/downloads/wp-plugins/dtabs-dynamic-tabs-wordpress-plugin/">dTabs</a> is a pretty slick plugin for creating custom tabbed navigation. It allows you to link a tab to a page, a post, a category, a URL, etc. The styling can be a bit tricky.</li>
<li><a href="http://www.idealienstudios.com/code/ice/">Idealian Category Enhancements</a> allows you to designate a particular template to be used for a particular category, automatically.</li>
<li><a href="http://pixelplexus.co.za/blog/2007/11/20/plugin-to-change-wordpress-post-order/">AStickyPostOrderER</a> lets you manually order posts within a category, bypassing the automatic reverse chronological ordering.</li>
</ul>
</li>
</ul>
<p>The theme I&#8217;m playing with right now is called <a href="http://www.gabfire.com/">Wordpress Magazine</a>. It&#8217;s a pretty clean, block-style, magazine theme. I&#8217;m not sure it&#8217;s the right one long-term, but it&#8217;ll do as I experiment.</p>
<p>So, I have no idea if this will be useful or even interesting to anyone else. But, that&#8217;s okay. In the end, I think this will be useful narration for me as I develop a better understanding of my project and my tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://wrapping.marthaburtis.net/2008/11/17/revamp/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
