1

メソッド JComponentHelper::isEnabled('com_extension', true); 拡張機能がインストールされているかどうかを確認し、ブール値を返します。

この関数は、self::getComponent($option, $strict); が原因でコンポーネントがインストールされていないことを通知する例外もスローします。同じヘルパー クラスで。

コンポーネントがインストールされていない場合に通知を回避する方法はありますか?

4

4 に答える 4

1

データベースをチェックして、コンポーネントがインストールされ、有効になっているかどうかを確認してください。

$db = JFactory::getDbo();
$db->setQuery("SELECT enabled FROM #__extensions WHERE name = 'component name'");
$is_enabled = $db->loadResult();

の値が の場合、$is_enabledコンポーネント1は有効です。

于 2013-01-07T17:03:39.773 に答える
1

これは古い質問であることに気づきましたが、これは Google の最初の結果の 1 つでもあるため、余分なデータベース クエリを避けながら、何がうまくいくかを共有したいと思いました。

例外を回避するために、次のように拡張機能のエントリ ポイント ファイルが存在するかどうかを確認することもできます。

if (file_exists(JPATH_ADMINISTRATOR . '/components/com_extension/extension.php') && JComponentHelper::isEnabled('com_extension', true))
    {
        // Your code here
    }
于 2014-04-02T20:49:18.563 に答える
0

チェックアウト

JComponentHelper::isInstalled('com_extension');
于 2016-03-26T17:51:36.253 に答える
0

同じ関数 isEnabled を使用してその例外をキャッチできます。そのため、例外がスローされた場合、コンポーネントはインストールされません。

于 2012-07-23T07:53:17.753 に答える