Thats the XML file in old language!
Differences between 1.5 and 1.6/7
The manifest files for all the different types of joomla extension are becoming more unified in their structure.
The root element is
<extension></extension>
Attributes are type, version, method, client and group
Group is only needed for plugins and client (site or administrator) is just for modules, the rest are general.
So all our modules will be
type="module"
version="1.7"
method="upgrade" (could also be "new")
The following tags are also allowed as metadata.
name, author, creationDate, copyright, license, authorEmail, authorUlr, version and description.
The way the folders and files are represented has changed.
Before you had to reference every file you wanted copied from your package in to the folder. The files in every sub folder had to be referenced using their path and this meant you would list the sub folder every time you referenced the files inside it.
Now only the files inside the root folder need be referenced, and any folders you want copied (including the files within) need only be referenced. So any folders or files inside a folder that is referenced in the root folder will be copied.
Old way
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
But now its
<folder>tmpl</folder>
Components need to have any administration files copied in a similar way but inside the
<administration></administration>
tag.
Again, files and folders inside a root folder need not be referenced, only the root folders.
Menu links and submenus
http://www.joomlalondon.co.uk/jupgrade/administrator/index.php?option=com_advancedmodules&view=module&layout=edit&id=83
<menu>MOD_EXAMPLE</menu>
<submenu> <menu link="anoption=avalue">MOD_EXAMPLE_ANOPTION</menu> </submenu>
The attributes allowed are link, view, img, and alt
Link is just a URL the user can go to when the menu is clicked
View is the name of a view to be loaded index.php?option=com_example&view=newview
img is the relative path to a 16x16px image to appear beside the menu item
alt (missing from the manifest docs) is the alternative layout for the module.
Like a template override so file could be templates/beez5/html/mod_login/
The difference is its not going to be default.php (as this is an alternative not an override) and the name MUST NOT HAVE an underscore in.
Subsequent files will be with the underscore so
mynewlayout.php would be the alternative to default.php and any others in the folder would be mynewlayout_1.php
The layout will only be used if selected (unlike an override) but it will be selected even if you selected a different template has been selected to show the page. The module layout on the module trumps the template selected even if specific th a page.
You can add the menu to the template system language file TPL_BEEZ5_MOD_LOGIN_LAYOUT_MYNEWLAYOUT="Alt Template Layout" adding it to "en-GB.tpl_beez5.sys.ini"
Another new one is the sys.ini
<language tag="en-GB">en-GB.mod_daylife.sys.ini</language>
They are used in modules on to translate on the install and update screens. The template positions can also be added to this language file, these appear in the second column of the template positions modal opened when you click"Select Position"In the "Details" section.
You may notice in some core module xml
<help key="JHELP_EXTENSIONS_MODULE_MANAGER_MENU" />
This gets translated in your \administrator\language\en-GB to
JHELP_EXTENSIONS_MODULE_MANAGER_MENU="Extensions_Module_Manager_Menu"
This is used in the page specific help button you find when in the administrator section of your site. The help button with the lifebuoy.
Configuration Tag <config></config> is a child of root and the options can be stored in a seperate file named config.xml
A child of <config> is the <fieldset></fieldset> tag and can have an attribute <fieldset name="params">
Each fieldset has at least one <field></field>
Other tags are
SQL, a child of root
<install>
<sql>
<file driver="mysql" charset="utf8">example.install.sql</file>
</sql>
</install>
<uninstall>
<sql>
<file driver="mysql" charset="utf8">example.uninstall.sql</file>
</sql>
</uninstall>
Script file, a child of root
<scriptfile>example.script.php</scriptfile>
And Updating servers, a child of root
<updateservers> <server type="extension" priority="1" name="Extension Update Site">http://example.com/extension.xml</server>
<server type="collection" priority="2" name="Collection Update Site">http://example.com/collection.xml</server> </updateservers>
Using label tag is needed if you name your fieldset anything other than basic and advanced. Basic and advanced are in com_modules language file and will be translated, but if you use "other" which was in 1.5 or your own name (the number of fieldsets and therefore panes is no longer fixed) then the pane will output COM_MODULES_your fieledset name_FIELDSET_LABEL If you use label="your fieldset name" then it will show the correct label in your pane. |