我正在使用 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');
谢谢您的帮助