<?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>Plymouth Design Group &#187; Projects</title>
	<atom:link href="http://plymdesign.com/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://plymdesign.com</link>
	<description></description>
	<lastBuildDate>Mon, 01 Aug 2011 15:35:56 +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>Adding hyperlinks to NextGen Gallery MonoSlideshow</title>
		<link>http://plymdesign.com/projects/adding-hyperlinks-to-nextgen-gallery-monoslideshow/</link>
		<comments>http://plymdesign.com/projects/adding-hyperlinks-to-nextgen-gallery-monoslideshow/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 16:29:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://plymdesign.com/?p=158</guid>
		<description><![CDATA[We use the NextGEN Gallery plugin for WordPress on several sites and recently looked at extending it to work with MonoSlideshow. So we installed the NextGEN &#8211; MonoSlideshow plugin. One thing missing from this latter plugin is the ability to create hyperlinks for each of the images in the gallery that MonoSlideshow presents. The NextGEN [...]]]></description>
			<content:encoded><![CDATA[<p>We use the <a href="http://wordpress.org/extend/plugins/nextgen-gallery/">NextGEN Gallery plugin</a> for WordPress on several sites and recently looked at extending it to work with <a href="http://www.monoslideshow.com">MonoSlideshow</a>.  So we installed the <a href="http://wordpress.org/extend/plugins/nextgen-monoslideshow/">NextGEN &#8211; MonoSlideshow plugin</a>.  One thing missing from this latter plugin is the ability to create hyperlinks for each of the images in the gallery that MonoSlideshow presents.  The <a href="http://wordpress.org/extend/plugins/nextgen-gallery-custom-fields/">NextGEN Gallery Custom Fields plugin</a> gets you a bit closer but not all the way there &#8211; it allows you to create the field for the hyperlink but you will need to do a bit more to pull all the pieces together.</p>
<p>The final step involves a bit of modification to the xml.php file within the NextGEN &#8211; MonoSlideshow plugin.  See the modified code below.  First add the <strong>followImageLinks=&#8217;true&#8217;</strong> attribute in the album configuration on line 43.  Create a variable for your link as we have in line 62 which calls the custom field for your hyperlink that you created within the Custom Fields plugin using the nggcf_get_field function.  Finally, add your link to the returned array in line 66.</p>
<p>Here is the complete modified xml.php file:</p>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Source code</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://plymdesign.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://plymdesign.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://plymdesign.com/wp/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://plymdesign.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
&nbsp;
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/preg_match"><span class="kw3">preg_match</span></a><span class="br0">&#40;</span><span class="st_h">'#'</span> <span class="sy0">.</span> <a href="http://www.php.net/basename"><span class="kw3">basename</span></a><span class="br0">&#40;</span><span class="kw4">__FILE__</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'#'</span><span class="sy0">,</span> <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">'PHP_SELF'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st_h">'You are not allowed to call this page directly.'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp;
<span class="kw2">global</span> <span class="re0">$wpdb</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$ngg_options</span>  <span class="sy0">=</span> get_option <span class="br0">&#40;</span><span class="st_h">'ngg_options'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$options</span>      <span class="sy0">=</span> get_option <span class="br0">&#40;</span><span class="st_h">'monoslideshow'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$siteurl</span>      <span class="sy0">=</span> get_option <span class="br0">&#40;</span><span class="st_h">'siteurl'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// get the gallery id</span>
<span class="re0">$galleryID</span> <span class="sy0">=</span> <span class="br0">&#40;</span>int<span class="br0">&#41;</span> <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'gid'</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// check if someone send the preset value</span>
<span class="re0">$preset</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'preset'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'preset'</span><span class="br0">&#93;</span> <span class="sy0">:</span> <span class="st_h">''</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// get the pictures</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$galleryID</span> <span class="sy0">==</span> 0<span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="re0">$pictures</span> <span class="sy0">=</span> <span class="re0">$wpdb</span><span class="sy0">-&gt;</span><span class="me1">get_results</span><span class="br0">&#40;</span><span class="st0">&quot;SELECT t.*, tt.* FROM <span class="es4">$wpdb-&gt;nggallery</span> AS t INNER JOIN <span class="es4">$wpdb-&gt;nggpictures</span> AS tt ON t.gid = tt.galleryid WHERE tt.exclude != 1 ORDER BY tt.<span class="es4">{$ngg_options['galSort']}</span> <span class="es4">{$ngg_options['galSortDir']}</span> &quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
	<span class="re0">$pictures</span> <span class="sy0">=</span> <span class="re0">$wpdb</span><span class="sy0">-&gt;</span><span class="me1">get_results</span><span class="br0">&#40;</span><span class="st0">&quot;SELECT t.*, tt.* FROM <span class="es4">$wpdb-&gt;nggallery</span> AS t INNER JOIN <span class="es4">$wpdb-&gt;nggpictures</span> AS tt ON t.gid = tt.galleryid WHERE t.gid = '<span class="es4">$galleryID</span>' AND tt.exclude != 1 ORDER BY tt.<span class="es4">{$ngg_options['galSort']}</span> <span class="es4">{$ngg_options['galSortDir']}</span> &quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="co1">// read some default options</span>
<span class="re0">$delay</span> <span class="sy0">=</span> <span class="br0">&#40;</span>int<span class="br0">&#41;</span> <span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'delay'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="re0">$randomize</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'randomize'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> ? <span class="st_h">'true'</span> <span class="sy0">:</span> <span class="st_h">'false'</span><span class="sy0">;</span>
<span class="re0">$scaleMode</span> <span class="sy0">=</span> <span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'scaleMode'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="re0">$kenBurnsMode</span> <span class="sy0">=</span> <span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'kenBurnsMode'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="re0">$onAlbumEnd</span> <span class="sy0">=</span> <span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'onAlbumEnd'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="re0">$controls</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'controls'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> ? <span class="st_h">'normal'</span> <span class="sy0">:</span> <span class="st_h">'none'</span><span class="sy0">;</span>
<span class="re0">$backgroundColor</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'bgTransparent'</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="kw4">true</span><span class="br0">&#41;</span> ? <span class="st_h">'transparent'</span> <span class="sy0">:</span> <span class="st_h">'#'</span> <span class="sy0">.</span> <span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'backgroundColor'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="re0">$displayMode</span>  <span class="sy0">=</span> <span class="re0">$options</span><span class="br0">&#91;</span><span class="st_h">'displayMode'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="re0">$config</span> <span class="sy0">=</span> <span class="kw4">false</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//look for a preset file</span>
<span class="kw1">if</span> <span class="br0">&#40;</span> <span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$preset</span><span class="br0">&#41;</span> <span class="br0">&#41;</span>
    <span class="re0">$config</span> <span class="sy0">=</span>  nggMonoslideshow<span class="sy0">::</span><span class="me2">read_preset</span><span class="br0">&#40;</span> <span class="re0">$preset</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// Create XML output</span>
<a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st_h">'Content-Type: text/xml; charset='</span> <span class="sy0">.</span> get_option<span class="br0">&#40;</span><span class="st_h">'blog_charset'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st_h">'&lt;?xml version=&quot;1.0&quot; encoding=&quot;'</span> <span class="sy0">.</span> get_option<span class="br0">&#40;</span><span class="st_h">'blog_charset'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&quot;?'</span><span class="sy0">.</span><span class="st_h">'&gt;'</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;album&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$config</span> <span class="sy0">===</span> <span class="kw4">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
<span class="xtra ln-xtra"><span class="kw1">echo</span> <span class="st0">&quot;<span class="es1">\t</span>&lt;configuration followImageLinks='true' onAlbumEnd='<span class="es4">$onAlbumEnd</span>' fullScreenScaleMode='<span class="es4">$scaleMode</span>' scaleMode='<span class="es4">$scaleMode</span>' backgroundColor='<span class="es4">$backgroundColor</span>' delay='<span class="es4">$delay</span>' randomize='<span class="es4">$randomize</span>'&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span></span><span class="kw1">echo</span> <span class="st0">&quot;<span class="es1">\t</span><span class="es1">\t</span>&lt;caption displayMode='<span class="es4">$displayMode</span>' /&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;<span class="es1">\t</span><span class="es1">\t</span>&lt;controller type='<span class="es4">$controls</span>' /&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;<span class="es1">\t</span><span class="es1">\t</span>&lt;transition kenBurnsMode='<span class="es4">$kenBurnsMode</span>' /&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;<span class="es1">\t</span>&lt;/configuration&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="br0">&#125;</span> <span class="kw1">else</span>
<span class="kw1">echo</span> <span class="st0">&quot;<span class="es1">\t</span><span class="es4">$config</span><span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;<span class="es1">\t</span>&lt;contents&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/is_array"><span class="kw3">is_array</span></a> <span class="br0">&#40;</span><span class="re0">$pictures</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	<span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$pictures</span> <span class="kw1">as</span> <span class="re0">$picture</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
        <span class="re0">$description</span> <span class="sy0">=</span> <a href="http://www.php.net/htmlspecialchars"><span class="kw3">htmlspecialchars</span></a> <span class="br0">&#40;</span> <a href="http://www.php.net/strip_tags"><span class="kw3">strip_tags</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span> nggGallery<span class="sy0">::</span><span class="me2">i18n</span><span class="br0">&#40;</span><span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">description</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="sy0">,</span> <span class="kw4">ENT_QUOTES</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">alttext</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
            <span class="re0">$title</span> <span class="sy0">=</span> <a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/htmlspecialchars"><span class="kw3">htmlspecialchars</span></a> <span class="br0">&#40;</span>nggGallery<span class="sy0">::</span><span class="me2">i18n</span><span class="br0">&#40;</span><span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">alttext</span><span class="br0">&#41;</span> <span class="sy0">,</span> <span class="kw4">ENT_QUOTES</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw1">else</span>
            <span class="re0">$title</span> <span class="sy0">=</span> <span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">filename</span><span class="sy0">;</span>
&nbsp;
<span class="xtra ln-xtra">        <span class="re0">$link</span> <span class="sy0">=</span> nggcf_get_field<span class="br0">&#40;</span><span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">pid</span><span class="sy0">,</span> <span class="st_h">'ImageLinksTo'</span><span class="br0">&#41;</span><span class="sy0">;</span></span>        <span class="re0">$path</span> <span class="sy0">=</span> <span class="re0">$siteurl</span> <span class="sy0">.</span> <span class="st_h">'/'</span> <span class="sy0">.</span> <span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">path</span> <span class="sy0">.</span> <span class="st_h">'/'</span> <span class="sy0">.</span> <span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">filename</span><span class="sy0">;</span>
        <span class="re0">$thumbnail</span> <span class="sy0">=</span> <span class="re0">$siteurl</span> <span class="sy0">.</span> <span class="st_h">'/'</span> <span class="sy0">.</span> <span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">path</span> <span class="sy0">.</span> <span class="st_h">'/thumbs/thumbs_'</span> <span class="sy0">.</span> <span class="re0">$picture</span><span class="sy0">-&gt;</span><span class="me1">filename</span><span class="sy0">;</span>   
&nbsp;
<span class="xtra ln-xtra">        <span class="kw1">echo</span> <span class="st0">&quot;<span class="es1">\t</span><span class="es1">\t</span>&lt;image id='<span class="es4">$picture-&gt;pid</span>' source='<span class="es4">$path</span>' title='<span class="es4">$title</span>' link='<span class="es4">$link</span>' description='<span class="es4">$description</span>' thumbnail='<span class="es4">$thumbnail</span>' /&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span></span>	<span class="br0">&#125;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw1">echo</span> <span class="st0">&quot;	&lt;/contents&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;/album&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
&nbsp;
<span class="sy1">?&gt;</span></pre></div></div>
<p>&nbsp;</p>
<h2>Step-by-step Instructions</h2>
<p>&nbsp;</p>
<p>1. Install the NextGen Gallery plugin.  Create a gallery.</p>
<p>2. Install the NextGen &#8211; MonoSlideshow plugin.</p>
<p>3.  Install the <a href="http://wordpress.org/extend/plugins/nextgen-gallery-custom-fields/">NextGEN Gallery Custom Fields plugin</a></p>
<p>4.  Add a custom field to the NGG Custom Fields plugin.  Click on NGG Custom Fields &gt; Image Custom Fields.  Add a field called ImageLinksTo.  Check the checkbox to include the field in your gallery or galleries.  Field type is text input.</p>
<p><a href="http://plymdesign.com/wp/wp-content/uploads/2011/03/img1.png"><img class="alignleft size-thumbnail wp-image-182" title="NGG Custom Field called ImageLinksTo" src="http://plymdesign.com/wp/wp-content/uploads/2011/03/img1-150x150.png" alt="" width="150" height="150" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>5.  Replace the [wordpress dir]/wp-content/plugins/nextgen-monoslideshow/xml.php file contents with the code that we provide above.  Upload via FTP.</p>
<p>6.  Go back to your NGG custom gallery and edit it.  Add URLs to your ImageLinksTo field.  See graphic.</p>
<p><a href="http://plymdesign.com/wp/wp-content/uploads/2011/03/img2.png"><img class="alignleft size-thumbnail wp-image-183" title="Add URLs to your gallery" src="http://plymdesign.com/wp/wp-content/uploads/2011/03/img2-150x150.png" alt="" width="150" height="150" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>7.  Done.  Refresh page and view gallery with clickable images.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://plymdesign.com/projects/adding-hyperlinks-to-nextgen-gallery-monoslideshow/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>New Blog Template for RealData</title>
		<link>http://plymdesign.com/projects/new-blog-template-for-realdata/</link>
		<comments>http://plymdesign.com/projects/new-blog-template-for-realdata/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 15:43:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://plymdesign.com/?p=151</guid>
		<description><![CDATA[The folks at RealData, Inc. asked us to create a theme for their blog that closed matched and complimented their web site.  We delivered in short order with a child theme based on TwentyTen.  Their new blog theme now closely matches their website, with a few distinguishing elements &#8211; its a huge improvement over the [...]]]></description>
			<content:encoded><![CDATA[<p>The folks at RealData, Inc. asked us to create a theme for their blog that closed matched and complimented their web site.  We delivered in short order with a child theme based on TwentyTen.  Their new blog theme now closely matches their website, with a few distinguishing elements &#8211; its a huge improvement over the former blue-green, off-the-shelf theme which looked nothing like their site.  View the blog at <a title="RealData blog" href="http://realdata.com/blog">http://realdata.com/blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://plymdesign.com/projects/new-blog-template-for-realdata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Big Commerce</title>
		<link>http://plymdesign.com/projects/big-commerce/</link>
		<comments>http://plymdesign.com/projects/big-commerce/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 21:02:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://plymdesign.com/?p=140</guid>
		<description><![CDATA[Using BigCommerce to host your product-based business? We recently completed 3 programming projects for two of our clients to simplify their business processes and save them time. Big Import In this project, we wrote custom VBA code in Excel to parse and format the data for over 10,000 products for import into a BigCommerce site [...]]]></description>
			<content:encoded><![CDATA[<p>Using BigCommerce to host your product-based business?  We recently completed 3 programming projects for two of our clients to simplify their business processes and save them time.</p>
<h3>Big Import</h3>
<p>In this project, we wrote custom VBA code in Excel to parse and format the data for over 10,000 products for import into a BigCommerce site from an Excel spreadsheet.<br />
For almost all of these products, we had to first download a product image, rename the file, then upload it to the BigCommerce server.  Modification of the Excel data was hardly trivial:  some fields had to be scrubbed of a number of special characters, and we had to build compatible URLs for all the images.  Our client was thrilled: for several days of our work, we saved them weeks of tedious manual product entry.</p>
<h3>BigCommerce Export to Google Adwords</h3>
<p>Here we built an Excel workbook with VBA to reformat data from our client&#8217;s BigCommerce-based site.  Our utility turned the data into a compatible Google AdWords CSV feed with &#8220;AdGroup&#8221; records, &#8220;Ad&#8221; records, and 4 &#8220;keyword&#8221; records for each product.  Imagine trying to manually build all this information in Excel for hundreds or thousands of products &#8211; it would be a HUGE task. Our cost effective script saved our client an substantial amount of work.</p>
<h3>BigCommerce Export for Order Fulfillment</h3>
<p>This client&#8217;s BigCommerce site sells products for another company and they need to regularly send that company a fulfillment order.</p>
<p>We provided a utility that automates the creation of a fulfillment order to be sent to a supplier.  We used the BigCommerce API to export the data which is in XML format.  We then wrote macro code which took care of all of the grunt work of converting the XML to neat<br />
column delineated data for individual orders on a BigCommerce site.</p>
<p>Score 3 for 3 in the time-saving department!  Now its just a few clicks to send the data on its way.</p>
<h3>Need Help with Big Commerce?</h3>
<p>Get in touch &#8211; we are glad to quote you for projects like this which will save you time and money.</p>
]]></content:encoded>
			<wfw:commentRss>http://plymdesign.com/projects/big-commerce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project: Mail Merge for Macintosh Excel 2004</title>
		<link>http://plymdesign.com/projects/project-mail-merge-for-macintosh-excel-2004/</link>
		<comments>http://plymdesign.com/projects/project-mail-merge-for-macintosh-excel-2004/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 16:33:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Microsoft Excel]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://plymdesign.com/wp/?p=41</guid>
		<description><![CDATA[Fairhaven Health asked us to streamline the daily processing of orders by automating tasks in their Excel spreadsheet. Their requests were a straightforward project for Windows Excel, but a much more complex solution was required to work in their Macintosh Excel 2004 environment. Their existing procedure involved several steps: (1) importing an order file from [...]]]></description>
			<content:encoded><![CDATA[<p>Fairhaven Health asked us to streamline the daily processing of orders by automating tasks in their Excel spreadsheet.<br />
Their requests were a straightforward project for Windows Excel, but a much more complex solution was required to work in their Macintosh Excel 2004 environment.</p>
<p>Their existing procedure involved several steps:</p>
<p>(1) importing an order file from each of several sources into an Excel 2004 spreadsheet<br />
(2) sorting to find duplicate addresses<br />
(3) generating a new worksheet with orders combined from all sources<br />
(4) constructing new columns such as the total cost and a barcode<br />
(5) saving the resulting spreadsheet as a source for mail merges in Word 2004 to generate invoices and labels</p>
<p>The procedure was partially automated &#8212; they already had a template spreadsheet with formulas for the new columns, along with some VBA macros.  Our task was to refine the process and make it more robust.</p>
<p>We first developed a VBA macro to automate the entire process.  Under the new scheme, we store the order<br />
files with fixed names, in a folder based on the date.  We then run this new macro which does all the necessary importing, sorting, combining and saving.</p>
<p>Here are some specific changes and improvements that we implemented:</p>
<p>(1) Data Validation: The existing spreadsheet imported zip codes as numbers, with the result that leading zeroes were<br />
dropped.  The new macro explicitly imports the zip code column as text.</p>
<p>(2) Code Optimization: The existing spreadsheet had formulas to build the new columns, presuming a certain maximum<br />
number of rows.  The new macro builds the needed columns for just as many rows as are actually present.</p>
<p>(3) Error Trapping: Some orders are paid with PayPal and have authorization but no transaction ID.  If the client didn&#8217;t catch this omission, he doesn&#8217;t get paid for that order.  The new macro counts the PayPal authorizations and transaction IDs, with the transaction ID count highlighted in red if it doesn&#8217;t match the authorization count.</p>
<p>(4) Error Trapping: For international orders, the country name is found by looking up the country code in a table. We added an error trap to the macro in case the country code is not found.</p>
<p>(5) The existing procedure involved saving the worksheet as tab-delimited text to generate a file to be uploaded to mark orders as shipped.  This worked fine except that the last line was missing the end-of-line character (CR).  He had to edit the file manually and insert a CR at the end, or else the last line wouldn&#8217;t be processed.  The new macro solves this problem by building the file directly with VBA file I/O.</p>
]]></content:encoded>
			<wfw:commentRss>http://plymdesign.com/projects/project-mail-merge-for-macintosh-excel-2004/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/19 queries in 0.008 seconds using disk: basic
Object Caching 388/416 objects using disk: basic

Served from: plymdesign.com @ 2012-05-20 20:21:53 -->
