Oct 26

Jonathan Longnecker - From Design To Dynamic: Rapid Development with ExpressionEngine

Categories:
Tags:
, , , ,
Published:
12:30pm on Monday 26th October, 2009

Jonathan Longnecker is a developer with fortyseven media. He discussed the tips and tricks they use to quickly build new ExpressionEngine sites.

Slides and code examples from the talk are on Jonathan’s site.

Introduction

  • The problem is that EE developers are too awesome. Add-on development has exploded, and functionality and usefulness is really amazing. Structure is a great example of this.
  • We typically use 15+ addons for every site, with the same kind of templates and global variables
  • The solution is to set up a sandbox site where the core and all add-ons are kept up-to-date. Add some default templates and global variables, a weblog for content, and some sweet tricks and you have the ability to rapidly build out new sites
  • We will be adding new things to it as we find great add-ons

Add-Ons

  • LG Addon Updater
  • LG htaccess Generator: Generates your .htaccess file, removes index.php and much, much more
  • LG Add Sitename: Enables Control Panel admin page title replacements, client logo
  • LG TinyMCE: Not convinced it’s the best choice, and it’s not good with pasted text. Turn off source formatting, spans and brs, take out the image upload, add blockquote
  • SL Developer Info: Lists all weblogs, templates, and other useful developer shortcuts. Give it it’s own custom tab in your nav bar
  • ImgSizer: Resizes and crops intelligently and creates thumbnails; make sure you create a “sized” directory in your images folder
  • Solspace’s Freeform
  • FieldFrame: Changes the way you can put together certain types of content
  • nGen File Field
  • Structure: Radically changes the way you handle content pages and navigation. Scared of using it initially as I thought it would lock me into certain way of developing templates, but it really has potential to speed up certain parts of your site; secondary static pages are a lot faster to set up

