私は Joomla 3 の MVC 12.1 プラットフォームで作業しており、テンプレートのオーバーライドを機能させる際にいくつかの問題が発生しています。
私のコンポーネントには、店舗、クーポン、販売の 3 つのコントローラーがあります。
これらのコントローラーごとに、これに似たビューを呼び出します。
$paths = new SplPriorityQueue;
$paths->insert(JPATH_SITE.'/templates/'.$app->getTemplate().'/html/com_stores/stores', 'normal');
$paths->insert(JPATH_COMPONENT . '/views/stores/tmpl', 'normal');
$view = new StoresViewsStores(new StoresModelsStore, $paths);
$view->setLayout('default');
// Render our view.
echo $view->render();
それらの間の唯一の違いは、ビュー/モデル/ディレクトリをそれぞれ切り替えることです。
テンプレートにオーバーライドを含めない限り、すべてが期待どおりに機能します。ただし、オーバーライドを含めるとすぐに、不安定になります。
テンプレートに を追加するcom_stores/stores/default.php
と、店舗は正しく上書きされますが、クーポンと販売コントローラーは、独自のフォルダーではなく、店舗の上書きを指し始めます。
各コントローラーが同じオーバーライドを指すようにしている、私が見逃しているものはありますか?
参考までに、各コントローラーのパスは次のとおりです。
店舗:
$paths->insert(JPATH_SITE.'/templates/'.$app->getTemplate().'/html/com_stores/stores', 'normal');
$paths->insert(JPATH_COMPONENT . '/views/' . $viewName . '/tmpl', 'normal');
販売:
$paths->insert(JPATH_SITE.'/templates/'.$app->getTemplate().'/html/com_stores/sales', 'normal');
$paths->insert(JPATH_COMPONENT . '/views/' . $viewName . '/tmpl', 'normal');
クーポン:
$paths->insert(JPATH_SITE.'/templates/'.$app->getTemplate().'/html/com_stores/coupons', 'normal');
$paths->insert(JPATH_COMPONENT . '/views/' . $viewName . '/tmpl', 'normal');
助けてくれてありがとう