Joomla ajax Extender
Extending my own extensions ?
Briefly :
add your JOOMLA MVC structure to the root folder of your extension(module,plugin or template).
add models and view classname prefix (mod for module,plg for plugin, tpl for template eg, modMymoduleModelMymodule)
The entry point to the mvc style used by the extensions extender is controller.php to add in your module, plugin or template folder.
To acces the main view you have to use com_extend. For this, your url should contain com_extend as entry point and begin with option=extend.
A real site URL example is :
in real this give the order to call the module mymodule default controller through com_extender .
This result to call the file :
JOOMLAROOT/mod_ mymodule/controller.php
and search for class mymoduleController and default function display
So, if you know how a component work, you have nothing to learn , only to know some class naming difference in model/view classes.
MVC Folder tree structure
The inner folder are exactly the same as a component
this mean typical basic folder tree & files in joomla mvc style
EXTENSION ROOT
EXTENSION ROOT folder can be a module, plugin or template.
here the module is mymodule as example
for a main model/view/controller
models\
models\mymodule.php
views\
views\mymodule\view.html.php
views\mymodule\tmpl\default.php
controller.php
It's exactly as a joomla component only in the EXTENSION ROOT(here mod_mymodule) folder
MVC Class naming structure
For the same sample mymodule
models\mymodule.php >class modMymoduleModelMymodule
views\mymodule\view.html.php >class modMymoduleViewMymodule
controller.php >class mymoduleController
If you know Joomla MVC you see the only change are in the added prefix (mod here) to prevent models naming collisions
the standard here is simple :
-mod for modules
-plg for plugins
-tpl for templates
Template Overiding your extended views
You can overide all the extended views as a « standard » components.
The folder logic are similar and are all in the /html folder in the template folder
for the next examples we use here JOOMLAROOT\templates\beez_20\html as entry point
Overide a component View
In a joomla « standard » component, the overide use this folders structure
JOOMLAROOT\templates\TEMPLATE\html\COMPONENT\VIEW\LAYOUT.php
in beez5 template , for the component com_content an article view with default layout the file is to be placed in :
JOOMLAROOT\templates\beez5\html\com_content\article\default.php
Now let see the changes in case of using com_extend to extend your extensions:
Overide an extended module View
The modules use as root the « standard » module folder name followed by the view name and the layout name
JOOMLAROOT\templates\TEMPLATE\html\MODULE\VIEW\LAYOUT.php
in beez5 template , for the module mod_article an article view with default layout the file is to be placed in :
JOOMLAROOT\templates\beez5\html\mod_article\article\default.php
(no difference as a component)
Overide a extended plugin View
The plugins use as root the « standard » plugin \folder tree the \view name and the \layout name
JOOMLAROOT\templates\TEMPLATE\html\FOLDER\PLUGIN\VIEW\LAYOUT.php
in beez5 template , a plugin in the content folder(type) ,plugin name image, an article view with default layout the file is to be placed in :
JOOMLAROOT\templates\beez5\html\content\image\article\default.php
(no difference as a component only the « type » folder to add, because plugin folders use this folder to set the « type » of plugin)
Overide a extended template View
The templates use as root the « \tmpl» folder, followed by template name followed by the view name and the layout name
JOOMLAROOT\templates\TEMPLATE\html\tpl\TEMPLATE2\VIEW\LAYOUT.php
in beez5 template , for the template2 beez20 an article view with default layout the file is to be placed in :
JOOMLAROOT\templates\beez5\html\tpl\beez20\article\article\default.php