Once upon a time...
After participating in a few Joomla! events (J!Day NY 2011, JAndBeyond11, JDC09, JDC11), and organizing the first Joomla!Day in Israel, we met a lot of users of all types — web-masters, web-site managers, developers, and designers. The request that was always made was to see the modules positions map and be able to drag & drop new or existing modules from one position to another.
Who are we?
Erez Avny is a 36-year-old dude with 26 years of keyboard typing. After 13 years on IT development Erez moved to web developing and become a web addict. In the last 6 years Erez has built websites of all kinds, mastering Joomla! for the past 3.5 years. He created jomland.com.
Ofer Cohen is 30 years old and has been a Joomla! volunteer for 4 years. If you don't recognize his name maybe the pseudo oc666 will be more familiar...Ofer has been involved in the development of the Joomla! core and the Joomla bug squad team, is an Israeli core team member and Hebrew translation coordinator. Ofer’s daily job of team-leading startup and enterprise projects is not related to Joomla.
How do we do it?
With TP2 you can see all the template positions like in the Joomla native “tp=1” parameter, BUT instead of displaying the template module positions and content (like “tp=1”), we display the template position with list of used modules and let you, the site-admin, manage your modules with an intuitive and simple interface.
It is important to note that TP2 works via the site front-end. Switching the management of modules from backend to front, makes TP2 more fun and easier to use.
Why is it called TP2?
During the development of the extension we debated about which is the best way to turn on the extension. After some fighting and throwing cake at each other, we choose to invoke the component by adding a paramter to the URL. In one smart moment while playing around with the parameter we put “tp=our component previous name”, and it became clear that the name of the component should be TP2. To turn it on you just need to add “tp=2” to the URL.
What do we love about Joomla! extension development?
The Joomla! plugin system and hooks are wonderful. For extension development, we learned the Joomla! core implementation from index.php to the inner triggers of the Joomla! application. For example, we learned that Joomla first dispatches the MVC component, and then buffers its output. After that, it renders the template with its modules, takes the component buffer, and puts it in the right place in the template.
We used few cool hooks of the Joomla! plugin system events, like onAfterDispatch, onBeforeRender, onAfterRender. We used them for manipulating the Joomla output of modules, the component and the template.
What is still missing in Joomla Core?
During the development of TP2 we found that we were missing something, thinking it would be much easier to do some things if only we had certain features.
We think that the feature we would most like to see is more flexibility on the JDocumentHTML object - abilities like removing or changing the order of CSS files. One more thing that popped up during development was the difficulty of module content overrides.
In addition, a non-Joomla! core issue, but an important one, is the manipulation of CSS and JS ordering in the code, and some template issues of CSS and JS hardcoding on template, so it can’t be accessed via JDocument at all.
TP2 - managing your modules never been so fun!
TP2 is GPL and a commercial extension.