API16

JInstallerLibrary/discover install

From Joomla! Documentation

< API16:JInstallerLibrary
Revision as of 22:01, 13 May 2013 by JoomlaWikiBot (talk | contribs) (removing red link to edit, no existant pages)
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 edit link to red link >]

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

Syntax[edit]

discover_install()


Returns[edit]

void

Defined in[edit]

libraries/joomla/installer/adapters/library.php

Importing[edit]

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

Source Body[edit]

function discover_install()
{
        /* Libraries are a strange beast, they are actually references to files
         * There are two parts to a library which are disjunct in their locations
         * 1) The manifest file (stored in /JPATH_MANIFESTS/libraries)
         * 2) The actual files (stored in /JPATH_LIBRARIES/libraryname)
         * Thus installation of a library is the process of dumping files
         * in two different places. As such it is impossible to perform
         * any operation beyond mere registration of a library under the presumption
         * that the files exist in the appropriate location so that come uninstall
         * time they can be adequately removed.
         */

        $manifestPath = JPATH_MANIFESTS . DS . 'libraries' . 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 true;
        }
        else
        {
                JError::raiseWarning(101, JText::_('Plugin').' '.JText::_('Discover Install').': '.JText::_('Failed to store extension details'));
                return false;
        }
}

[<! removed edit link to red link >] <! removed transcluded page call, red link never existed >

Examples[edit]

<CodeExamplesForm />