web-dev-qa-db-ja.com

Joomlaでのグローバル変数の使用

いくつかの値を保持する変数があります。管理者とサイトの両方でこの変数値を取得する必要があります。変数をどこに配置する必要がありますか?また、コンポーネントまたはどこにでも変数を取得するにはどうすればよいですか?

8
aish

管理者とフロントエンドサイトは2つの異なるサイトです。それらの間で情報を共有するには、以下のような永続的なメカニズムを使用できます。

1)データベーステーブルに情報を保存し、Joomla Dboを使用してアクセスします。

https://docs.joomla.org/Accessing_the_database_using_JDatabase

2)ルートレベル(/)でcookieを設定して、cookieを使用して情報にアクセスします。

$cookies = JFactory::getApplication()->input->cookie;
$cookies->set($name, $value, $expire, '/');

3)情報を一時ファイルに保存し、必要な場所にアクセスします。

https://docs.joomla.org/How_to_use_the_filesystem_package

その他の注意事項:

同じアプリケーション(サイトまたは管理者)内で情報を共有する場合は、それを[アプリケーション]に設定し、同じリクエスト内で同じサイト内にアクセスできます。

$app = JFactory::getApplication();
$app->set('some_variable', 'some_value');
...
$someValue = $app->get('some_variable');

リクエスト間で同じアプリケーション内の変数にアクセスする場合は、JSessionを使用できます

$session = JFactory::getSession();
$session->set('some_variable', "some_value");
...
echo $session->get('some_variable');
9
Nagarjun