<?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>Greg Smart &#187; Development</title>
	<atom:link href="http://www.gregorysmart.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gregorysmart.com</link>
	<description>Web development, modx, css, standards, managed web hosting, business class email solutions.</description>
	<lastBuildDate>Sun, 15 Jan 2012 06:33:59 +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>Revo: Config Page Tips</title>
		<link>http://www.gregorysmart.com/2011/07/18/revo-config-page-tips/</link>
		<comments>http://www.gregorysmart.com/2011/07/18/revo-config-page-tips/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 13:16:03 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1662</guid>
		<description><![CDATA[On several occasions I&#8217;ve written about creating and using a Config page in MODx (Creating a User Config Page in Revo, Create a User Config Page in MODx &#38; MODx Config Page, A Practical Example) which allows a developer to easily build some additional functionality into the MODx manager for use by an end user. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="float-right" src="http://www.gregorysmart.com/images/new-modx-logo.jpg" border="0" alt="MODx" />On several occasions I&#8217;ve written about creating and using a Config page in MODx (<a title="Creating a User Config Page in Revo" href="http://www.gregorysmart.com/2010/10/19/creating-a-user-config-page-in-revo/" rel="external">Creating a User Config Page in Revo</a>, <a title="Create a User Config Page in MODx" href="http://www.gregorysmart.com/2010/01/08/create-a-user-config-page-in-modx/" target="_blank">Create a User Config Page in MODx</a> &amp; <a title="MODx Config Page, A Practical Example" href="http://www.gregorysmart.com/2010/05/21/modx-config-page-a-practical-example/" target="_blank">MODx Config Page, A Practical Example</a>) which allows a developer to easily build some additional functionality into the MODx manager for use by an end user.</p>
<p>I continue to use the customized Config page for many of my projects and just thought I would share a few additional tips that we have been using in combination with this approach.</p>
<h2>Using A Context</h2>
<p>One of the annoying little issues with having a config page inside of the document tree was that there was no way to visually differentiate the configuration document from any other site document. One approach I have been taking is to create a &#8220;Configuration&#8221; context and I then place my &#8220;Settings&#8221; document within the new context. This allows for it to be visually separated from the other site documents and you can still retrieve the TVs with the <a href="http://modx.com/extras/package/getresourcefield" title="getResourceField" target="_blank">getResourceField extra</a>.</p>
<h2>Adding Manager Menu Link*</h2>
<p>In addition to using a second context I have been creating a new menu link in the manager navigation called &#8220;Settings&#8221; that takes the user directly to their settings document.</p>
<p>To do this create a directory called &#8220;settings&#8221; inside /core/components and place an index.php file in it with the code below. I am sure there is a more correct &#8220;MODx&#8221; statement for generating this url, so please share it in the comments section below. Note that you will need the correct document ID, mine is 1.</p>
<pre>&lt;?php
header( 'Location: index.php?a=30&amp;id=1' ) ;
?&gt;</pre>
<p>Next, create a Namespace called &#8220;settings&#8221; and enter the pathway to the document(s) above.</p>
<pre>/var/www/vhosts/yourdomain/httpdocs/core/components/settings/</pre>
<p>Finally to create the link in the menu go to System-&gt;Actions, you should see &#8220;settings&#8221;. Right click on it and choose &#8220;Create Action Here&#8221;. Enter &#8220;index&#8221; beside Controller and click save. Now, right click on the &#8220;Top Menu&#8221; and select &#8220;Create Menu&#8221;. I enter the Lexicon Key as &#8220;Settings&#8221;, Description as &#8220;Site Settings&#8221; and Action as &#8220;settings &#8211; index&#8221;.</p>
<p>For more detailed instructions on customizing the MODx manager I suggest going to <a title="Custom Manager Pages" href="http://rtfm.modx.com/display/revolution20/Custom+Manager+Pages" target="_blank">Custom Manager Pages</a>.</p>
<h2>Login Redirect</h2>
<p>I have also found it useful to redirect the user, on login, directly to the Settings document. To do this create a new plugin. I call mine, &#8220;loginRedirect&#8221; and paste the code below. Note that you will need the correct document ID, again mine is 1.</p>
<pre>&lt;?php
$modx-&gt;sendRedirect('manager/index.php?a=30&amp;id=1');
return;</pre>
<p>I then select the OnManagerLogin System Event and click save. </p>
<p><strong>*NOTE:</strong> See the comment below from Zaigham that greatly simplifies the creation of this manager menu link.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/07/18/revo-config-page-tips/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Guest Post: How To Use MODX For CSS On-The-Fly</title>
		<link>http://www.gregorysmart.com/2011/07/01/guest-post-how-to-use-modx-for-css-on-the-fly/</link>
		<comments>http://www.gregorysmart.com/2011/07/01/guest-post-how-to-use-modx-for-css-on-the-fly/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 16:38:06 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1647</guid>
		<description><![CDATA[Often a new client will come to me with a website already in MODX, but they need to make some &#8220;minor&#8221; adjustments. If you’ve ever had a request like this, you might find it helpful to collect all the CSS into MODX Resources. What are the benefits of doing this? Gone are the days of [...]]]></description>
			<content:encoded><![CDATA[<p>Often a new client will come to me with a website already in MODX, but they need to make some &#8220;minor&#8221; adjustments. If you’ve ever had a request like this, you might find it helpful to collect all the CSS into MODX Resources. What are the benefits of doing this?</p>
<ol>
<li>Gone are the days of navigating to a static file in File Browser. To edit CSS &#8211; just select it in the Resource Tree!</li>
<li>Control access to CSS, or certain parts of it, with Permissions and Template Variables.</li>
<li>Make changes quickly &amp; easily within MODX Manager.</li>
</ol>
<h2>Let me show you an example&#8230;</h2>
<p>Client wants to change the colors on his site, which consists of an About Section and five distinct Divisions &#8211; each with a different color scheme and CSS file. Some of the Division colors show up in &#8220;about.css&#8221; because we see them in the menus. To update a color for one Division, I would need to edit property values in 12 declarations spread over 2 or 3 static stylesheets!</p>
<p>6 colors x 12 locations x 6 files x Client changing his mind = A LOT of manual editing. The site was developed in MODX, but the original developer didn’t have to change CSS property values at the Client’s whim, apparently.</p>
<h2>Content Types and Template Variables To The Rescue</h2>
<p>This works equally well in MODX Evo or Revo, but I’ll refer to Revo workflow here. I’m also assuming you know how to make MODX templates.</p>
<ol>
<li>Make a Template for “CSS Only”.</li>
<pre>
@charset "UTF-8";
/* Title: [[++site_name]] [[*pagetitle]] CSS document */
[[*content]]
</pre>
<p>Break it down:<br />
@charset » character set encoding. See: <a rel="external" href="http://www.w3.org/International/questions/qa-css-charset.en.php">http://www.w3.org/International/questions/qa-css-charset.en.php</a> Title&#8230;» Writes a title for the document with the site name and pagetitle placeholders (optional).<br />
[[*content]] » We’re going to write our style declarations in the Resource Content area.</p>
<li>Create Resources using the CSS Template.</li>
<li>!Important: in Page Settings » Content Type drop-down menu, choose “CSS”.</li>
<li>Copy &amp; Paste existing stylesheets (if any) into the new Resources’ Content area.</li>
<li>Change links in HTML header to reference Resource IDs. For example:</li>
<pre>&lt;link href="[[~aboutID]]" rel="stylesheet" type="text/css"&gt;
&lt;link href="[[~divisionID]]" rel="stylesheet" type="text/css"&gt;</pre>
</ol>
<p>Now the site should work as it did before with static CSS docs. If you have FURLs turned on, you can add semantic aliases for each CSS Resource. The next step is to Find &amp; Replace all hex values in the Resources with Template Variables, for example: [[*color1]] or [[*blue]]. This is the most tedious part, but I would’ve had to do this for each revision &#8211; which, as it happened was over 10 times! Now I only have to do it once.</p>
<p>Result: change hex values once in the TVs and all instances of that color in the stylesheet changes as well.</p>
<p>To take it a step further, add @CHUNK binding to the TVs so editing at the Chunk level propagates to ALL stylesheets. You could do this for any CSS property &#8211; border-radius for example.</p>
<p>One more step: Client wants to play with colors. No problem! A dash of <a title="Form Customization" rel="external" href="http://www.gregorysmart.com/2010/08/13/working-with-form-customizations-in-revo/">Form Customization</a> and Client gets to edit TVs in the CSS Resources but nothing else. I’ve been toying around with the idea of adding a color picker in the Manager somewhere, but that’s another post.</p>
<h2>Author</h2>
<p><img class="float-left" src="http://www.gregorysmart.com/images/sepiariver.jpeg" border="0" alt="Sepia River" />Sepia River uses <a title="MODx" rel="external" href="http://modx.com/partners/solution/listing/sepia_river_studios">MODX</a> to make <a title="Custom Web Solutions" rel="external" href="http://sepiariver.com/construction-sales/marketing.html">custom web solutions</a> accessible to small business. He also gets wrestled into doing <a title="Marketing Stuff" rel="external" href="http://sepiariver.com/construction-sales/saving-time-for-contractors.html">Marketing stuff</a>, <a title="Photography" rel="external" href="http://sepiariverphotography.com/galleries/interiors-photography/interiors-gallery/">Photography</a> and other Content Creation. He wears pajamas and slippers a lot, and likes talking in funny voices. » <a title="Blog" rel="external" href="http://www.sepiariver.ca/blog/">Blog</a> » <a title="Twitter" rel="external" href="http://twitter.com/#!/sepiariver">Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/07/01/guest-post-how-to-use-modx-for-css-on-the-fly/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Revo: Template Inheritance to Grandchildren</title>
		<link>http://www.gregorysmart.com/2011/06/18/revo-template-inheritance-to-grandchildren/</link>
		<comments>http://www.gregorysmart.com/2011/06/18/revo-template-inheritance-to-grandchildren/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 15:29:08 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1624</guid>
		<description><![CDATA[My original title for this post was &#8220;Use MODx Revo Form Customization to Control Template Inheritance to Grandchildren&#8221;, but I decided that was a little too long and geeky. So I shortened it and shed the implied geekiness, eh? I have been developing a site in which I was needing to control which template a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="float-right" src="http://www.gregorysmart.com/images/new-modx-logo.jpg" border="0" alt="MODx" />My original title for this post was &#8220;Use MODx Revo Form Customization to Control Template Inheritance to Grandchildren&#8221;, but I decided that was a little too long and geeky. So I shortened it and shed the implied geekiness, eh? </p>
<p>I have been developing a site in which I was needing to control which template a child inherited and which template the subsequent grandchildren of a given document inherited. I realize that there may be more direct methods for accomplishing this (please share them if there are), but I haven&#8217;t yet come across them.</p>
<h2>Form Customization: Child</h2>
<p>I am going to outline how to control template inheritance of a child document. </p>
<p>First, under Security->Form Customization select Create New Profile. Give it a Name, Description and Activate it. Once created, right click the Profile and select Edit.</p>
<p>To create the 1st set, select Create New Set and fill out the following fields accordingly:</p>
<ul>
<li>Action &#8211; select Create Resource. This is just the timing for this set, it will run when a new resource is created.</li>
<li>Description &#8211; fill in your description</li>
<li>Template &#8211; in this example you can leave this field blank. At this level we will use the Constraint Field to determine which document this is applied to.</li>
<li>Constraint Field &#8211; You can use any resource field here. In this example we are using &#8216;parent&#8217;.</li>
<li>Constraint &#8211; fill in the document ID which will house the children and grandchildren. Let&#8217;s say it has an ID of 2.</li>
<li>Click Save</li>
<li>Right click your new set and select Edit</li>
<li>Scroll down. Under modx-resource-settings find template and click in the DEFAULT VALUE column. You can now enter text into this field. Enter the Template ID of the template you want the document to inherit. Let&#8217;s say it has an ID of 3.</li>
<li>Hit Enter and click Save</li>
</ul>
<p>So, we have built a Set that, at the point of document creation, will asses the Parent field and if it has an ID of 2 it will reassign it&#8217;s template field to an ID of 3. Without this Set, the document would have instead inherited the Template ID of it&#8217;s parent.</p>
<h2>Form Customization: Grandchild</h2>
<p>For this step to work I am making a couple of assumptions:</p>
<ul>
<li>That this process is only occurring within the document tree below the document with an ID of 2. This is the &#8216;Ultimate Parent&#8217; in this example.</li>
<li>That these children are the only documents that will be using the template with an ID of 3.</li>
</ul>
<p>Now, to create the 2nd set, again select Create New Set and fill out the following fields accordingly:</p>
<ul>
<li>Action &#8211; select Create Resource.</li>
<li>Description &#8211; fill in your description</li>
<li>Template &#8211; select the template with an ID of 3 from above.</li>
<li>Constraint Field &#8211; in this example you can leave this field blank.</li>
<li>Constraint &#8211; in this example you can leave this field blank.</li>
<li>Click Save</li>
<li>Right click your new set and select Edit</li>
<li>Scroll down. Under modx-resource-settings find template and click in the DEFAULT VALUE column. You can now enter text into this field. Enter the Template ID of the template you want the document to inherit. Let&#8217;s say it has an ID of 4.</li>
<li>Hit Enter and click Save</li>
</ul>
<p>Now, to summarize the entire process: any children of Document ID 2, at the point of creation will be assigned  a Template ID of 3 (1st set). Since this template is not being used elsewhere, it is exclusive to this portion of the document tree. With that being the case, using the 2nd Set of the Profile, any grandchild document created will, at the point of document creation, have it&#8217;s Template ID assessed and since was inherited from it&#8217;s parent as an ID of 3 it will be changed to an ID of 4.</p>
<p>Using this approach you can control which templates are inherited to at least the grandchild level. I suppose it would be possible to continue this approach as long as each new level is set to inherit a unique Template ID.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/06/18/revo-template-inheritance-to-grandchildren/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Revo: UncosNews</title>
		<link>http://www.gregorysmart.com/2011/06/13/revo-uncosnews/</link>
		<comments>http://www.gregorysmart.com/2011/06/13/revo-uncosnews/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 15:08:46 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1619</guid>
		<description><![CDATA[If you haven&#8217;t come across UncosNews yet I would definitely suggest that it is worth looking over. I originally ran across it in this Sal Sodano forum post and have begun testing it in our MODx sandbox. What has me really excited about this is that it successfully addresses a fundamental issue of developing MODx [...]]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t come across <a href="http://modx.com/extras/package/uncosnews" rel="external" title="UncosNews">UncosNews</a> yet I would definitely suggest that it is worth looking over. I originally ran across it in this <a href="http://modxcms.com/forums/index.php/topic,61738.msg350704.html#msg350704" title="Sal Sodano forum post" rel="external">Sal Sodano forum post</a> and have begun testing it in our MODx sandbox.</p>
<p>What has me really excited about this is that it successfully addresses a fundamental issue of developing MODx sites. I am a big fan of the MODx document tree. I believe that it gives the developer and the end user common ground, a shared perspective of how a site is organized. But, when a set of documents grows too large, as with a Calendar or News section, the document tree can become unwieldy. MODx developers need an alternative like UncosNews. I have also been following <a href="http://code.google.com/p/mxcalendar/" title="MxCalendar" rel="external">MxCalendar</a>, which takes a similar approach but do not believe that it is available yet for Revo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/06/13/revo-uncosnews/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Revo Resources in the MODx Forums</title>
		<link>http://www.gregorysmart.com/2011/05/15/revo-resources-in-the-modx-forums/</link>
		<comments>http://www.gregorysmart.com/2011/05/15/revo-resources-in-the-modx-forums/#comments</comments>
		<pubDate>Sun, 15 May 2011 14:46:44 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1613</guid>
		<description><![CDATA[As you may know, finding what you are looking for in the forums can be a little dicey. so, from time to time I post links with useful information that I have run across in the MODx forums. New Forums The MODx team has been working on new forums with lots of improvements. They have [...]]]></description>
			<content:encoded><![CDATA[<p>As you may know, finding what you are looking for in the forums can be a little dicey. so, from time to time I post links with useful information that I have run across in the MODx forums. </p>
<h2>New Forums</h2>
<p>The MODx team has been working on new forums with lots of improvements. They have started a thread asking for anyone wanting to help test the new system. <a href="http://modxcms.com/forums/index.php/topic,64453.0.html" rel="external" title="Topic: Help us test the new forums">You can find that thread here</a>.</p>
<h2>MODx Security Diagram</h2>
<p><a href="http://www.markhamstra.nl/assets/security-diagram.png" rel="external" title="Larger:MODx Security Diagram"><img class="float-right" src="http://www.gregorysmart.com/images/revo-security-diagram.jpg" border="0" alt="MODx Security Diagram" /></a><a href="http://twitter.com/#!/mark_hamstra" title="Mark Hamstra" rel="external">@mark_hamstra</a> has proven very helpful lately. I recommend any MODxer follow him on Twitter. He created the MODx, Revo security diagram to the right (click on it for the full size image). It is a good starting point as you try to tackle the Revo permissions system. <a href="http://modxcms.com/forums/index.php/topic,64266.0.html" rel="external" title="MODX Security Diagram">You can find the full thread here</a>. </p>
<h2>Adding Table Line to TinyMCE</h2>
<p>I was needing to add a line for managing tables in TinyMCE in one of my sites and  had a really hard time tracking down this information. As you can see, the solution (<a href="http://modxcms.com/forums/index.php?action=profile;u=16611" rel="external" title="dannyL">from dannyL</a>) is straightforward enough. Just finding it is the trick, <a href="http://modxcms.com/forums/index.php/topic,55055.0.html" rel="external" title="Custom buttons (such as tables, etc) in Tiny MCE 4.1.0 with Revo 2.02?">you can find that thread here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/05/15/revo-resources-in-the-modx-forums/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Serve Individual, Secure Pages in Revo</title>
		<link>http://www.gregorysmart.com/2011/03/29/serve-individual-secure-pages-in-revo/</link>
		<comments>http://www.gregorysmart.com/2011/03/29/serve-individual-secure-pages-in-revo/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 20:31:37 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1590</guid>
		<description><![CDATA[I am writing this post because I had a form that contained a couple of fields with sensitive information and was needing an efficient method for forcing a given Revo document to a secure (https) URL to be used with an SSL. While the ultimate solution is an easy to implement plugin, tracking down an [...]]]></description>
			<content:encoded><![CDATA[<p><img class="float-right" src="http://www.gregorysmart.com/images/new-modx-logo.jpg" border="0" alt="MODx" />I am writing this post because I had a form that contained a couple of fields with sensitive information and was needing an efficient method for forcing a given Revo document to a secure (https) URL to be used with an SSL. While the ultimate solution is an easy to implement plugin, tracking down an adequate method was a little time consuming. I thought it was worth sharing.</p>
<p>The solution came out of a <a title="March 2011" rel="external" href="http://modxcms.com/forums/index.php/topic,56650.msg351042.html#msg351042">March 2011 forum post</a>.</p>
<h2>Create a Plugin</h2>
<p>Under the Elements tab locate <strong>Plugins</strong>, right click on it and select <strong>New Plugin</strong>. In the <strong>Plugin code (php)</strong> text area paste the code in the .txt file below:</p>
<ul>
<li><a href="http://www.gregorysmart.com/downloads/encryption-plugin.txt">Encryption Plugin</a></li>
</ul>
<p>Once the code is pasted in go to the <b>System Events</b> tab of the plugin and check <b>OnLoadWebDocument</b> and then save the plugin.</p>
<h2>Create a Template Variable</h2>
<p>Next you will need to create a Template Variable (TV) called <b>encryption</b> with a <b>Check Box</b> Input Type, Input Option Values <b>On==1</b> and Default Value of <b>0</b>. You will also need to go to the <b>Template Access</b> tab and check the Template you would like to have access to this TV.</p>
<p>This step will essentially create a &#8216;toggle on&#8217; that will allow you to assign any document to be redirected to a https page.</p>
<p>So finally, just navigate to the document you want secured, find the TV and turn the encryption feature on.</p>
<p><b>Addendum:</b> An potential issue and an alternative approach was suggested in this <a href="http://modxcms.com/forums/index.php/topic,62834.msg356375.html#msg356375" title="MODx Forum Post" rel="external">forum post</a>. This approach utilizes a snippet that is placed above the HTML of your template, I have not tested this approach. Thank you <a href="http://modxcms.com/forums/index.php?action=profile;u=26031" title="cyclissmo" rel="external">cyclissmo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/03/29/serve-individual-secure-pages-in-revo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MODx Book, 2nd Edition</title>
		<link>http://www.gregorysmart.com/2011/03/21/modx-book-2nd-edition/</link>
		<comments>http://www.gregorysmart.com/2011/03/21/modx-book-2nd-edition/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 13:31:14 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1582</guid>
		<description><![CDATA[In case you missed it, the Antano Solar John&#8217;s Second Edition of MODx Web Development was just released. I just ordered mine and will plan a follow-up post once I have reviewed it. The above links are tied to my affiliate account at Packt Publishing. This book will get web developers up-and-running with MODx. With [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.packtpub.com/modx-web-development-second-edition/book?utm_source=gregorysmart.com&#038;utm_medium=affiliate&#038;utm_content=blog&#038;utm_campaign=mdb_001452" rel="external" title="2nd Edition, MODx Web Development, Antano Solar John"><img class="float-right" src="http://www.gregorysmart.com/images/modx-book-2nd.jpg" border="0" alt="MODx Book" /></a>In case you missed it, the Antano Solar John&#8217;s Second Edition of <a href="https://www.packtpub.com/modx-web-development-second-edition/book?utm_source=gregorysmart.com&#038;utm_medium=affiliate&#038;utm_content=blog&#038;utm_campaign=mdb_001452" rel="external" title="2nd Edition, MODx Web Development, Antano Solar John"><strong>MODx Web Development</strong></a> was just released. I just ordered mine and will plan a follow-up post once I have reviewed it.</p>
<p>The above links are tied to my affiliate account at Packt Publishing.</p>
<div style="clear: both;"></div>
<blockquote><p>
This book will get web developers up-and-running with MODx. With step-by-step examples and illustrative screenshots, you will be guided through installation, configuration, and customization. By the end of the book, you will have created a powerful, dynamic website by using the individual elements of MODx, without the need for programming know-how.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/03/21/modx-book-2nd-edition/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Proof Viewer with MODx Revo</title>
		<link>http://www.gregorysmart.com/2011/02/27/proof-viewer-with-modx-revo/</link>
		<comments>http://www.gregorysmart.com/2011/02/27/proof-viewer-with-modx-revo/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 21:32:39 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1533</guid>
		<description><![CDATA[We have been experiencing quite a bit of growth at Pleth lately. As we have expand we have been turning to systems like MODx, internally, to meet our workflow needs. The Need Our Creative Director, @steventrotter was looking for a system that would provide members of our development team a means to quickly and easily [...]]]></description>
			<content:encoded><![CDATA[<p>We have been experiencing quite a bit of growth at <a title="Pleth, LLC" rel="external" href="http://www.pleth.com">Pleth</a> lately. As we have expand we have been turning to systems like MODx, internally, to meet our workflow needs.</p>
<h2>The Need</h2>
<p>Our Creative Director, <a title="@steventrotter" rel="external" href="http://twitter.com/#!/steventrotter">@steventrotter</a> was looking for a system that would provide members of our development team a means to quickly and easily upload design proofs as images and then provide clients with easy URL access to preview the proofs in a web-centric manner.</p>
<h2>Admin Side</h2>
<p>What we ultimately decided upon was a template that only displayed the Document Title Field and Resource Alias along with 3 Template Variable (TV) fields, repeated 5 times within a single document. This included an Image Title (Text TV input type),  an Image (Image TV input type) and a Description (Textarea TV input type).</p>
<p>I was able to use the <a title="MODx Form Customization" rel="external" href="http://rtfm.modx.com/display/revolution20/Customizing+the+Manager">MODx Form Customization</a> process to place/hide the appropriate fields/TVs into a single document tab for quick and easy access. Now, a new project proof would require only creating a single, new document, uploading some images and filling in a few fields.</p>
<p><img class="float-right" src="http://www.gregorysmart.com/images/ss-proof-viewer.jpg" alt="Proof Viewer, Admin Side" /></p>
<h2>Front Facing</h2>
<p>Now that I had all of my fields in place I needed to move my attention to the front-end design. The design was to use the Image Title TVs to create a navigation point for from 1 to 5 proofs. We then used <a title="jQuery" rel="external" href="http://jquery.com/">jQuery</a> to fade in each design proof as each navigation point is activated.</p>
<p>To create the navigation I used the <a title="MODx, If Snippet" rel="external" href="http://rtfm.modx.com/display/ADDON/If">If Snippet</a> (see below):</p>
<pre>&lt;span id="nav"&gt;
Currently Displaying: &lt;!-- Title 1 --&gt;&lt;a href="#one" title="[[*title1]]"&gt;[[*title1]]&lt;/a&gt;
&lt;!-- Title 2 --&gt;[[!If? &amp;subject=`[[*title2]]` &amp;operator=`!empty` &amp;then=` | &lt;a href="#two" title="[[*title2]]"&gt;[[*title2]]&lt;/a&gt;`]]
&lt;!-- Title 3 --&gt;[[!If? &amp;subject=`[[*title3]]` &amp;operator=`!empty` &amp;then=` | &lt;a href="#three" title="[[*title3]]"&gt;[[*title3]]&lt;/a&gt;`]]
&lt;!-- Title 4 --&gt;[[!If? &amp;subject=`[[*title4]]` &amp;operator=`!empty` &amp;then=` | &lt;a href="#four" title="[[*title4]]"&gt;[[*title4]]&lt;/a&gt;`]]
&lt;!-- Title 5 --&gt;[[!If? &amp;subject=`[[*title5]]` &amp;operator=`!empty` &amp;then=` | &lt;a href="#five" title="[[*title5]]"&gt;[[*title5]]&lt;/a&gt;`]]
 &lt;/div&gt;</pre>
<p>To create the associated page divs I had to use a combination of the above If Snippet and this <a title="getSize Snippet" rel="external" href="http://www.captaincodemonkey.com/blog/2011/02/23/modx-revo-snippet-to-get-the-size-of-a-tv-image/">getSize Snippet</a> that our programmer, <a title="@captcodemonkey" rel="external" href="http://twitter.com/#!/captcodemonkey">@captcodemonkey</a>, put together. This allows us to retrieve the height or width of any Image TV. With this value it can then be inserted inline (in this case) or into a <a href="http://www.gregorysmart.com/2010/02/11/create-a-dynamic-css-file-in-modx/" title="Create a Dynamic CSS File in MODx">Dynamic CSS document</a>.</p>
<pre>&lt;div id="content_wrapper"&gt;
&lt;!-- Image 1 --&gt;&lt;div id="one" style="z-index:5;height:[[!getSize? &amp;type=`height`&amp;tv=`image1`]]px;background: url([[++site_url]]assets/images/[[*image1]]) top center no-repeat #111;width: 100%;" &gt;&lt;/div&gt;
&lt;!-- Image 2 --&gt;[[!If? &amp;subject=`[[*image2]]` &amp;operator=`!empty` &amp;then=`&lt;div id="two" style="z-index:3;height:[[!getSize? &amp;type=`height`&amp;tv=`image2`]]px;background: url([[++site_url]]assets/images/[[*image2]]) top center no-repeat #111;width: 100%;"&gt;&lt;/div&gt;`]]
&lt;!-- Image 3 --&gt;[[!If? &amp;subject=`[[*image3]]` &amp;operator=`!empty` &amp;then=`&lt;div id="three" style="z-index:3;height:[[!getSize? &amp;type=`height`&amp;tv=`image3`]]px;background: url([[++site_url]]assets/images/[[*image3]]) top center no-repeat #111;width: 100%;"&gt;&lt;/div&gt;`]]
&lt;!-- Image 4 --&gt;[[!If? &amp;subject=`[[*image4]]` &amp;operator=`!empty` &amp;then=`&lt;div id="four" style="z-index:3;height:[[!getSize? &amp;type=`height`&amp;tv=`image4`]]px;background: url([[++site_url]]assets/images/[[*image4]]) top center no-repeat #111;width: 100%;"&gt;&lt;/div&gt;`]]
&lt;!-- Image 5 --&gt;[[!If? &amp;subject=`[[*image5]]` &amp;operator=`!empty` &amp;then=`&lt;div id="five" style="z-index:3;height:[[!getSize? &amp;type=`height`&amp;tv=`image5`]]px;background: url([[++site_url]]assets/images/[[*image5]]) top center no-repeat #111;width: 100%;"&gt;&lt;/div&gt;`]]         
&lt;/div&gt;</pre>
<p>The design also called for a method for displaying a set of design notes with each proof. To create this a jQuery modal was used to display the notes for each proof as the client navigated to it.</p>
<pre>&lt;div id="description_wrapper"&gt;
&lt;!-- Description 1 --&gt;[[!If? &amp;subject=`[[*description1]]` &amp;operator=`!empty` &amp;then=`&lt;div id="one_description"&gt;[[*description1]]&lt;/div&gt;`]]
&lt;!-- Description 2 --&gt;[[!If? &amp;subject=`[[*description2]]` &amp;operator=`!empty` &amp;then=`&lt;div id="two_description"&gt;[[*description2]]&lt;/div&gt;`]]
&lt;!-- Description 3 --&gt;[[!If? &amp;subject=`[[*description3]]` &amp;operator=`!empty` &amp;then=`&lt;div id="three_description"&gt;[[*description3]]&lt;/div&gt;`]]
&lt;!-- Description 4 --&gt;[[!If? &amp;subject=`[[*description4]]` &amp;operator=`!empty` &amp;then=`&lt;div id="four_description"&gt;[[*description4]]&lt;/div&gt;`]]
&lt;!-- Description 5 --&gt;[[!If? &amp;subject=`[[*description5]]` &amp;operator=`!empty` &amp;then=`&lt;div id="five_description"&gt;[[*description5]]&lt;/div&gt;`]]         
&lt;/div&gt;</pre>
<p>This post is a great example of why I am such a fan of MODx. With a couple of hours of development we were able to take a simple design and quickly put together a system that will improve our development process and have an immediate impact on our workflow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/02/27/proof-viewer-with-modx-revo/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Dress Up Your Template Variables</title>
		<link>http://www.gregorysmart.com/2011/02/07/dress-up-your-template-variables/</link>
		<comments>http://www.gregorysmart.com/2011/02/07/dress-up-your-template-variables/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 16:12:23 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1525</guid>
		<description><![CDATA[I have written quite a bit (see below) on how to set up and use a MODx Configuration (Config) page. While this tip works well with that Config page technique it can be used to dress up any Template Variables (TVs) that an end user might have access to and seems to work equally well [...]]]></description>
			<content:encoded><![CDATA[<p>I have written quite a bit (see below) on how to set up and use a MODx Configuration (Config) page. While this tip works well with that Config page technique it can be used to dress up any Template Variables (TVs) that an end user might have access to and seems to work equally well in Evolution (Evo) or Revolution (Revo).</p>
<ul>
<li><a href="http://www.gregorysmart.com/2010/01/08/create-a-user-config-page-in-modx/" title="Create a User Config Page in MODx" rel="external">Create a User Config Page in MODx</a></li>
<li><a href="http://www.gregorysmart.com/2010/01/14/using-the-config-page-with-eform/" title="Using the Config Page with eForm" rel="external">Using the Config Page with eForm</a></li>
<li><a href="http://www.gregorysmart.com/2010/05/21/modx-config-page-a-practical-example/" title="MODx Config Page, A Practical Example" rel="external">MODx Config Page, A Practical Example</a></li>
<li><a href="http://www.gregorysmart.com/2010/10/19/creating-a-user-config-page-in-revo/" title="Creating a User Config Page in Revo" rel="external">Creating a User Config Page in Revo</a></li>
</ul>
<p>What I normally do on TVs that are accessible to my end users is place an image tag in the caption field, rather than plain text. Nothing too major, but when you stack up quite a few TVs on a Config page it really makes the page more visually appealing to the end user.<br />
<img class="float-right" src="http://www.gregorysmart.com/images/example020711.jpg" alt="Dress Up Your Template Variables" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/02/07/dress-up-your-template-variables/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Video: Custom TVs in Evo</title>
		<link>http://www.gregorysmart.com/2011/01/21/video-custom-tvs-in-evo/</link>
		<comments>http://www.gregorysmart.com/2011/01/21/video-custom-tvs-in-evo/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 15:53:43 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.gregorysmart.com/?p=1518</guid>
		<description><![CDATA[I ran across a link to this YouTube video (thecmspros) on Twitter this morning and thought it was worth posting since it&#8217;s an introduction to setting up Custom Template Variables (TVs) in MODx Evolution. I haven&#8217;t used this feature yet, but it is full of possibilities.]]></description>
			<content:encoded><![CDATA[<p>I ran across a link to this YouTube video (<a href="http://www.youtube.com/user/thecmspros">thecmspros</a>) on Twitter this morning and thought it was worth posting since it&#8217;s an introduction to setting up <strong>Custom Template Variables</strong> (TVs) in MODx Evolution. I haven&#8217;t used this feature yet, but it is full of possibilities.</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="510" height="311" src="http://www.youtube.com/embed/HFmWFPR8rhU?rel=0" frameborder="0" allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gregorysmart.com/2011/01/21/video-custom-tvs-in-evo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

