回答:
私がお勧めすることは、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();
}
}
}
プラグインをインストールする前に、上記のプラグインをインストールして有効にします。
postflight
は、すべてのプラグインの関数を作成するのではなく、プラグインを使用することを好みます。やり過ぎではないと思います。すべてのプラグインをインストールしたらすぐに、プラグインをアンインストール/無効化できます。これが同様のケースの人々を助けることを願っています。
1
し、9999
整数であり、型キャストのための必要はありません。)