<?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>Design vs. Develop &#187; joomla</title>
	<atom:link href="http://www.designvsdevelop.com/tag/joomla/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.designvsdevelop.com</link>
	<description>the department of planned spontaneity</description>
	<lastBuildDate>Thu, 19 Aug 2010 19:43:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Fall 2010 conferences</title>
		<link>http://www.designvsdevelop.com/fall-2010-conferences/</link>
		<comments>http://www.designvsdevelop.com/fall-2010-conferences/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 19:43:29 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[joomladay]]></category>
		<category><![CDATA[opencamp]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=396</guid>
		<description><![CDATA[Hard to believe that 2010 is already more than half over. I have three speaking engagements coming up where I&#8217;ll be presenting Joomla Development Tools and Tricks. It&#8217;s the presentation I originally gave at J! &#38; Beyond as well as JoomlaDay New England. First, I&#8217;ll be at OpenCamp in Dallas on August 27th &#8211; 29th [...]]]></description>
			<content:encoded><![CDATA[<p>Hard to believe that 2010 is already more than half over. I have three speaking engagements coming up where I&#8217;ll be presenting Joomla Development Tools and Tricks. It&#8217;s the presentation I originally gave at J! &amp; Beyond as well as JoomlaDay New England.</p>
<p style="text-align: left;">First, I&#8217;ll be at <a href="http://openca.mp">OpenCamp</a> in Dallas on August 27th &#8211; 29th (that&#8217;s next week!). OpenCamp is targeted at Joomla, Drupal, and WordPress users. There&#8217;s a huge lineup of <a href="http://openca.mp/speakers/">speakers</a> from the CMS community, as well as the general tech community at large. <a href="http://openca.mp/register/">Tickets</a> are still available, so grab them!</p>
<p style="text-align: left;">Next, <a href="http://joomladaywest.com">JoomlaDay West</a> will be held in San Jose, California October 1-3. They&#8217;re still accepting proposals for talks, so <a href="http://joomladaywest.com/the-conference/guest-presenters">get yours in</a> while there&#8217;s still time! This one features not only a regular conference and an unconference, but a &#8220;hackable&#8221; conference where you can either attend sessions or add your own. Sam Moffat and Andrew Eddie will be flying in from Australia, so what&#8217;s your excuse for not coming?</p>
<p style="text-align: left;">Finally, the first ever <a href="http://www.joomladaydc.com/">JoomlaDay DC</a> will take place on October 16th. We have an early bird rate of $49.95 that expires on August 31st, so sign up today! We have speakers from our local <a href="http://novajoomla.com/">NoVA JUG</a>, as well as ones from the East Coast and beyond.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/fall-2010-conferences/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joomla! and Git</title>
		<link>http://www.designvsdevelop.com/joomla-and-git/</link>
		<comments>http://www.designvsdevelop.com/joomla-and-git/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 18:00:56 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[howtojoomla]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=393</guid>
		<description><![CDATA[I finally published my HowToJoomla.net tutorial on using Git with Joomla!. I really struggled with trying to balance an introduction to version control, Git, and Joomla specific considerations, but I think the result was worth the time. One thing I would have liked to have covered would have been some of the GUIs that are available [...]]]></description>
			<content:encoded><![CDATA[<p>I finally published my HowToJoomla.net tutorial on using <a href="http://www.howtojoomla.net/how-tos/development/how-to-track-your-joomla-project-with-git">Git with Joomla!</a>. I really struggled with trying to balance an introduction to version control, Git, and Joomla specific considerations, but I think the result was worth the time. One thing I would have liked to have covered would have been some of the GUIs that are available for Git, but that seemed to be a bit much for an intro article. By not covering the GUIs, I was able to focus on the core commands that everyone can use regardless of platform.</p>
<p>In any event, my hope is that this introduction will be useful not only to PHP developers, but also to template designers and site administrators. Any time you start writing even a single line of code is the right time to consider using version control as a part of your Joomla! workflow. It&#8217;s one of those tools you never knew to ask about; now you don&#8217;t have to.</p>
<p>And if you want to see some Git and Joomla in action, don&#8217;t miss my talk at <a href="http://openca.mp/speakers/joe-leblanc/">OpenCamp</a>. It&#8217;s the same one I gave at JoomlaDay New England as well as J! and Beyond, so now Texans will be &#8216;git&#8217;ting too <img src='http://www.designvsdevelop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/joomla-and-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decisions, Decisions, and Joomla</title>
		<link>http://www.designvsdevelop.com/decisions-decisions-and-joomla/</link>
		<comments>http://www.designvsdevelop.com/decisions-decisions-and-joomla/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 19:02:20 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[accountability]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[osm]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=387</guid>
		<description><![CDATA[On the Joomla! Community Blog, Steve Burge is requesting ideas for better communication between the OSM board and the Joomla community. If you are in any way involved in the Joomla community, please take a few moments to share your ideas with the OSM board. I just sent in my ideas and what I wrote [...]]]></description>
			<content:encoded><![CDATA[<p>On the Joomla! Community Blog, Steve Burge is <a href="http://community.joomla.org/blogs/community/1138-better-communication.html">requesting ideas for better communication</a> between the OSM board and the Joomla community. If you are in any way involved in the Joomla community, please take a few moments to share your ideas with the OSM board. I just sent in my ideas and what I wrote is below. While I&#8217;m not sure that my ideas are 100% practical, there definitely needs to be better communication of <strong>how much money</strong> OSM is needing and <strong>what</strong> the money will be spent on.</p>
<h3>Which questions are important enough to undergo community consultation?</h3>
<p>OSM should adopt and publish an annual budget at a set time of the year, detailing planned expenses and desired vs. expected revenue.</p>
<p>Any single purchase totaling more than 5% of the annual budget should be put before community review.</p>
<p>Any decisions that involve compensating members of the Joomla community for ongoing services (greater than one month) should also definitely undergo community review. I think there’s potential for favoritism (or at least the accusation of it) if people who are close to the Joomla community are compensated for tasks behind closed doors.</p>
<p>Financially, these policies should make it possible to pay for routine expenses quickly, while ensuring that “back room deals” do not occur. These policies should also appropriately set the expectations for how much OSM will spend and how much it needs to carry out its mission. “More” is not the answer to “how much?”</p>
<p>Any proposals to change the leadership or governing structure of OSM or the Joomla project should go under community review. There have been far too many times where a new structure is simply announced because “the old one was too burdensome.” While this may be true, a new structure may not necessarily be less burdensome.</p>
<p>Changes or adoptions of OSM policies concerning the rights or responsibilities of members of the Joomla community should undergo community review.</p>
<h3 id="whatstepsshouldallthesedecisionsgothrough">What steps should all these decisions go through?</h3>
<p>Community review should be the following process:</p>
<ul>
<li>Creating a proposal</li>
<li>Putting the proposal up for vote with the following options: approve, disapprove (no change), disapprove with suggestions for alternative.</li>
<li>Voting open for one week.</li>
<li>If the majority of voters approve, the change is made. If the majority of voters disapprove with no suggestions, the issue is dropped. If there is no majority, the suggestions should be considered, then a new proposal should be created.</li>
</ul>
<p>Ideally, eligible voters should meet a predetermined criteria (n number of posts on the Joomla forms, etc…). In the absence of predetermined criteria, voting should be open to the public at large.</p>
<p><strong>UPDATE 3/26/10:</strong> After the discussion below, I&#8217;ve been reminded and convinced that a binding vote is not such a good idea. The logistics are tough to sort out when it comes to who is eligible. More importantly, OSM board members are legally liable for their decisions, while members of the Joomla community do not have this liability. Still, I think that having a simple feedback mechanism (let people either &#8220;like&#8221; an idea or suggest alternatives) for a set period of time would help things.</p>
<p><strong>UPDATE 3/27/10:</strong> OSM Treasurer Dave Huelsmann has posted <a href="http://opensourcematters.org/policies/153-unaudited-financial-reports.html">OSM&#8217;s unaudited YTD financials</a>. It appears as though this will now be done on a monthly basis. I believe this will go a long way towards communicating OSM&#8217;s financial position and needs so that people can assist and rumors can be dismantled. If you&#8217;re not familiar with the way balance sheets and P&amp;L statements work, Dave has also <a href="http://community.joomla.org/blogs/community/1139-let-the-sunshine-in.html">posted some helpful links</a> where you can learn about them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/decisions-decisions-and-joomla/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>2010 Conference Update</title>
		<link>http://www.designvsdevelop.com/2010-conference-update/</link>
		<comments>http://www.designvsdevelop.com/2010-conference-update/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 13:40:00 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[jab10]]></category>
		<category><![CDATA[jdaynewengland]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[joomladay]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=385</guid>
		<description><![CDATA[Joomla conference registrations for 2010 are already filling up, are you going? I&#8217;m going to be speaking at several of them, so if you want to catch my talk, be sure to make plans to attend. First, I&#8217;ll be at J and Beyond! in Wiesbaden, Germany from May 30th &#8211; June 1st. This conference is [...]]]></description>
			<content:encoded><![CDATA[<p>Joomla conference registrations for 2010 are already filling up, are you going? I&#8217;m going to be speaking at several of them, so if you want to catch my talk, be sure to make plans to attend.</p>
<p>First, I&#8217;ll be at <a href="http://jandbeyond.org/">J and Beyond!</a> in Wiesbaden, Germany from May 30th &#8211; June 1st. This conference is international in focus; it has already drawn speakers from North America, Europe, and even a remote video presentation from Australia. Check out the <a href="http://jandbeyond.org/attendees/proposed-talks-and-sessions.html">proposals</a> and vote on the ones you&#8217;re most interested in! Tickets are €99 for the three day event, which is a total steal (even if you have to exchange from another currency <img src='http://www.designvsdevelop.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<p>Before the end of the week, I&#8217;ll be traveling someplace a little closer to home: Vermont. Registrations for <a href="http://newengland.joomladayusa.org/">Joomla! Day New England</a> (June 5th) just kicked off, so be sure to get your tickets. While I haven&#8217;t been to Marlboro, I have been to other places in Vermont and can attest to the state&#8217;s natural beauty <img src='http://www.designvsdevelop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Having met Elin, Mitch, Andy, Jen, and Barrie, I can confirm that this JoomlaDay is one not to miss!</p>
<p>Finally, preparations for the first JoomlaDay DC are underway. We&#8217;re still working out the venue and details, but we&#8217;re aiming to hold it on September 18th. Joomla is used in many Federal agencies as well as non-profits, which makes the Washington DC area the perfect place to hold a JoomlaDay. This will be a sponsored event, so email me at contact@jlleblanc.com if you&#8217;re interested in spreading the word about your business!</p>
<p>At all of these events, I&#8217;m giving a talk about <a href="http://jandbeyond.org/attendees/proposed-talks-and-sessions/item/44-your-joomla-development-workflow.html">Your Joomla Development Workflow</a>. If you&#8217;re writing HTML, CSS, JavaScript, PHP, or any kind of code beyond what extensions provide, this session is for you. There are many tools from the software development world that can help you debug, test, and maintain the code for your website. Unfortunately, I&#8217;ve found that many solo and freelance developers don&#8217;t know how to use them or have never even heard of them. The goal of my talk is to introduce you to these tools and show some practical applications of each. When you incorporate these tools into your daily workflow, you&#8217;ll wonder how you ever built websites without them!</p>
<p>See you in Wiesbaden, Marlboro, or Washington DC!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/2010-conference-update/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FirePHP and Joomla</title>
		<link>http://www.designvsdevelop.com/firephp-and-jooml/</link>
		<comments>http://www.designvsdevelop.com/firephp-and-jooml/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:25:09 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dcphp]]></category>
		<category><![CDATA[howtojoomla]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[Joomla 1.5]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=383</guid>
		<description><![CDATA[I have another How To Joomla article up: How to debug our Joomla code with FirePHP. Just recently, I discovered a plugin that painlessly adds FirePHP to your Joomla site. After installing it and doing some tests, I decided to write an article. In the midst of writing the article, I went to the FirePHP [...]]]></description>
			<content:encoded><![CDATA[<p>I have another How To Joomla article up: <a href="http://www.howtojoomla.net/how-tos/development/how-to-debug-your-joomla-code-with-firephp">How to debug our Joomla code with FirePHP</a>. Just recently, I discovered a plugin that painlessly adds FirePHP to your Joomla site. After installing it and doing some tests, I decided to write an article. In the midst of writing the article, I went to the <a href="http://www.firephp.org/Wiki/Libraries/Joomla">FirePHP wiki</a> and found another <a href="http://extensions.joomla.org/extensions/miscellaneous/development/11343">FirePHP plugin for Joomla</a> released by the Kunena team. This one is even better, with tighter integration into the Joomla environment. I see many possibilities for model debugging and exception handling down the road.</p>
<p>Drupal and WordPress also have FirePHP plugins, as do most of the major stand-alone PHP frameworks. <a href="http://www.firephp.org/Wiki/">Have a look</a> to see if your favorite is listed before trying to hack FirePHP into your next project.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/firephp-and-jooml/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Working with Content plugins in Joomla 1.5</title>
		<link>http://www.designvsdevelop.com/working-with-content-plugins-in-joomla-1-5/</link>
		<comments>http://www.designvsdevelop.com/working-with-content-plugins-in-joomla-1-5/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 16:35:02 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dcphp]]></category>
		<category><![CDATA[howtojoomla]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[Joomla 1.5]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=376</guid>
		<description><![CDATA[Earlier this week, I made my debut on HowToJoomla.net with an article on How to Fix Joomla Content Plugins. If you&#8217;ve used Joomla since the 1.0 days, you may recall that content plugins acted on both articles and Custom HTML modules. In 1.5, this behavior changed so that Content plugins only act on articles from [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this week, I made my debut on <a href="http://howtojoomla.net">HowToJoomla.net</a> with an article on <a href="http://www.howtojoomla.net/how-tos/development/how-to-fix-joomla-content-plugins">How to Fix Joomla Content Plugins</a>. If you&#8217;ve used Joomla since the 1.0 days, you may recall that content plugins acted on both articles and Custom HTML modules. In 1.5, this behavior changed so that Content plugins only act on articles from the Article Manager. Fortunately, there are several options for regaining and controlling this functionality, which I outline in the post. Head over and let me know what you think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/working-with-content-plugins-in-joomla-1-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joomla 1.5 Development Cookbook</title>
		<link>http://www.designvsdevelop.com/joomla-1-5-development-cookbook/</link>
		<comments>http://www.designvsdevelop.com/joomla-1-5-development-cookbook/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 21:11:40 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[Joomla 1.5]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=373</guid>
		<description><![CDATA[When I originally received my copy of the Joomla! 1.5 Development Cookbook, I was in the middle of a large client project. The book sat over on my shelf for a few days waiting to be read. While working on my code, I came to a point where I wanted to add some custom markup [...]]]></description>
			<content:encoded><![CDATA[<p>When I originally received my copy of the <a href="http://www.amazon.com/gp/product/1847198147?ie=UTF8&amp;tag=jolle-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1847198147">Joomla! 1.5 Development Cookbook</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=jolle-20&amp;l=as2&amp;o=1&amp;a=1847198147" border="0" alt="" width="1" height="1" />, I was in the middle of a large client project. The book sat over on my shelf for a few days waiting to be read. While working on my code, I came to a point where I wanted to add some custom markup to the  portion of the HTML document. Although I usually whip out my Joomla Textmate bundle to pull up the right snippet, this wasn’t something I already had preprogrammed and ready to go.</p>
<h3 id="if_i_learned_something_you8217ll_learn_something">If I learned something, you’ll learn something</h3>
<p>I was about to do a Google search, but suddenly remembered that James’ book was in arm’s reach and might have the answer. After turning to the index and finding the topic, I quickly located the exact code I needed to move on. Despite having written a book on Joomla myself, this one came to my rescue at just the right time!</p>
<p>While it took me a while to read all 130 recipes (including time on airplanes, buses, and sitting in my living room), the practical tips and methods were worth it. James covers a wide breadth of Joomla programming topics, matched only by his Joomla Framework reference. Most passages are 2-3 pages long and include relevant information that’s quickly applicable to any Joomla project you’re working on.</p>
<h3 id="essential_information">Essential information</h3>
<p>Two chapters in this book really make it a must-purchase for any Joomla developer. The Multilingual Recipes chapter gives more in-depth information on internationalization and character encodings than any other Joomla reference I’ve seen. Even if you’re only creating a website in one language, it’s imperative that you understand how character encodings work. Current versions of PHP have some shortcomings with handling UTF-8 strings, but Joomla’s special libraries will help you handle them correctly.</p>
<p>Character encodings aside, Keeping it Extensible and Modular is the most useful chapter in the entire book. This chapter is devoted to helping you work with Joomla’s different extension types and getting around some of the shortcomings in 1.5. For instance, James shows you how to create installable libraries by creating a custom type of plugin.</p>
<p>Also, this chapter has a recipe for using the component installation process to install additional extensions. This method allows you to include your modules and plugins inside of your component package; installing multiple extensions in one click. I plan on using it as soon as I get a chance to work on the Podcast Suite!</p>
<p>While the content in this book is very strong, it does have a couple of drawbacks. While most of the recipes have readily usable code that’s straightforward, a few of them don’t make a strong case for why you would use the described method. For instance, there’s a recipe on creating and raising a custom error level. It goes into how you want to avoid conflicting with Joomla and PHP error codes, but it doesn’t explain why you would want to create a custom error level in the first place. Fortunately, most of the recipes have more context.</p>
<h3 id="i8217m_willing_to_read_more_than_two_pages8230_seriously">I’m willing to read more than two pages… seriously.</h3>
<p>The biggest disappointment of this book is in the execution of the cookbook format. Having read other “programming cookbooks” in the past, I know that the goal of these kinds of books is to help you find relevant information on specific topics quickly. However, Packt seems to have decided that providing “quick information” means catering to readers with severe cases of attention deficit disorder.</p>
<p>If you try to read entire chapters of this book at a time, you’ll notice that some recipes are almost identical.  In Chapter 7, there are individual recipes on setting the HTML document generator, description, and metadata. These add up to less than three pages, but all include the same introduction at the beginning of each. Additionally, all three of these include “See also” references to each other. These would have worked much better as a combined recipe, including a reasonable scenario where you would want to set these things. In its current form, almost half of your reading consists of headers and duplicated information.</p>
<p>I get the feeling that Packt was trying to break all of the topics up into the tiniest pieces possible. This way, they’re able to slap “130 simple but incredibly useful recipes” on the cover and advertise a page count of over 300. This is really taking a short view of things, as James did a wonderful job with the topics he covered. While some marketer is probably pushing for a specific length, I’ve found that the length of a book is not proportional to its usefulness. For instance, I learned far more in 145 pages of Javascript: The Good Parts than I did in nearly 800 pages of Programming Ruby.</p>
<h3 id="hidden_joomla_treasures">Hidden Joomla treasures</h3>
<p>Despite the sometimes choppy format, the <a href="http://www.amazon.com/gp/product/1847198147?ie=UTF8&amp;tag=jolle-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1847198147">Joomla! 1.5 Development Cookbook</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=jolle-20&amp;l=as2&amp;o=1&amp;a=1847198147" border="0" alt="" width="1" height="1" /> organizes a lot of how-tos missing from Joomla’s online documentation. Anyone coding anything more than the simplest module can benefit from the recipes in this book. James demonstrates expert programming knowledge and delivers it in a very accessible format. The time you’ll save by having this information at hand will offset the cost of purchasing it within the first week. If you’re writing code for Joomla, <strong>you need this book</strong>.</p>
<p>UPDATE: you can also read a <a href="http://www.packtpub.com/files/8143-joomla-1-5-development-cookbook-sample-chapter-2-keeping-extensions-secure.pdf">PDF sample</a> of Chapter 2 from Packt&#8217;s website.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/joomla-1-5-development-cookbook/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Book Review: Joomla 1.5 Template Design</title>
		<link>http://www.designvsdevelop.com/book-review-joomla-1-5-template-design/</link>
		<comments>http://www.designvsdevelop.com/book-review-joomla-1-5-template-design/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 21:07:40 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[Joomla 1.5]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=365</guid>
		<description><![CDATA[Packt Publishing recently sent me a review copy of Joomla 1.5 Template Design by Tessa Blakeley Silver. Since I read most of it away from my computer, I wasn’t able to work through the examples. While I can’t speak to how well the code examples matched the actual process of building the template, I did [...]]]></description>
			<content:encoded><![CDATA[<p>Packt Publishing recently sent me a review copy of Joomla 1.5 Template Design by Tessa Blakeley Silver. Since I read most of it away from my computer, I wasn’t able to work through the examples. While I can’t speak to how well the code examples matched the actual process of building the template, I did enjoy reading the book. Coming in at 259 pages before the index, this book has enough content to cover everything you need to know while not wearing out its welcome.</p>
<p><span style="font-weight: normal; font-size: 13px;">The strongest part shines in Chapter 2, where Tessa introduces her “Rapid Design Comping” technique. This markup-centric approach helps you get your typography and HTML right first, then goes back and creates accompanying graphics. By getting your basic HTML and CSS out of the way up front, you don’t run into issues where you’ve designed a layout in PhotoShop that doesn’t translate to the web. Her coverage of this method is easily worth the price of the whole book.</span></p>
<p><span style="font-weight: normal; font-size: 13px;">Another plus is that Tessa incorporates HTML and CSS validation as a part of your template design workflow. Although having valid markup does not guarantee that your design will display properly in all browsers, it does help you avoid many such inconsistencies from the outset. She also covers common browser hacks (mostly to accommodate Internet Explorer 6) and how to use them as sparingly as possible. Finally, she also dives into avoiding quirks mode rendering and how to handle inconsistent renderings of the box model.</span></p>
<p><span style="font-weight: normal; font-size: 13px;">Coverage of Joomla-specific code and techniques is extensive, including custom module chrome and template parameters. She includes a complete reference for all &lt;jdoc:include /&gt; tags, as well as CSS selectors output by the Joomla core. Joomla template-specific PHP is also explained, but without going too deep into code that might confuse people without a programming background.</span></p>
<p>Despite a strong foundation in the fundamentals of Joomla templating and HTML/CSS, the book does have faults. There are some places where Tessa states something pensively (for instance, date formatting in XML manifests on page 138) which makes you wonder whether or not she’s confident about what she’s describing. Conversely, her description of the Model-View-Controller design pattern is very confidently stated, but slightly inaccurate. Fortunately, she describes the relevant details of View overrides correctly. That said, a more consistent voice would make the book easier to read.</p>
<p>Less forgivable is the introduction of the jQuery JavaScript library in Chapter 8. While she does a good job of showing jQuery’s power and simplicity, not once does she mention that Joomla already includes MooTools. Worse, readers are not alerted to the fact that jQuery will clash with MooTools if you don’t add the proper workarounds. While I love jQuery as much as Tessa does (and perhaps more), I was quite shocked by the omission. It’s quite possible that Tessa hasn’t run into this conflict, but it does happen frequently.</p>
<p>Despite a few missteps, this book is a solid introduction to the ins and outs of building a template in Joomla. All of the standard syntax is covered, along with a practical overview of how to structure your HTML and CSS for optimal browser compatibility. Advanced topics are also tackled head on, making this book the most complete reference for building Joomla templates that I know of. If you need to build a template or are curious about the process, this book should definitely be on your shelf.</p>
<p>You can read a sample of the book from Packt&#8217;s <a href="http://www.packtpub.com/files/7160-Joomla-1-5-Template-Design-Sample-Chapter-Joomla-1-5-Template-Reference.pdf">website</a> [PDF], or <a href="http://www.packtpub.com/joomla-1-5-template-design-2nd-edition/book">purchase</a> the book there as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/book-review-joomla-1-5-template-design/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Attention Podcast Suite Lovers</title>
		<link>http://www.designvsdevelop.com/attention-podcast-suite-lovers/</link>
		<comments>http://www.designvsdevelop.com/attention-podcast-suite-lovers/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 21:08:53 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[fundraising]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[missions]]></category>
		<category><![CDATA[philippines]]></category>
		<category><![CDATA[podcast suite]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=360</guid>
		<description><![CDATA[Throughout the life of the Podcast Suite, many of you have asked if you could make donations for the work I&#8217;ve put into it. Every time, I&#8217;ve redirected your kindness by suggesting a donation towards the Joomla project instead. I do this as the effort I put into the Suite is small when compared to [...]]]></description>
			<content:encoded><![CDATA[<p>Throughout the life of the Podcast Suite, many of you have asked if you could make donations for the work I&#8217;ve put into it. Every time, I&#8217;ve redirected your kindness by suggesting a donation towards the Joomla project instead. I do this as the effort I put into the Suite is small when compared to the enormous effort put into Joomla itself. Without Joomla, the Podcast Suite would not exist.</p>
<p>However, if you have used the Podcast Suite and would still like to donate money, there is a current opportunity for you to make a tax-deductible donation that would help me greatly. At the last week of October, I will be flying with 12 other people from my <a href="http://www.capitallife.org">church</a> to Iloilo City, Philippines; we will be spending two weeks there to run a summer camp for street children. Each of us need to raise $2,300 for our trip expenses. You can read more about it in this (PDF) <a href="http://www.designvsdevelop.com/wp-content/uploads/2009/09/Philippines.pdf">letter</a> and make a <a href="https://co.clickandpledge.com/sp/d1/default.aspx?wid=27118">donation</a> here.</p>
<p>Any funds raised in excess of my $2,300 goal will go towards the goals of my other team members. Although I would be honored to receive money towards this goal from Suite users, do not feel any obligation to contribute towards this trip. I&#8217;m always thrilled to hear about the Suite being used. I want all Joomla users to be able to publish their own podcasts without knowing programming or RSS. When you publish a podcast with the Suite, you help me achieve that goal!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/attention-podcast-suite-lovers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The way NOT to do JavaScript in Joomla!</title>
		<link>http://www.designvsdevelop.com/the-way-not-to-do-javascript-in-joomla/</link>
		<comments>http://www.designvsdevelop.com/the-way-not-to-do-javascript-in-joomla/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 19:01:54 +0000</pubDate>
		<dc:creator>Joe LeBlanc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dcphp]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[raw]]></category>

		<guid isPermaLink="false">http://www.designvsdevelop.com/?p=352</guid>
		<description><![CDATA[While doing a little Sunday afternoon browsing of Twitter, I noticed Amy Stephen warning about a bad technique for using Joomla! with AJAX-style requests. I followed the link (WARNING: don&#8217;t use this code!) and found security vulnerabilities right away. Since the blog in question doesn&#8217;t support comments, I&#8217;m forced to respond here. First, as Amy pointed [...]]]></description>
			<content:encoded><![CDATA[<p>While doing a little Sunday afternoon browsing of Twitter, I noticed Amy Stephen <a href="http://twitter.com/AmyStephen/status/3088009866">warning</a> about a bad technique for using Joomla! with AJAX-style requests. I followed the <a href="http://www.prodevtips.com/2009/08/01/adding-ajax-to-joomla-15-with-jquery/">link</a> (<strong>WARNING:</strong> don&#8217;t use this code!) and found security vulnerabilities right away. Since the blog in question doesn&#8217;t support comments, I&#8217;m forced to respond here.</p>
<p>First, as Amy pointed out, the technique creates another entry point into Joomla. While this <em>can</em> be used effectively if you know what you&#8217;re doing, it&#8217;s totally unnecessary for a casual application of asynchronous JavaScript. Next, class, who can tell me what&#8217;s wrong with this piece of code?</p>
<pre>cExt( $_POST['func'] );</pre>
<p>That&#8217;s right, we&#8217;re passing data straight from our HTTP request (which can come from anywhere in the WORLD) into our application&#8217;s logic. Once we get into the the <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre; ">cExt <span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, fantasy; line-height: 19px; white-space: normal; font-size: 13px; ">function, the variable is used to execute code with <strong>no</strong> filtering whatsoever:</span></span></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">function cExt($func = &#8221;){</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$cext = null;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">if(!empty($GLOBALS['cExt']))</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$cext = $GLOBALS['cExt'];</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">else{</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$GLOBALS['cExt'] = new plgCommunityExt();</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$cext = $GLOBALS['cExt'];</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">if(empty($func))</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">return $cext;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">else{</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">if($GLOBALS['ajax'] == true)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$cext-&gt;$func();</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">else</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">return $cext-&gt;$func();</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 133px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<pre>function cExt($func = ''){

    $cext = null;

    if(!empty($GLOBALS['cExt']))

        $cext = $GLOBALS['cExt'];

    else{

        $GLOBALS['cExt'] = new plgCommunityExt();

        $cext = $GLOBALS['cExt'];

    }

    if(empty($func))

        return $cext;

    else{

        if($GLOBALS['ajax'] == true)

            $cext-&gt;$func();

        else

            return $cext-&gt;$func();

    }

}</pre>
<p>Please, regardless of whether or not you use Joomla, don&#8217;t do this! It is a totally insecure way of writing code. Instead, if you are using Joomla, you can at least filter this variable using the following code:</p>
<pre>$func = JRequest::getCmd('func', '');</pre>
<p>This code will filter the <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre; ">func</span> variable from the request and make sure it only includes numbers, letters, or underscores. Additionally, you should filter <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre; ">$func</span> to make sure a corresponding public function in the <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre; ">plgCommunityExt<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, fantasy; line-height: 19px; white-space: normal; font-size: 13px; "> class exists <strong>before</strong> attempting to use it to actually execute that function.</span></span></p>
<p>As a side note, <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre; ">$GLOBALS</span> is being used an awful lot here. While this isn&#8217;t a security risk in and of itself, it is a bad practice that can lead to insecure coding. If the <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre; ">register_globals</span> setting in PHP (going away in PHP 6) is turned on, this becomes a huge security risk as anyone in the world can set the value of <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre; ">cExt</span> to anything.</p>
<p>The post ends with this quick jibe:</p>
<address>That was pretty easy wasn’t it, in order to get quick results you just have to find these shortcuts which will spare you the time and pain of having to read some Joomla-, or pick your favorite, CMS book.</address>
<p>I&#8217;d argue that the author of this blog post would not only benefit from reading a book about CMS development, but one on basic PHP security. The technique he describes is insecure in any PHP-based framework or CMS.</p>
<p>Fortunately, you don&#8217;t even have to run to the bookstore to find examples of the correct way of doing these things. Louis Landry has a quick example of how to return JSON formatted data simply and securely on <a href="http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/5ac0b49c0f458b1a">this thread</a>, without having to create a special component view. If you do want to use a view, this <a href="http://blog.syncleon.com/2009/05/ajax-ify-your-joomla-website.html">blog post</a> will show you how to do it.</p>
<p>Finally, if you do want to learn how to add AJAX-style requests to Joomla (without necessarily using JSON), I&#8217;ll shamelessly plug <a href="http://www.packtpub.com/learning-joomla-1.5-extension-development/book">my own book</a>. But you don&#8217;t even have to buy it, because the <a href="http://www.packtpub.com/files/learning-joomla-1-5-extension-development-sample-chapter-8-using-javascript-effects.pdf">sample chapter</a> is indeed the one on JavaScript and Joomla (start on page 168 if you already know Joomla! MVC).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.designvsdevelop.com/the-way-not-to-do-javascript-in-joomla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
