API16

JInstallerPlugin/discover install

From Joomla! Documentation

< API16:JInstallerPlugin
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

Description[edit]

Custom discover_install method


<! removed transcluded page call, red link never existed >

Syntax[edit]

discover_install()


Returns[edit]

void

Defined in[edit]

libraries/joomla/installer/adapters/plugin.php

Importing[edit]

jimport( 'joomla.installer.adapters.plugin' );

Source Body[edit]

function discover_install()
{
        // Plugins use the extensions table as their primary store
        // Similar to modules and templates, rather easy
        // If its not in the extensions table we just add it
        $client = JApplicationHelper::getClientInfo($this->parent->extension->client_id);
        if (is_dir($client->path . DS . 'plugins'. DS . $this->parent->extension->folder . DS . $this->parent->extension->element)) {
                $manifestPath = $client->path . DS . 'plugins'. DS . $this->parent->extension->folder . DS . $this->parent->extension->element . DS . $this->parent->extension->element . '.xml';
        }
        else {
                $manifestPath = $client->path . DS . 'plugins'. DS . $this->parent->extension->folder . DS . $this->parent->extension->element . '.xml';
        }
        $this->parent->manifest = $this->parent->isManifest($manifestPath);
        $this->parent->setPath('manifest', $manifestPath);
        $manifest_details = JApplicationHelper::parseXMLInstallFile($this->parent->getPath('manifest'));
        $this->parent->extension->manifest_cache = serialize($manifest_details);
        $this->parent->extension->state = 0;
        $this->parent->extension->name = $manifest_details['name'];
        $this->parent->extension->enabled = 1;
        $this->parent->extension->params = $this->parent->getParams();
        if ($this->parent->extension->store()) {
                return $this->parent->extension->get('extension_id');
        }
        else
        {
                JError::raiseWarning(101, JText::_('Plugin').' '.JText::_('Discover Install').': '.JText::_('Failed to store extension details'));
                return false;
        }
}


<! removed transcluded page call, red link never existed >

Examples[edit]

Code Examples[edit]