it-swarm-es.tech

Publicar automáticamente el complemento después de la instalación

He creado un par de pequeños complementos que instalo en la mayoría de mis sitios web. Pero los nuevos complementos están (afortunadamente) deshabilitados de forma predeterminada cuando se instalan. Sé que solo es un par de clics para habilitar el complemento, pero ¿es posible que mi complemento se habilite una vez que se complete la instalación?

7
johanpw

Lo que recomendaría hacer es crear un script de instalación que ejecute una función postflight. Esta función está integrada en Joomla y se ejecutará después de que se haya instalado la extensión.

Podrías usar algo como esto:

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

Para obtener más información sobre el archivo de script, lea la Documentación de Joomla:

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

Espero que esto ayude

6
Lodder

Puede crear un complemento como este:

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

Instale y habilite el complemento anterior antes de instalar sus complementos.

1
Farahmand