我需要一个关于如何向Joomla 3.x系统插件添加一些不同视图/ tmpl的建议。我做了一个简单的插件来取代Joomla 3.x离线页面,但我想为该插件添加几个不同的视图(布局)。我对视图vs tmpl感到困惑。有人可以给我一些指导,并给我一个简单的目录结构。
我使用此代码触发\ views \ defaultview \ view.html.php,但我希望有更多不同的视图。这是正确的方法吗?
public function onBeforeRender(){
// Get the application.
$app = JFactory::getApplication('site');
if (($app->getCfg('offline'))&&(!$app->isAdmin())) {
// Get the document object.
$doc = JFactory::getDocument();
$view = 'defaultview';
$basePath = __DIR__;
$config = array( 'base_path'=>$basePath);
require_once $basePath . DS . 'views' . DS . $view . DS . 'view.html.php';
JResponse::setHeader('Content-Type', 'text/html; charset=utf-8');
JResponse::sendHeaders();
$app->close();
}
}
感谢。问候。
答案 0 :(得分:1)
您没有提供太多信息(例如Joomla版本,显示您已经尝试过的代码等等),但这里有......
View
和tmpl
是MVC of Joomla components
而不是plugin
的一部分。插件是响应events
的一小段代码。如果您不清楚,请阅读链接的文章。
说,有可能影响view
或tmpl
的加载,但您希望如何使用它取决于您现有的代码。根据您是否使用Joomla 3.x或Joomla 2.5.x,您可能会阅读有关开发MVC组件的教程,2.5.x version here或3.x version here。
Tmpl
文件是由view
加载的有效模板化代码,tmpl
文件也可以轻松加载子tmpl
文件。例如/tmpl/default.php
可以通过一次调用加载/tmpl/default-tools.php
(最初它们是灵活且可重复使用的代码片段,但出于各种原因,在实践中并不起作用)。它们可以被任何给定页面使用的模板覆盖。
在J3系列的最新版本中,layouts
现已可用。这些是小而灵活的代码片段,可以在Joomla的各个地方使用和重复使用,它们可以由第三方扩展提供,并在模板中覆盖。
如果您可以提供有关特定使用方案,代码等的更多详细信息,我们可能会提供更多帮助。
由于这个问题与Joomla的具体实施细节有关,如果您尝试询问the Joomla Q&A StackExhange site,可能会得到更好的结果。