添加views / tmpl到Joomla插件

时间:2014-10-23 14:43:22

标签: joomla

我需要一个关于如何向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();
    }
}

感谢。问候。

1 个答案:

答案 0 :(得分:1)

您没有提供太多信息(例如Joomla版本,显示您已经尝试过的代码等等),但这里有......

ViewtmplMVC of Joomla components而不是plugin的一部分。插件是响应events的一小段代码。如果您不清楚,请阅读链接的文章。

说,有可能影响viewtmpl的加载,但您希望如何使用它取决于您现有的代码。根据您是否使用Joomla 3.x或Joomla 2.5.x,您可能会阅读有关开发MVC组件的教程,2.5.x version here3.x version here

Tmpl文件是由view加载的有效模板化代码,tmpl文件也可以轻松加载子tmpl文件。例如/tmpl/default.php可以通过一次调用加载/tmpl/default-tools.php(最初它们是灵活且可重复使用的代码片段,但出于各种原因,在实践中并不起作用)。它们可以被任何给定页面使用的模板覆盖。

在J3系列的最新版本中,layouts现已可用。这些小而灵活的代码片段,可以在Joomla的各个地方使用和重复使用,它们可以由第三方扩展提供,并在模板中覆盖。

如果您可以提供有关特定使用方案,代码等的更多详细信息,我们可能会提供更多帮助。

由于这个问题与Joomla的具体实施细节有关,如果您尝试询问the Joomla Q&A StackExhange site,可能会得到更好的结果。