it-swarm.dev

Pubblica automaticamente il plugin dopo l'installazione

Ho creato un paio di piccoli plugin che installo sulla maggior parte dei miei siti Web. Ma i nuovi plugin sono (fortunatamente) disabilitati di default quando installati. So che sono solo un paio di clic per abilitare il plugin, ma è possibile abilitare il mio plugin una volta completata l'installazione?

7
johanpw

Quello che consiglierei di fare è creare uno script di installazione che esegua una funzione postflight. Questa funzione è integrata in Joomla e verrà eseguita dopo l'installazione dell'estensione.

Puoi usare qualcosa del genere:

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();     
    }
}

Per ulteriori informazioni sul file di script, leggi la documentazione di Joomla:

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

Spero che sia di aiuto

6
Lodder

Puoi creare un plugin come questo:

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();
        }
    }
}

Installare e abilitare il plug-in sopra prima di installare i plug-in.

1
Farahmand