web-dev-qa-db-fra.com

Publier automatiquement le plugin après l'installation

J'ai créé quelques petits plugins que j'installe sur la plupart de mes sites Web. Mais les nouveaux plugins sont (heureusement) désactivés par défaut lors de l'installation. Je sais qu'il ne faut que quelques clics pour activer le plugin, mais est-il possible de faire en sorte que mon plugin s'active lui-même une fois l'installation terminée?

7
johanpw

Ce que je vous recommande de faire est de créer un script d’installation qui exécute une fonction postflight. Cette fonction est intégrée à Joomla et sera exécutée une fois l'extension installée.

Vous pouvez utiliser quelque chose comme ceci:

function postflight($type, $parent)
{
    // We only need to perform this if the extension is being installed, not updated
    if (strtolower($type) === 'install') 
    {       
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);

        $fields = array(
            $db->quoteName('enabled') . ' = 1',
            $db->quoteName('ordering') . ' = 9999'
        );

        $conditions = array(
            $db->quoteName('element') . ' = ' . $db->quote('plg_myplugin'), 
            $db->quoteName('type') . ' = ' . $db->quote('plugin')
        );

        $query->update($db->quoteName('#__extensions'))->set($fields)->where($conditions);

        $db->setQuery($query);   
        $db->execute();     
    }
}

Pour plus d'informations sur le fichier de script, lisez la documentation Joomla:

http://docs.joomla.org/J2.5:Managing_Component_Updates_ (Script.php)

J'espère que cela t'aides

6
Lodder

Vous pouvez créer un plugin comme ceci:

class plgExtensionEnableMyPlugins extends JPlugin
{
    public function onExtensionAfterInstall($installer, $eid)
    {
        if ($eid)
        {
            $db = JFactory::getDbo();
            $db->setQuery("UPDATE #__extensions SET `enabled` = 1 WHERE `extension_id` = $eid AND `type` = 'plugin'");
            $db->execute();
        }
    }
}

Installez et activez le plugin ci-dessus avant d'installer vos plugins.

1
Farahmand