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 :

http://EXAMPLE.COM/index.php?option=extend&extend=mymodule

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