ほとんどの機能にプラグインを使用する非常に基本的なアプリがあります。私は、各プラグインにいくつかのカスタムメニューとメニュー項目を定義し、これらのメニューをすべて1つの場所(おそらくAppController :: initialize)に集めて、main-menu.php要素に渡す配列を作成して、完全なメニュー。プラグインから設定を追加する方法
私がこれまでにやったことは設定をロードします
# plugins/TestPlugin/config/menus.php
return [
'menus' => [
[
'header' => 'TestPlugin',
[
'title' => 'Click me!',
'href' => './',
],
[
'title' => 'Click me too!',
'href' => './',
]
]
]
];
プラグインのメニューを定義している:
# plugins/TestPlugin/config/bootstrap.php
use Cake\Core\Configure;
Configure::load('TestPlugin.menus', 'default' , true);
と変数をお読みください。
# src/Controller/AppController.php
public function initialize()
{
parent::initialize();
$plugin_menus = Configure::read('menus);
しかし、もし1つ以上のプラグインがあります。menus
が上書きされています。
これが最善の方法かどうかはわかりません。私が達成しようとしているのは、複数のモジュールを同じ設定変数に変更(追加)することです。
私の問題は、他のプラグインの '$ menu'変数を上書きする' Configure :: read( 'menus);でプラグインのナビゲーションを読み込むことです。ですから、 '$ menus'配列を返す' plugins/TestPlugin/menus.php'ファイルをロードする方法を探しています。既存の '$ menus'変数を上書きすることはありません。 – karivolas
あなたは答えに 'array_merge'を使っていません。そのため、多次元の方法で配列をキーして、余分なナビゲーションデータを調整することができます。 –