<?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>ClioWeb &#187; WordPress</title>
	<atom:link href="http://clioweb.org/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://clioweb.org</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Tue, 10 Jan 2012 01:45:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Academic Technology Goals for Higher Education</title>
		<link>http://clioweb.org/2009/03/12/academic-technology-goals-for-higher-education/</link>
		<comments>http://clioweb.org/2009/03/12/academic-technology-goals-for-higher-education/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 17:14:28 +0000</pubDate>
		<dc:creator>clioweb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[Moodle]]></category>
		<category><![CDATA[social networks]]></category>
		<category><![CDATA[Teaching]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://clioweb.org/?p=691</guid>
		<description><![CDATA[<strong>12 March 2009 &#183;</strong> Jeff McClurken's recent post, "Writing a Strategic Plan for Academic Technologies and Libraries," asks a really great question: If given the task of writing a strategic plan for a small institution, what would your top academic technology goals be? After teaching several undergraduate courses, and while currently teaching a graduate course, I've thought about my own goals at a classroom-level, and I think these goals could be applied to a broader strategic plan for a university. <a href="http://clioweb.org/2009/03/12/academic-technology-goals-for-higher-education/">Continue reading&#8230;</a>]]></description>
			<content:encoded><![CDATA[<p>Jeff McClurken&#8217;s recent post about <a href="http://mcclurken.blogspot.com/2009/03/writing-strategic-plan-for-academic.html">Writing a Strategic Plan for Academic Technologies and Libraries</a> asks a really great question: If given the task of writing a strategic plan for a small institution, what would your top academic technology goals be? After teaching several undergraduate courses, and while currently teaching a graduate course, I&#8217;ve thought about these goals at a classroom-level, but I think these goals could be applied to a broader strategic plan for a university.</p>
<h2>1. Make sure students graduate as skilled, thoughtful consumers and producers of digital media</h2>
<p>Several smaller goals fit into this:</p>
<ul>
<li><strong>Learn how to search</strong> &ndash; Read <a href="http://digitalhistoryhacks.blogspot.com/">Bill Turkel&#8217;s blog</a>. If you&#8217;re not convinced search is important, <a href="http://digitalhistoryhacks.blogspot.com/2008/10/navigating-digital-history.html">READ</a> <a href="http://digitalhistoryhacks.blogspot.com/2008/07/towards-computational-history.html">IT</a> <a href="http://digitalhistoryhacks.blogspot.com/2008/01/search-comes-first.html">AGAIN</a>. There is more to search than Google, and learning how various searches work—and, more importantly, how to make search for work you—is an incredibly valuable skillset beyond college.</li>
<li><strong>Learn how to manage information flow</strong> &ndash; For better or for worse, the information age is in overdrive, and <a href="http://digitalhistoryhacks.blogspot.com/2008/01/all-is-flux.html">all is in flux</a> (thanks again, Bill). But there are tools and services to help you manage that flow, and it should be one of the goals of any university to help students learn how to manage that information. If we want to encourage students to expand their learning beyond the classroom (and I really think we should), then universities need to prepare students for managing the mass of information that comes with it.</li>
<li><strong>Learn how to produce meaningful, well-composed content and share it with others</strong> &ndash; Rob Wall argues that, in the 21st century, <a href="http://robwall.ca/2009/03/10/creativity-is-the-new-technology/">&#8220;creativity is the new technology.&#8221;</a> Its incredible to think of the various ways people can produce and share content for equally various purposes. Anyone with an internet connection can sign up for a weblog right now, and begin producing and sharing content, right now. Anyone with an internet connection can produce and share data visualizations. Anyone with a computer and webcam can record and <a href="http://youtube.com">share</a> <a href="http://vimeo.com">video</a>. Anyone who can search the web can find audio content, and <a href="http://huffduffer.com/">create a podcast with it</a>. With all of this opportunity for new ways to create narrative and share ideas comes a real need for universities to teach students new ways to compose those narratives and share those ideas.</li>
<li><strong>Learn how to critique content and methodology</strong> &ndash; Along with providing the ability to produce content in a variety of media, universities must provide the tools and skills to help students critique content, and discern the effectiveness and usefulness of particular technologies and media. One of the tenants of Mason&#8217;s PhD in History and New Media program is &#8220;critical optimism&#8221;. So, while we are optimistic about the changes that new media can bring to the practice of history, we&#8217;re critical about the specific methods that particular media employ. This is an approach that, I think, is already common in most classrooms. In my history course, I teach students how to critically read primary <strong>and</strong> secondary sources, and how to discern other methodological approaches to a particular issue. These skills are equally important—if not more important—when using and producing digital media.</li>
</ul>
<h2>2. Use free, open-source, and/or extensible tools whenever possible, and encourage faculty, staff, and students to do the same.</h2>
<p>Universities spend countless millions on closed, proprietary systems like Blackboard and WebCT, systems that are very overbearing in their pedagogical approaches. In contrast, signing up for a weblog like <a href="http://wordpress.com">WordPress</a> is free (and there are plenty of <a href="http://www.weblog.com/">other</a> <a href="http://blogger.com">free</a> <a href="http://edublogs.org">options</a>), and the uses for blogs in classes are limitless. While a little more difficult for the average instructor, <a href="http://moodle.org">Moodle</a> is a free, open-source alternative to other learning management systems, and boasts a significant developer community contributing plugins and modules for extended functionality. There&#8217;s more this, though, than learning management systems: web browsers, word processing, screencasting, image editing, audio/video editing, to name a few.  The specific tool, of course, should be chosen based on need and goals, but opting for extensible, open-source, and free alternatives will save universities money, provide more flexibility to instructors, and encourage the university community to do with software what it already tries to do with teaching and research: Contribute knowledge and resources back to the world.</p>
<h2>3. Foster academic use of technologies that breaks down boundaries of the classroom, and the university as a whole.</h2>
<p>As academic departments face budget cuts and lose staff positions if their enrollments are down, this may be the most difficult, but I think the most potentially beneficial, of all the goals. At the American Historical Association&#8217;s annual meeting in January, I presented on how I use technology to break down barriers to learning in my courses. <a href="http://edwired.org" rel="friend met colleague muse">Mills Kelly</a> has written extensively on <a href="http://edwired.org/?s=%22the+future+of+the+course%22">the future of the course</a>, and argues that positive change in learning on university campuses will happen when students take individual responsibility for their own learning. Mills is particularly keen on the ideas of an iTunes-like class, where students can choose specific bits and pieces in a course that interests them. Others have spoken of the <a href="http://www.youtube.com/watch?v=XwM4ieFOotA">networked learner</a>, and of learning environments that are <a href="http://www.ed4wb.org/?p=152">not isolated from the rest of the world</a>, but rather expand through a <a href="http://www.ed4wb.org/?p=164">bottom-up approach</a>. While I really like the potential for learning in a <a href="http://www.edutopia.org/collaboration-age-technology-will-richardson">world without walls</a>, I think there are some uses for the &#8220;artificial community&#8221; that is the classroom; Namely, that courses bring together people who would otherwise not talk to each other, and potentially allow for more diversity in perspectives. Learning based purely on social networking brings with it the danger of learning only inside the enclaves we create for ourselves based solely on who/what we like or who/what we&#8217;re comfortable with. But I think a balance can be struck, and I think universities should employ academic technologies to find and encourage that balance between classroom and independent learning.</p>
<p>So, there are at least three goals I think academic institutions should try to achieve regarding academic technology. Its certain good food for thought, and I&#8217;ll continue thinking about these goals for my own teaching and research. I imagine, though, that there are plenty more goals to add. So, lets help Jeff out. What would your academic technology goals be?</p>
]]></content:encoded>
			<wfw:commentRss>http://clioweb.org/2009/03/12/academic-technology-goals-for-higher-education/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>New (and Updated) WordPress Plugins</title>
		<link>http://clioweb.org/2009/01/12/new-and-updated-wordpress-plugins/</link>
		<comments>http://clioweb.org/2009/01/12/new-and-updated-wordpress-plugins/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 04:18:47 +0000</pubDate>
		<dc:creator>clioweb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Courseware]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[ScholarPress]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://clioweb.org/?p=603</guid>
		<description><![CDATA[<strong>12 January 2009 &#183;</strong> I spent a little time this weekend updating some plugins I&#8217;ve had in the hopper. First, Zac Gordon and I updated ScholarPress Courseware to work with WordPress 2.7. Many thanks to Zac for helping to update Courseware&#8217;s interface elements to match 2.7&#8242;s admin theme, and for adding an easy date picker to the schedule edit [...] <a href="http://clioweb.org/2009/01/12/new-and-updated-wordpress-plugins/">Continue reading&#8230;</a>]]></description>
			<content:encoded><![CDATA[<p>I spent a little time this weekend updating some plugins I&#8217;ve had in the hopper. First, <a href="http://zgordon.org/" rel="met contact">Zac Gordon</a> and I updated <a href="http://wordpress.org/extend/plugins/scholarpress-courseware/">ScholarPress Courseware</a> to work with WordPress 2.7. Many thanks to Zac for helping to update Courseware&#8217;s interface elements to match 2.7&#8242;s admin theme, and for adding an easy date picker to the schedule edit form. There are still some inconsistencies in the plugin between WP 2.6 and 2.7, but we did the best we could. We&#8217;ll continue to make improvements to Courseware, so stay tuned at <a href="http://scholarpress.net">ScholarPress</a>.</p>
<p>I also cleaned up a few custom plugins that I&#8217;ve used on ClioWeb and various other sites. These two plugins, CW Author Base and CW Page Categories, do some simple stuff, but they&#8217;ve been handy to me, so I&#8217;m sharing them here in hopes that they&#8217;re useful to someone else.</p>
<ul>
<li><a href="/downloads/cw_authorbase.txt">CW Author Base</a>&mdash;This is a really simple plugin that lets you change the base for author URLs in WordPress. You can already do this for categories and tags in WordPress under the Settings tab, but not author URLs. I think this should be part of the core, but its not. So, if you wanna change the author URL base, save this file as a .php</li>
<li><a href="/downloads/cw_pagecategories.txt">CW Page Categories</a>&mdash;Another very simple plugin that lets you add categories to a page. It includes a template function called <code>cw_listcategories()</code> that you can use in the sidebar to list pages under a category heading. You can also return an array of pages with <code>cw_getpagesbycat($cat)</code> and replace <code>$cat</code> with the category ID.</li>
</ul>
<p>As always, if you have suggestions for improvement, or add you own code to these plugins, please share!</p>
]]></content:encoded>
			<wfw:commentRss>http://clioweb.org/2009/01/12/new-and-updated-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Part Four: Front-End Development</title>
		<link>http://clioweb.org/2008/10/11/part-four-front-end-development/</link>
		<comments>http://clioweb.org/2008/10/11/part-four-front-end-development/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 00:30:50 +0000</pubDate>
		<dc:creator>clioweb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CHNM]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Omeka]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://clioweb.org/?p=28</guid>
		<description><![CDATA[<strong>11 October 2008 &#183;</strong> Front-end development involves codes that deals with how things are displayed in a browser. This includes HTML, CSS, and JavaScript. Back-end development, in contrast, refers to the development on the code and technologies that the end-user hardly ever sees. This includes PHP, MySQL, XML, Perl, or any other languages that affects how a site works [...] <a href="http://clioweb.org/2008/10/11/part-four-front-end-development/">Continue reading&#8230;</a>]]></description>
			<content:encoded><![CDATA[<p>Front-end development involves codes that deals with how things are displayed in a browser. This includes <abbr title="Hypertext Markup Language">HTML</abbr>, <abbr title="Cascading Style Sheets">CSS</abbr>, and JavaScript. Back-end development, in contrast, refers to the development on the code and technologies that the end-user hardly ever sees. This includes <abbr title="Hypertext Pre-Processor">PHP</abbr>, MySQL, <abbr title="Extensible Markup Language">XML</abbr>, Perl, or any other languages that affects how a site works underneath. Back-end development usually involves database interaction and programming, installing and modifying any number of content management systems. The lines between front and back-end work can be very blurry. For the purposes of this article I&#8217;ll be talking about front-end development only; Back-end develop is equally important, but also warrants more space for discussion&mdash;perhaps even another post series!</p>
<p>Front-end development usually can&#8217;t take place until decisions have been made about the front-end design (discussed in the last post). At <span class="vcard"><a href="http://chnm.gmu.edu" class="url"><abbr title="Center for History and New Media" class="fn org">CHNM</abbr></a></span>, we&#8217;ve build projects where there was one designer, one front-end developer, and one back-end developer, all working in concert to build a project. And, we&#8217;ve built projects that had one person doing all three. Whatever your staffing situation, here&#8217;s what goes on in this phase:</p>
<ul>
<li>Photoshop mockups are translated into working HTML/CSS mockups</li>
<li>Naming conventions in code are set and documented.</li>
<li>Design is tested in browsers.</li>
<li>HTML templates are then used to build out the final version of the site (in CMS, or as static pages)</li>
</ul>
<h2>1) Create <abbr>HTML</abbr> Mockups</h2>
<p>To facilitate faster development of HTML mockups, I&#8217;ve created a &#8220;starter kit&#8221; that is essentially a directory with a basic file structure and pre-coded files for <abbr>HTML</abbr>, <abbr>CSS</abbr>, and JavaScript. You can download my <a href="/downloads/starter.zip">example starter kit</a> and take a look at how I set it up. The file structure I generally follow is:</p>
<pre>
	<code>
/starter/
	index.php
	/c/
		screen.css
		print.css
		...any other <abbr>CSS</abbr> files.

	/j/
		global.js
		...any other necessary javascript files or libraries.

	/i/
		...any necessary images for the design. Background
                images, logos, etc.
	</code>
</pre>
<p>My HTML and CSS files also have a basic structure I usually follow. My starter HTML file looks like this:</p>
<pre>
<code>
&lt;body&gt;
	&lt;div id="skiplink" class="hide"&gt;&lt;a href="#content"&gt;Skip to Content&lt;/a&gt;&lt;/div&gt;
	&lt;div id="wrap"&gt;
		&lt;div id="header"&gt;
			&lt;h1 id="site-title"&gt;Site Title&lt;/h1&gt;
			&lt;ul id="sitenav" class="navigation"&gt;
				&lt;li&gt;&lt;a href="#"&gt;Lorem&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Ipsum&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Dolor&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;Amet&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/div&gt;
		&lt;div id="content"&gt;
			&lt;div id="primary"&gt;&lt;/div&gt;
			&lt;div id="secondary"&gt;&lt;/div&gt;
			&lt;div id="tertiary"&gt;&lt;/div&gt;
		&lt;/div&gt;
		&lt;div id="footer"&gt;
			&lt;p&gt;Footer Info&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/body&gt;
</code>
</pre>
<p>This is a good point for the front-end developer to come up with (and stick to!) naming conventions for various ids and classes used throughout the site. I&#8217;ve found that using #primary, #secondary, #tertiary, and so on, gets me thinking less about the presentation of that content, and more about its relative importance. Its not a perfect solution, and sometimes I have to ditch this convention in favor of others, but the point is that you have a convention, and you follow it throughout your site.</p>
<p>My <abbr>CSS</abbr> file starts with generic styling of basic elements, followed by any global classes I use throughout the site, then moves on to each section of the page (wrap, header, content, footer). Here&#8217;s an example:</p>
<pre>
	<code>

/* == Reset == */
@import url("reset.css");

/* == Generic styles ======== */
body {font:62.5% "Helvetica Neue", Helvetica, Arial, sans-serif; color:#222;
    background:#fff;}

/* Headings */
h1 {font-size:3.6em; line-height:1em; margin-bottom:1em;}
h2 {font-size:3em; line-height:1em; margin-bottom:1em;}
h3 {font-size:1.8em; line-height:1em; margin-bottom:1em; font-weight:bold;}
h4 {font-size:1.5em; line-height:1.2em; margin-bottom:1.2em; font-weight:bold;}
h5 {font-size:1.5em; line-height:1.2em; margin-bottom:1.2em; color: #999;}
h6 {font-size:1.2em; line-height:1.5em; margin-bottom:1.5em; font-weight:bold;}

/* Links */
a:link {}
a:visited {}
a:focus {}
a:hover {}
a:active {}

h1 a, h2 a, h3 a {text-decoration:none;}

/* Misc Elements */
p,ul,ol,dl,blockquote,address {font-size:1.2em; line-height:1.5em;
    margin-bottom:1.5em;}
ul {}
ol {}
dl {}
blockquote {}
address {}

/* == Wrap == */
#wrap {width:882px; margin:0 auto;}

/* == Header == */
#header {}

/* == Content == */
#content {}

	#primary {}
	#secondary {}
	#tertiary {}

/* == Footer == */
#footer {}
		</code>
	</pre>
<p>As you can see, I start out with some things already filled in (typography&mdash;font sizes, line-heights, margins), but some things I leave blank and fill in as I go. This is a personal preference, and I change things around from project to project. But this gets me started.</p>
<p>Using this starter kit, I build out <abbr>HTML</abbr>/<abbr>CSS</abbr> mockups based on the Photoshop mockups created in the last stage. I generally try to build the same pages that were presented to the project team, and strive to make the HTML version look and feel the same as the color mockups as much as possible. But, its important to remember than a design will never completely look the same in Photoshop and in the browser, and will rarely look the same across different browsers. Striving for pixel perfection to the color mockup across browsers, while sounding noble, ends up being a significant waste of time. The goal should be to make the HTML mockups look like the color mockups as much as possible, but also be usable and useful to the end-user. If one section of a site is bigger by one point on one browser, its probably not worth the time to figure out why.  If its using a completely different typeface, then maybe you have a problem.</p>
<h2>2) Test Mockups in Browsers</h2>
<p>The advantage to doing HTML mockups before diving straight into the entire project is that you can 1) do the prototypes quickly, and 2) test the design in browsers before doing all the work to apply the design to dynamic content. At <abbr>CHNM</abbr>, we test in the following browsers:</p>
<dl>
<dt>Windows</dt>
<dd>
<ul>
<li>Firefox 3</li>
<li>Internet Explorer 6</li>
<li>Internet Explorer 7</li>
<li>Opera</li>
</ul>
</dd>
<dt>Macintosh</dt>
<dd>
<ul>
<li>Firefox 3</li>
<li>Opera</li>
<li>Safari</li>
</ul>
</dd>
</dl>
<p>I try my best to test every single page, but I usually miss a few pages, so its good to have one or more people test your site on different browsers. When taking notes, I generally make a list that starts with the browse in quest, then a subheadings with the title and path of the page I&#8217;m looking at, and then specific issues for that page. For example:</p>
<blockquote>
<h3>Internet Explorer 6</h3>
<h4>Items Browse page &#8211; example.com/items/browse/</h4>
<ul>
<li>Items content extends past page boundary</li>
<li>Individual item titles not showing up</li>
<li>Layout for main column and sidebar is broken (aren&#8217;t showing up side by side)</li>
</ul>
</blockquote>
<p>This allows me to first focus on a particular browser, then focus on a particular page (and know what its <abbr title="Uniform Resource Locator">URL</abbr> is), and get those issues working for that browser. I&#8217;ve found that a lot of issues on one page are similar to other pages, so solving it once usually fixes it globally. But, I like to note each problem on each page, because there may be other issues at play.</p>
<h2>3) Applying to Dynamic Content</h2>
<p>After you&#8217;ve completed <abbr>HTML</abbr> mockups and tested them in various browser, its time to use them when working with dynamic content. If your project is just going to be static pages, simply keep building out HTML pages as you did for the HTML mockups. But if you&#8217;ll be working with data in a database, now&#8217;s the time to learn a little bit about the kind of code you&#8217;ll be using to pull data into your HTML dynamically.</p>
<p>One piece of advice I can give on back-end development is: avoid reinventing the wheel as much as possible. That is to say, look to see if there are solutions available to make your development process easier before deciding to write something from scratch. With <a href="http://omeka.org">Omeka</a>, the project team met early on and explored options for doing the kinds of things with wanted to do with other content management systems (<a href="http://drupal.org">Drupal</a>, <a href="http://wordpress.org">WordPress</a>), and determined that the problems we wanted to solve required that we write something new. But even then, we did completely start from scratch. We use a <abbr>PHP</abbr> framework, <a href="http://zend.com">Zend</a>, as the base for the application, which makes development much more rapid and stable than if we wrote our own framework from scratch.</p>
<p>The data needs for a project can greatly impact the kinds of technology a project will need to use (or can&#8217;t use). I recommend that the development person/team make a list of any available content management systems, frameworks, and libraries and rate their qualities based on what your project needs to accomplish. For example, at <abbr>CHNM</abbr> we&#8217;ve use Drupal, Omeka, and WordPress for different projects based on their needs. We build Omeka, and we think it rocks, but its not right for every site. Neither is Drupal or WordPress, or any other <abbr>CMS</abbr> out there.</p>
<p>When I&#8217;m choosing a <abbr>CMS</abbr> or library or framework, I like to give myself some time to figure out how I would build the site with each one (if possible), determine which is most efficient and maintainable, and then go with the best choice.</p>
<p>Some examples:</p>
<dl>
<dt>Content Management Systems</dt>
<dd>
<ul>
<li><a href="http://drupal.org">Drupal</a></li>
<li><a href="http://expressionengine.com">ExpressionEngine</a></li>
<li><a href="http://joomla.org">Joomla</a></li>
<li><a href="http://moodle.org">Moodle</a></li>
<li><a href="http://omeka.org">Omeka</a></li>
<li><a href="http://wordpress.org">WordPress</a></li>
</ul>
</dd>
<dt>PHP Frameworks</dt>
<dd>
<ul>
<li><a href="http://cakephp.org">CakePHP</a></li>
<li><a href="http://codeigniter.com">CodeIgniter</a></li>
<li><a href="http://symfony-project.org">Symfony</a></li>
<li><a href="http://zend.com">Zend</a></li>
</ul>
</dd>
<dt>JavaScript frameworks and libraries</dt>
<dd>
<ul>
<li><a href="http://dojotoolkit.org">Dojo</a></li>
<li><a href="http://jquery.com">jQuery</a></li>
<li><a href="http://prototypejs.org">Prototype</a></li>
<li><a href="http://mootools.net">MooTools</a></li>
<li><a href="http://developer.yahoo.com/yui/">Yahoo UI</a></li>
</ul>
</dd>
</dl>
<p>Many of you will be developing projects that rely on some kind of content management system that employs a theme API to pull content from a database. WordPress and Omeka are two such systems that I&#8217;ve worked with very closely, but other such as Drupal, <a href="http://joomla.org">Joomla</a>, and <a href="http://expressionengine.com">ExpressionEngine</a> are others that you might be using. One of the final jobs of the front-end developer is take the static HTML mockups she/he has created, and apply the <abbr>HTML</abbr> structure to the template files used in one of those systems. In some cases your front-end and back-end developer (if they&#8217;re two different people) will need to work together to make sure their individual contributions to the project can work together. A back-end developer, for example, may need to explain to a front-end developer about how certain theme <abbr title="Application Programming Interface">API</abbr> calls work and where to put them in the <abbr>HTML</abbr> template, while a front-end developer may need to explain to a back-end developer than the content a plugin generates needs to be in an unordered list with a specific <code>id</code> and <code>class</code> attribute. In short, there&#8217;s a point where the two types of development merge, usually a few weeks before the site launches.</p>
<p>This will also be a time when the front-end developer will have to account for specific kinds of content not covered in the <abbr>HTML</abbr> mockups. This will happen as content for the site gradually gets added to the database, and all the sections and pages for the site outlined in the site map emerge. You may have to add some specific styles for certain content. But the work you&#8217;ve already done will make this process much faster. Once you&#8217;ve done all of this, maybe run some more browser testing for anything new you&#8217;ve added since the <abbr>HTML</abbr> mockups, your site should be ready for launch!</p>
]]></content:encoded>
			<wfw:commentRss>http://clioweb.org/2008/10/11/part-four-front-end-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>THATPodcast</title>
		<link>http://clioweb.org/2008/01/27/thatpodcast/</link>
		<comments>http://clioweb.org/2008/01/27/thatpodcast/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 16:15:58 +0000</pubDate>
		<dc:creator>clioweb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CHNM]]></category>
		<category><![CDATA[Courseware]]></category>
		<category><![CDATA[Omeka]]></category>
		<category><![CDATA[podcasting]]></category>
		<category><![CDATA[ScholarPress]]></category>
		<category><![CDATA[THATPodcast]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://clioweb.org/2008/01/thatpodcast/</guid>
		<description><![CDATA[<strong>27 January 2008 &#183;</strong> As the crew from Digital Campus have already announced, Dave Lester and I published our first episode of our new podcast, THATPodcast. The first show focused on WordPress, and included an interview with Matt Mullenweg, the creator of WordPress, and a screencast covering our plugin ScholarPress Courseware. Even though I had taken a digital history [...] <a href="http://clioweb.org/2008/01/27/thatpodcast/">Continue reading&#8230;</a>]]></description>
			<content:encoded><![CDATA[<p>As the crew from <a href="http://digitalcampus.tv">Digital Campus</a> <a href="http://www.dancohen.org/2008/01/18/that-podcast-launches/">have</a> <a href="http://edwired.org/?p=267">already</a> <a href="http://www.foundhistory.org/2008/01/25/that-podcast/">announced</a>, <a href="http://davelester.org" rel="friend met contact coworker colleague">Dave Lester</a> and I published our <a href="http://thatpodcast.org/episodes/wordpress/">first episode</a> of our new podcast, <a href="http://thatpodcast.org">THATPodcast</a>. The first show focused on <a href="http://wordpress.org">WordPress</a>, and included an interview with <a href="http://ma.tt" rel="contact">Matt Mullenweg</a>, the creator of WordPress, and a screencast covering our plugin <a href="http://scholarpress.net/courseware/">ScholarPress Courseware</a>.</p>
<p>Even though I had taken a <a href="http://www.archiva.net/hist615ay04/">digital history documentary</a> class a few years ago, it still surprised me how much work creating a podcast involved. Like Dave, though, I&#8217;m pretty happy with what we came up with, despite getting a little rushed. Dave did a lot of work at the end, so most of the credit for the success of the first show should go to him. Thanks, Dave.</p>
<p>Our plan is to roll out a new <a href="http://thatpodcast.org">THATPodcast</a> show once a month. In February our show will cover <a href="http://omeka.org">Omeka</a>, the free, open source platform for managing collections and exhibits now in development at the <a href="http://chnm.gmu.edu" rel="employer">Center for History and New Media</a>. We&#8217;re going to time episode two with the public release of <a href="http://omeka.org">Omeka</a>, so be sure to check back next month!</p>
]]></content:encoded>
			<wfw:commentRss>http://clioweb.org/2008/01/27/thatpodcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In the Works</title>
		<link>http://clioweb.org/2007/11/14/in-the-works/</link>
		<comments>http://clioweb.org/2007/11/14/in-the-works/#comments</comments>
		<pubDate>Wed, 14 Nov 2007 14:26:57 +0000</pubDate>
		<dc:creator>clioweb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CHNM]]></category>
		<category><![CDATA[Omeka]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[ScholarPress]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://clioweb.org/2007/11/in-the-works/</guid>
		<description><![CDATA[<strong>14 November 2007 &#183;</strong> <p>After a few months away from blogging, I'm taking it up again. Here's a rundown of what I've been doing the last few months.</p> <a href="http://clioweb.org/2007/11/14/in-the-works/">Continue reading&#8230;</a>]]></description>
			<content:encoded><![CDATA[<p>After a few months away from blogging, I&#8217;m taking it up again. Here&#8217;s a rundown of what I&#8217;ve been doing the last few months:</p>
<h2>ScholarPress</h2>
<p><a href="http://chnm.gmu.edu/news/">CHNM News</a> and <a href="http://davelester.org" rel="friend met colleague co-worker">Dave</a> have already pointed this out: Dave and I have started <a href="http://scholarpress.net" rel="me">ScholarPress</a>, a suite of WordPress plugins with academics in mind. We have two already out in the world, being downloaded as we speak, and a few more in the works.</p>
<p>The first plugin is Dave&#8217;s WPBook plugin, which acts as a bridge between a WordPress blog and a Facebook application. I&#8217;ve used the plugin to put my course information, pulled directly from my <a href="/courses/history120/fall07/">course website</a>, in an application on Facebook that students can add to their profiles. Just another way to make course information available to students.</p>
<p>The second plugin, Courseware, was originally created by me and <a href="http://epistemographer.com" rel="friend met colleague">Josh Greenberg</a> over the summer of 2006. I&#8217;ve used it for all of the classes I&#8217;ve taught so far. It gives you the ability to manage a syllabus, bibliography, and assignments through a WordPress blog. I&#8217;ve always set up a WordPress blog for my course site, and used Courseware to publish class assignments and meetings. The schedule page includes a link to subscribe to the schedule in a calendar application; it parses events marked up with <a href="http://microformats.org">microformats</a> and creates a vCal file.</p>
<p>A few other plugins in the works:</p>
<ul>
<li><strong>Gradebook</strong>&mdash;a plugin that works with Courseware to give instructors the ability to store and share grades securely with students.</li>
<li><strong>Bibliographer</strong>&mdash;I&#8217;m considering making the bibliography portion of the Courseware plugin separate, and beefing it up to do multiple reading lists, reviews, ratings, etc. Of course, it would work with Courseware.</li>
<li><strong>Footnoter</strong>&mdash;Would give post writers the ability to easily and quickly add footnotes to blog posts through the WYSIWYG editor of WordPress, and have the footnotes appear when hovering over the superscripted note.</li>
<li><strong>Highlighter</strong>&mdash;This plugin would allow readers to select a portion of a blog post or page and associate a comment with that selection.</li>
</ul>
<h2>Omeka</h2>
<p>The biggest project I&#8217;ve been working on at <a href="http://chnm.gmu.edu" rel="employer current">CHNM</a> for the past few months is <a href="http://omeka.org">Omeka</a>. Put simply, Omeka is a simple platform to allow cultural institutions (museums, historical societies, libraries), or pretty much anyone, to manage and publish items, collections, and exhibits on the Web. We&#8217;ve used earlier versions of Omeka to power the <a href="http://hurricanearchive.org">Hurricane Digital Memory Bank</a> and <a href="http://objectofhistory.org">Object of History</a>, and we&#8217;re using the latest releases of Omeka to run a few projects currently under development, like <a href="http://gulaghistory.org">Gulag: Many Days, Many Lives</a>, which is set to launch at the end of November.</p>
<p>If you&#8217;re interested in getting on the list of beta testers before the public release (which is early March), visit <a href="http://omeka.org">Omeka&#8217;s website</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://clioweb.org/2007/11/14/in-the-works/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Listing Pages with WordPress</title>
		<link>http://clioweb.org/2006/08/24/listing-pages-with-wordpress/</link>
		<comments>http://clioweb.org/2006/08/24/listing-pages-with-wordpress/#comments</comments>
		<pubDate>Thu, 24 Aug 2006 22:44:46 +0000</pubDate>
		<dc:creator>clioweb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://clioweb.org/archive/2006/08/24/listing-pages-with-wordpress/</guid>
		<description><![CDATA[<strong>24 August 2006 &#183;</strong> <p>For you <a href="http://wordpress.org">WordPress</a> geeks out there: I've recently had the need to list the child pages of a particular page <strong>in addition to</strong> listing those same pages once you visit a child page. In this case, I only have <strong>one level of child pages</strong></p> <a href="http://clioweb.org/2006/08/24/listing-pages-with-wordpress/">Continue reading&#8230;</a>]]></description>
			<content:encoded><![CDATA[<p>For you <a href="http://wordpress.org">WordPress</a> geeks out there: I&#8217;ve recently had the need to list the child pages of a particular page <strong>in addition to</strong> listing those same pages once you visit a child page. In this case, I only have <strong>one level of child pages</strong>. So, my page structure looked like this:</p>
<ul>
<li>Main Page
<ul>
<li>Subpage One</li>
<li>Subpage Two</li>
<li>Subpage Three</li>
</ul>
</li>
</ul>
<p>You&#8217;d want to list the same subpages on <em>both</em> the Main Page and the respective subpages. I came up with a simple solution. First, we need to query the post to get its information. So I set up a PHP variable <code>$page</code> and set it equal to <code>$wp_query-&gt;post;</code>. Then a create another variable called <code>$parent_id</code> and do a database query to get the ID of the <code>$page</code> variable&#8217;s <code>post_parent</code>. Of course, if <code>$parent_id</code> is empty, then that means the page has no parent, and is thus a Main Page. So, for this case, I throw in a simple <code>if</code> check that will set an empty <code>$parent_id</code> to the page&#8217;s ID, which is found using <code>$post-&gt;ID</code>. The full script for finding this info, which I put in the <code>&lt;head&gt;</code>, is:</p>
<ol class="code">
<li>&lt;?php</li>
<li>    $page = $wp_query-&gt;post;</li>
<li>    $parent_id = $wpdb-&gt;get_var(&#8220;SELECT ID FROM $wpdb-&gt;posts WHERE ID = &#8216;$page-&gt;post_parent;&#8217;&#8221;);</li>
<li>    if(!$parent_id) $parent_id = $post-&gt;ID;</li>
<li>?&gt;</li>
</ol>
<p><strong>Then</strong>, to actually generate the HTML for the page list, I use the following code in the body of my page template:</p>
<ol class="code">
<li>&lt;?php if(wp_list_pages(&#8220;child_of=&#8221;.$parent_id.&#8221;&amp;echo=0&#8243;)): ?&gt;</li>
<li>    &lt;ul id=&#8221;subnav&#8221;&gt;</li>
<li>        &lt;?php</li>
<li>            wp_list_pages(&#8220;title_li=&amp;child_of=&#8221;.$parent_id.&#8221;&amp;depth=1&#8243;);</li>
<li>        ?&gt;</li>
<li>    &lt;/ul&gt;</li>
<li>&lt;?php endif; ?&gt;</li>
</ol>
<p>In a nutshell, the second part of the script does two things. First, an <code>if</code> statement checks to see if there are in fact subpages for the page&#8217;s value for <code>$parent_id</code>. That&#8217;s the <code>&lt;?php if(wp_list_pages("child_of=".$parent_id."&amp;echo=0")): ?&gt;</code> line. So, if a page doesn&#8217;t have subpages, it won&#8217;t generate the unordered list. Remember, if the page is a Main Page, <code>$parent_id</code> is the page&#8217;s ID (see the explanation above). Second, if the first check goes through, then the script will generate the list of pages using the <code>wp_list_pages()</code> WordPress template function, using the <code>$parent_id</code> in its argument for <code>child_of</code>. For more info on how the <code>wp_list_pages()</code> works, see the WordPress Codex page <a href="http://codex.wordpress.org/Template_Tags/wp_list_pages">Template Tags/WP List Pages</a>.</p>
<p>There might be better solutions for this kind of problem, but I thought I&#8217;d share it and see if there are ways to improve the scripts. It&#8217;s working pretty well for me, and I think there are multiple ways to use this kind of page query to make page-specific additions to your site. I do need to come up with a solution for multiple levels of pages (two or more levels deep). If anyone has thoughts on that, please leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://clioweb.org/2006/08/24/listing-pages-with-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

