1

I am developing a custom joomla 3.x extension including component, module and a plugin. Could I consider only one update tag in component manifest file or for all extensions I got to consider update tags? (I mean for module and plugin too). This component can not work without its plugin on the site part and the module can not work without component. My understanding is the update tag only for component is enough and no need for update tag in manifest files of module and plugin. Your advice? Kian William

1 Answer 1

1

If you have created them individually, then you only need to update the manifest of the extension that has been updated. There is no dependency management in Joomla, so each extension behaves as a separate entity even if they rely on each other to function correctly.

If you have updated all three extensions, then you will need to update all three manifests. If you have only updated the component, only do that one.

If you have created a package to combine these extensions, then I have been trying to look into the core code to see a bit about how packages are installed to make sure that remains the case.

As far as I can tell, the class that deals with installing packages is at \libraries\cms\installer\adapter\package.php

This contains the following loop that goes through each file in your package's manifest xml, ie each module, component, or plugin listed is treated one at a time:

foreach ($this->getManifest()->files->children() as $child)
{
    $file = $source . '/' . (string) $child;

    ....
        // If it's an archive
        $package = JInstallerHelper::unpack($file);
    ....

    $tmpInstaller  = new JInstaller;
    $installResult = $tmpInstaller->{$this->route}($package['dir']);

    ....

}

This suggests to me that it just installs/updates each one individually, and so you should not need to update the unchanged extension manifest files within a package either.

1
  • Supposing I add <update> tag only in component's manifest file and in its next version, I only develop its plugin(In its package). Could I zip the whole package as new version and only files belonged to plugin become updated? It is obvious I can update each separately on condition that I have update tag in all manifest files But for a complete package that I want to be loaded always as package, I like to use only update tag in component and to be sure JED will not issue error to list the extension. Kian William Nowrouzian Apr 9, 2017 at 10:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.