Tips and tricks

  • In your Template Preferences, turn on save template revisions (I use five) for added protection from mistakes, and always save templates as files
  • Create a “content” weblog with custom fields - meta keywords, meta description, a body (TinyMCE field type), and images (an FF Matrix). A sweet trick invented by AJ Penninga is to set up your images as a FF Matrix with a File field, title, radio group of sizes, radio group for crop height (optional), and dropdown for alignment. Then to insert the image add {image_1}, {image_2}, etc. in the body content. Your content template then uses LG_Replace to loop through the matrix images and replace those tags with the images inside the {images} tag
  • Create a client member group with access to file uploads, Structure and weblogs
  • Create global variables: I use html_head (containing doctype, static meta tags, favicon link, etc.), html_closing, jquery, javascript, rss (just your RSS links), and stylesheets
  • Create templates in site and _global groups: footer, header, nav (containing Structure’s nav_main tag), sidebar (using Structure’s nav_sub tag) and content (using Structure’s title_trail tag to build the </code> element)</li> <li>Keep the <code><body></code> tag inside each template so you can add a dynamic CSS id or class to it</li> <li>Replace the default homepage with a list of what’s been installed and configured on the sandbox site</li> <li>Moving servers is now faster than installing a new site, as the sandbox site is ready to go - just copy the database and files over and amend the <strong>config.php</strong> settings</li> </ul> <p>Jonathan ended with a live demonstration of creating a new site from scratch, using Structure to create pages and place them in the site <abbr title="Information Architecture">IA</abbr> really quickly, generate automatic navigation, and use Structure’s Listings feature to attach weblog entries to a page (a la a design portfolio). Structure makes it impressively easy to re-order navigation items.</p> </div> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/jonathan-longnecker-from-design-to-dynamic-rapid-development-with-expressio/" trackback:ping="http://www.thewatchmakerproject.com/trackback/386/Esc69nfq/" dc:title="Jonathan Longnecker - From Design To Dynamic: Rapid Development with ExpressionEngine" dc:identifier="http://www.thewatchmakerproject.com/jonathan-longnecker-from-design-to-dynamic-rapid-development-with-expressio/" dc:subject="ExpressionEngine" dc:description="Jonathan Longnecker is a developer with &lt;a href="http://fortysevenmedia.com/"&gt;fortyseven media&lt;/a&gt;. He discussed the tips and tricks they use to quickly build new ExpressionEngine sites. Slides and code examples from the talk are on &lt;a href="http://fortysevenmedia.com/blog/archives/eeci2009_slideshow_and_presentation_notes/"&gt;Jonathan's site&lt;/a&gt;. &lt;h2&gt;Introduction&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;The problem is that EE developers are too awesome. Add-on development has exploded, and functionality and usefulness is really…" dc:creator="Matthew Pennell" dc:date="2009-10-26 12:30:46 PM GMT" /> </rdf:RDF> --> </div> <!-- /inner --> </div> <!-- /article --> <div id="comment-form"> <div class="inner"> <div id="offset"> <p class="intro">I'd love to hear what you think - please use the form below to leave your comments. Some HTML is permitted: <code>b</code>, <code>i</code>, <code>em</code>, <code>del</code>, <code>ins</code>, <code>strong</code>, <code>pre</code>, <code>code</code>, <code>blockquote</code>, <code>abbr</code>. URLs or email addresses will be automatically converted into links.</p> Commenting is not available in this weblog entry. </div> <div id="comments"> <ol> <li id="no_comments">Nobody has commented on this article yet - why not be the first?</li> </ol> </div> </div> </div> <!-- /comment-form --> <div id="footer"> <div class="inner"> <div id="tumblr"> <h2>Related Entries</h2> <ol> <li> <h3>40% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/ryan-irelan-ten-ways-to-supercharge-your-ee-development/">Ryan Irelan - Ten Ways To Supercharge Your EE Development</a></h4> <p>Ryan Irelan works for <a href="http://www.happycog.com/news/2009/08/merger/">Happy Cog West</a>, and is also responsible for <a href="http://eescreencasts.com/">EE Screencasts</a>, the <a href="http://eeinsider.com/">EEInsider</a> site, <a href="http://eescreencasts.com/page/ee-help-chat">EE Help Chat</a>, and the <a href="http://ee-podcast.com/">EE Podcast</a>. He is working on an ExpressionEngine book that will cover EE 2.0.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/ryan-irelan-ten-ways-to-supercharge-your-ee-development/" trackback:ping="http://www.thewatchmakerproject.com/trackback/383/ER6ZPmH9/" dc:title="Ryan Irelan - Ten Ways To Supercharge Your EE Development" dc:identifier="http://www.thewatchmakerproject.com/ryan-irelan-ten-ways-to-supercharge-your-ee-development/" dc:subject="ExpressionEngine" dc:description="Ryan Irelan works for &lt;a href="http://www.happycog.com/news/2009/08/merger/"&gt;Happy Cog West&lt;/a&gt;, and is also responsible for &lt;a href="http://eescreencasts.com/"&gt;EE Screencasts&lt;/a&gt;, the &lt;a href="http://eeinsider.com/"&gt;EEInsider&lt;/a&gt; site, &lt;a href="http://eescreencasts.com/page/ee-help-chat"&gt;EE Help Chat&lt;/a&gt;, and the &lt;a href="http://ee-podcast.com/"&gt;EE Podcast&lt;/a&gt;. He is working on an ExpressionEngine book that will cover EE 2.0. Follow along with Ryan's slides over on &lt;a href="http://www.slideshare.net/ryanirelan/ten-ways-to-improve-your-ee-development"&gt;SlideShare&lt;/a&gt;.…" dc:creator="Matthew Pennell" dc:date="2009-10-26 11:31:35 AM GMT" /> </rdf:RDF> --> <li> <h3>40% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/potential-ee-add-ons-what-would-you-like-first/">Potential EE add-ons: What would you like first?</a></h4> <p>Partly because I really don’t know, but mostly because I haven’t got anything else to write about this week for Project 52, here is a list of potential ExpressionEngine add-ons I plan to build—and I’d like you to tell me which to do first.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/potential-ee-add-ons-what-would-you-like-first/" trackback:ping="http://www.thewatchmakerproject.com/trackback/404/ER6ZPmH9/" dc:title="Potential EE add-ons: What would you like first?" dc:identifier="http://www.thewatchmakerproject.com/potential-ee-add-ons-what-would-you-like-first/" dc:subject="ExpressionEngine,Macintosh,Personal" dc:description="Partly because I really don't know, but mostly because I haven't got anything else to write about this week for &lt;a href="http://project52.info/"&gt;Project 52&lt;/a&gt;, here is a list of potential &lt;a href="http://expressionengine.com/"&gt;ExpressionEngine&lt;/a&gt; add-ons I plan to build&mdash;and I'd like you to tell me which to do first. Of course, it's entirely possible that someone has already done any or all of these and I just haven't found them yet... in which case please point me in the right direction and…" dc:creator="Matthew Pennell" dc:date="2010-02-09 02:56:31 PM GMT" /> </rdf:RDF> --> <li> <h3>40% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/derek-allard-standing-on-the-shoulders-of-giants/">Derek Allard - Standing On The Shoulders Of Giants</a></h4> <p>Derek Allard is EllisLab’s Technology Architect, and discussed how community shapes development at EllisLab.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/derek-allard-standing-on-the-shoulders-of-giants/" trackback:ping="http://www.thewatchmakerproject.com/trackback/378/ER6ZPmH9/" dc:title="Derek Allard - Standing On The Shoulders Of Giants" dc:identifier="http://www.thewatchmakerproject.com/derek-allard-standing-on-the-shoulders-of-giants/" dc:subject="ExpressionEngine" dc:description="Derek Allard is EllisLab's Technology Architect, and discussed how community shapes development at EllisLab. Download the slides of Derek's talk here (PDF): &lt;a href="http://www.derekallard.com/img/post_resources/eeci2009_derek_allard_slides.pdf"&gt;eeci2009_derek_allard_slides.pdf&lt;/a&gt;. &lt;h2&gt;EllisLab's Development Process&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Fell into teaching about web technology; spent 10 years freelancing and teaching&lt;/li&gt; &lt;li&gt;How did we get the idea for Image Editor? EE 2.0 was supposed to be feature-neutral,…" dc:creator="Matthew Pennell" dc:date="2009-10-26 10:13:47 AM GMT" /> </rdf:RDF> --> <li> <h3>40% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/brandon-kelly-make-a-market-out-of-our-community-the-whys-and-hows-of-selli/">Brandon Kelly - Make A Market Out Of Our Community: The Whys and Hows of Selling Add-Ons</a></h4> <p>Brandon Kelly is an ExpressionEngine add-on developer, responsible for the extremely popular <a href="http://brandon-kelly.com/fieldframe">FieldFrame</a> and <a href="http://brandon-kelly.com/playa">Playa</a> extensions. He spoke on the importance of commerciality in add-on development.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/brandon-kelly-make-a-market-out-of-our-community-the-whys-and-hows-of-selli/" trackback:ping="http://www.thewatchmakerproject.com/trackback/380/ER6ZPmH9/" dc:title="Brandon Kelly - Make A Market Out Of Our Community: The Whys and Hows of Selling Add-Ons" dc:identifier="http://www.thewatchmakerproject.com/brandon-kelly-make-a-market-out-of-our-community-the-whys-and-hows-of-selli/" dc:subject="ExpressionEngine" dc:description="Brandon Kelly is an ExpressionEngine add-on developer, responsible for the extremely popular &lt;a href="http://brandon-kelly.com/fieldframe"&gt;FieldFrame&lt;/a&gt; and &lt;a href="http://brandon-kelly.com/playa"&gt;Playa&lt;/a&gt; extensions. He spoke on the importance of commerciality in add-on development. You can watch a &lt;a href="http://vimeo.com/7561777"&gt;video of Brandon's talk&lt;/a&gt; on Vimeo. &lt;h2&gt;On commercial add-ons&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Got into ExpressionEngine at the beginning of 2008, releasing &lt;a href="http://brandon-kelly.com/playa"&gt;Playa&lt;/a&gt;…" dc:creator="Matthew Pennell" dc:date="2009-10-26 11:21:44 AM GMT" /> </rdf:RDF> --> <li> <h3>20% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/michael-boyink-quoting-and-planning-expressionengine-projects/">Michael Boyink - Quoting and Planning ExpressionEngine Projects</a></h4> <p>Michael Boyink is a <a href="http://www.boyink.com/">consultant</a> and <a href="http://train-ee.com/">trainer</a> who has been working with ExpressionEngine since 2002. He discussed his process for planning and quoting on EE projects.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/michael-boyink-quoting-and-planning-expressionengine-projects/" trackback:ping="http://www.thewatchmakerproject.com/trackback/381/ER6ZPmH9/" dc:title="Michael Boyink - Quoting and Planning ExpressionEngine Projects" dc:identifier="http://www.thewatchmakerproject.com/michael-boyink-quoting-and-planning-expressionengine-projects/" dc:subject="Business,ExpressionEngine,Freelancing" dc:description="Michael Boyink is a &lt;a href="http://www.boyink.com/"&gt;consultant&lt;/a&gt; and &lt;a href="http://train-ee.com/"&gt;trainer&lt;/a&gt; who has been working with ExpressionEngine since 2002. He discussed his process for planning and quoting on EE projects. Watch &lt;a href="http://vimeo.com/7570396"&gt;Mike's presentation over on Vimeo&lt;/a&gt;. &lt;h2&gt;Pitching and quoting EE&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;I pitch EE as a commercial product that has people working on it for a living, paid tech support staff, security, and great community&lt;/li&gt; &lt;li&gt;You…" dc:creator="Matthew Pennell" dc:date="2009-10-26 11:24:04 AM GMT" /> </rdf:RDF> --> <li> <h3>20% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/leevi-graham-how-to-start-developing-your-own-add-ons/">Leevi Graham - How to start developing your own add-ons</a></h4> <p>Leevi Graham runs <a href="http://newism.com.au/">Newism</a> in Australia, and has developed more than 25 add-ons over the last two years. His first and most profitable add-on was <a href="http://leevigraham.com/cms-customisation/expressionengine/lg-better-meta/">LG Better Meta</a>, and Leevi was named <a href="http://devot-ee.com/articles/item/first-annual-academee-awards/">2008 Add-on Developer of the Year on Devot:ee</a>.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/leevi-graham-how-to-start-developing-your-own-add-ons/" trackback:ping="http://www.thewatchmakerproject.com/trackback/382/ER6ZPmH9/" dc:title="Leevi Graham - How to start developing your own add-ons" dc:identifier="http://www.thewatchmakerproject.com/leevi-graham-how-to-start-developing-your-own-add-ons/" dc:subject="ExpressionEngine" dc:description="Leevi Graham runs &lt;a href="http://newism.com.au/"&gt;Newism&lt;/a&gt; in Australia, and has developed more than 25 add-ons over the last two years. His first and most profitable add-on was &lt;a href="http://leevigraham.com/cms-customisation/expressionengine/lg-better-meta/"&gt;LG Better Meta&lt;/a&gt;, and Leevi was named &lt;a href="http://devot-ee.com/articles/item/first-annual-academee-awards/"&gt;2008 Add-on Developer of the Year on Devot:ee&lt;/a&gt;. Download Leevi's slides (PDF) here: &lt;a href="http://bit.ly/efYkA"&gt;http://bit.ly/efYkA&lt;/a&gt;,…" dc:creator="Matthew Pennell" dc:date="2009-10-26 11:27:11 AM GMT" /> </rdf:RDF> --> <li> <h3>20% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/paul-burdick-add-on-development-ee-expects-that-every-developer-will-do-his/">Paul Burdick - Add-On Development: EE Expects That Every Developer Will Do His Duty</a></h4> <p>Paul Burdick is the ex-CTO of EllisLab, and now works as Lead Developer for ExpressionEngine add-on shop <a href="http://www.solspace.com/">Solspace</a>.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/paul-burdick-add-on-development-ee-expects-that-every-developer-will-do-his/" trackback:ping="http://www.thewatchmakerproject.com/trackback/384/ER6ZPmH9/" dc:title="Paul Burdick - Add-On Development: EE Expects That Every Developer Will Do His Duty" dc:identifier="http://www.thewatchmakerproject.com/paul-burdick-add-on-development-ee-expects-that-every-developer-will-do-his/" dc:subject="ExpressionEngine,PHP" dc:description="Paul Burdick is the ex-CTO of EllisLab, and now works as Lead Developer for ExpressionEngine add-on shop &lt;a href="http://www.solspace.com/"&gt;Solspace&lt;/a&gt;. Download Paul's slides here in PDF form: &lt;a href="http://bit.ly/addons_eeci2009"&gt;http://bit.ly/addons_eeci2009&lt;/a&gt;. &lt;h2&gt;All about add-ons&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;What are add-ons? There are three types - extensions, modules and plugins&lt;/li&gt; &lt;li&gt;Extensions extend basic EE functionality, allow you to interpose your own code. Developers are extending the idea…" dc:creator="Matthew Pennell" dc:date="2009-10-26 12:24:28 PM GMT" /> </rdf:RDF> --> <li> <h3>20% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/jamie-pittock-the-art-of-proactive-parenting/">Jamie Pittock - The Art Of Proactive Parenting</a></h4> <p>Jamie Pittock is Operations Director for Nottingham-based <a href="http://erskinedesign.com/">Erskine Design</a>. He discussed effective ways to develop ExpressionEngine sites that increase understanding and remove uncertainty for your clients.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/jamie-pittock-the-art-of-proactive-parenting/" trackback:ping="http://www.thewatchmakerproject.com/trackback/385/ER6ZPmH9/" dc:title="Jamie Pittock - The Art Of Proactive Parenting" dc:identifier="http://www.thewatchmakerproject.com/jamie-pittock-the-art-of-proactive-parenting/" dc:subject="Business,ExpressionEngine,Freelancing" dc:description="Jamie Pittock is Operations Director for Nottingham-based &lt;a href="http://erskinedesign.com/"&gt;Erskine Design&lt;/a&gt;. He discussed effective ways to develop ExpressionEngine sites that increase understanding and remove uncertainty for your clients. Jamie's slides can be viewed on &lt;a href="http://www.slideshare.net/jamiepittock/the-art-of-proactive-parenting"&gt;SlideShare&lt;/a&gt;. &lt;h2&gt;Managing client expectations&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Design your content model around the client's existing content - take example content…" dc:creator="Matthew Pennell" dc:date="2009-10-26 12:27:12 PM GMT" /> </rdf:RDF> --> <li> <h3>20% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/new-years-resolutions-project-52/">New Year’s Resolutions // Project 52</a></h4> <p>Perhaps I should feel bad that last year’s “Resolutions” post is still languishing in my Drafts folder, not so much unfinished as barely started. But 2009 kept me so busy that I barely had time to think, let alone blog. That is something I intend to change in 2010.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/new-years-resolutions-project-52/" trackback:ping="http://www.thewatchmakerproject.com/trackback/395/ER6ZPmH9/" dc:title="New Year's Resolutions // Project 52" dc:identifier="http://www.thewatchmakerproject.com/new-years-resolutions-project-52/" dc:subject="Blogging,ExpressionEngine,Freelancing,Personal,The Site" dc:description="Perhaps I should feel bad that last year's "Resolutions" post is still languishing in my Drafts folder, not so much unfinished as barely started. But 2009 kept me so busy that I barely had time to think, let alone blog. That is something I intend to change in 2010. &lt;h2&gt;2009&lt;/h2&gt; Last year was the first working directly for the Amsterdam office at Booking.com, and the regular travel that entails means that my carbon footprint has taken on Sasquatch-like proportions. I also managed to squeeze in a…" dc:creator="Matthew Pennell" dc:date="2010-01-05 04:39:32 PM GMT" /> </rdf:RDF> --> <li> <h3>20% match</h3> <h4><a href="http://www.thewatchmakerproject.com/blog/veerle-pieters-designing-and-using-the-new-ee-2.0-interface/">Veerle Pieters - Designing and Using The New EE 2.0 Interface</a></h4> <p>Veerle is a highly-respected designer and <a href="http://veerle.duoh.com/">blogger</a>, and runs <a href="http://duoh.com/">Duoh!</a> with her husband Geert Leyseele.</p> </li> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.thewatchmakerproject.com/veerle-pieters-designing-and-using-the-new-ee-2.0-interface/" trackback:ping="http://www.thewatchmakerproject.com/trackback/379/ER6ZPmH9/" dc:title="Veerle Pieters - Designing and Using The New EE 2.0 Interface" dc:identifier="http://www.thewatchmakerproject.com/veerle-pieters-designing-and-using-the-new-ee-2.0-interface/" dc:subject="Design,ExpressionEngine" dc:description="Veerle is a highly-respected designer and &lt;a href="http://veerle.duoh.com/"&gt;blogger&lt;/a&gt;, and runs &lt;a href="http://duoh.com/"&gt;Duoh!&lt;/a&gt; with her husband Geert Leyseele. Watch &lt;a href="http://vimeo.com/7556343"&gt;Veerle's talk on Vimeo&lt;/a&gt;. &lt;h2&gt;The Design Process&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;I was asked to design the new EE 2.0 interface&lt;/li&gt; &lt;li&gt;The brief: tabbed menu, the ability to remove and add tabs, save space, make it more professional and less bloggy, fluid layout, smooth edges and softness, customisable GUI,…" dc:creator="Matthew Pennell" dc:date="2009-10-26 10:16:35 AM GMT" /> </rdf:RDF> --> </ol> </div> <div id="copyright"> © All content is copyright 2008-10 <address class="vcard author"><a class="fn" href="http://www.thewatchmakerproject.com/contact">Matthew Pennell</a></address>. All rights reserved. Comments remain the property of their respective authors. </div> <!-- /copyright --> <div id="right"> <div id="feeds"> <h2>Subscribe <i>to</i> RSS</h2> <p>If you use RSS, you can subscribe to receive updates when new content is added to the site. Choose from the following options:</p> <ul> <li><a href="/rss/blog">Blog entries only</a></li> <li><a href="/rss/links">Links, videos, and quotes only</a></li> <li><a href="/rss/full">All content in one feed</a></li> </ul> </div> <!-- /feeds --> <div id="search"> <h2>Search <i>the</i> site</h2> <form method="post" action="http://www.thewatchmakerproject.com/" > <div class='hiddenFields'> <input type="hidden" name="ACT" value="19" /> <input type="hidden" name="XID" value="d9470d951fb4666ff55300478d8ffdc88505ca4b" /> <input type="hidden" name="RP" value="search_results" /> <input type="hidden" name="NRP" value="search_results" /> <input type="hidden" name="RES" value="" /> <input type="hidden" name="status" value="" /> <input type="hidden" name="weblog" value="journal" /> <input type="hidden" name="search_in" value="entries" /> <input type="hidden" name="where" value="all" /> <input type="hidden" name="site_id" value="1" /> </div> <div> <input type="text" name="keywords" maxlength="100" size="20"> <button type="submit">Search</button> </div> </form> </div> <div id="credits"> <h2>Validation <span class="amp">&</span> Credits</h2> <p>This site is <a href="http://validator.w3.org/check?uri=http://www.thewatchmakerproject.com/blog/jonathan-longnecker-from-design-to-dynamic-rapid-development-with-expressio/&charset=(detect+automatically)&doctype=Inline&group=0">valid HTML5</a>, and mostly <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.thewatchmakerproject.com/c/twp.css&profile=css3&usermedium=all&warning=1&lang=en">valid CSS2/3</a> with the odd browser-specific extension where necessary.</p> <p>The large icons on the home page are by <a href="http://www.crystalxp.net/galerie/en.id.3751-bagg-a-png.htm">Bagg & Box</a>, <a href="http://www.vistaicons.com/icon/i148s0/old_school_icons.htm">VistaIcons</a> and <a href="http://perishablepress.com/press/2006/08/20/a-nice-collection-of-feed-icons/">Perishable Press</a>. Any smaller icons are of course by <a href="http://www.famfamfam.com/">FamFamFam</a>. Stock photography mostly from <a href="http://www.sxc.hu/">stock.xchng</a>.</p> <p>Blog powered by <a href="http://www.expressionengine.com/index.php?affiliate=thewatchmakerproject">ExpressionEngine</a>. Links powered by <a href="http://thewatchmakerproject.tumblr.com/" rel="me">Tumblr</a>.</p> <p>Hosted by <a href="http://www.mediatemple.net/go/order/?refdom=29digital.net">(mt) MediaTemple</a>.</p> </div> <!-- /credits --> </div> <!-- /right --> </div> </div> <!-- /footer --> <script type="text/javascript"> window.onload = function () { // Fix heights of blocks in footer var left_col = document.getElementById('tumblr').offsetHeight; if (document.getElementById('video')) { var middle_col = document.getElementById('video').offsetHeight + document.getElementById('quotes').offsetHeight + document.getElementById('copyright').offsetHeight; } else { var middle_col = document.getElementById('right').offsetHeight; } if (document.getElementById('video')) { if (left_col > middle_col) { document.getElementById('copyright').style.height = (left_col - (document.getElementById('video').offsetHeight + document.getElementById('quotes').offsetHeight)) + "px"; } } else { document.getElementById('footer').style.height = document.getElementById('footer').childNodes[1].style.height = (left_col > middle_col) ? left_col + "px" : middle_col + "px"; } if (typeof window_onload != 'undefined') { window_onload(); } } </script> <script src="/js/blog.js?v=3"></script> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-71160-5"); pageTracker._trackPageview(); } catch(err) {}</script> </body> <!-- page rendered in 1.1193 seconds --> </html>