ほとんどのWebサイトにインストールする小さなプラグインをいくつか作成しました。ただし、新しいプラグインは、インストール時にデフォルトで(幸いにも)無効になっています。プラグインを有効にするのは数回クリックするだけですが、インストールが完了したらプラグインを有効にすることはできますか?
postflight
関数を実行するインストールスクリプトを作成することをお勧めします。この関数はJoomlaに組み込まれており、拡張機能のインストール後に実行されます。
あなたはこのようなものを使うことができます:
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();
}
}
スクリプトファイルの詳細については、Joomlaドキュメントをお読みください。
http://docs.joomla.org/J2.5:Managing_Component_Updates_(Script.php)
お役に立てれば
次のようなプラグインを作成できます。
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();
}
}
}
プラグインをインストールする前に、上記のプラグインをインストールして有効にします。