如何将此组件的布局设置为joomla中的其他组件

时间:2012-07-13 02:19:04

标签: php joomla joomla2.5

我有一个示例文件:

/components/com_test/views/test/tmpl/abc.php

/components/com_content/views/article/tmpl/default.php 

default.php of com_content我使用com_test的代码调用布局

...
<?php 
require('index.php?option=com_test&view=test&tmpl=component&layout=abc'); 
?> 
...

但是结果没有在com_content中显示布局abc,如何解决?

3 个答案:

答案 0 :(得分:2)

没有直接在v2.5中处理过,但下面的代码适用于Joomla早期的MVC:

<强> view.html.php

class myComponentViewmyModel extends JView
{
    function display($tpl = null)
    {
    global $mainframe;
    if($this->getLayout() == 'abc') {
        $this->_displayAbc($tpl);
        return;
    }
.
.
.

function _displayAbc($tpl)
{
   global $mainframe;
   .
   .
   .
}

答案 1 :(得分:1)

我有一个想法是你可以使用iframe:

JHTML::_('behavior.modal', 'a.modal');
<a class="modal" rel="{handler: 'iframe', size: {x: 500, y: 400}}" href="index.php?option=com_test&view=test&tmpl=component&layout=abc">Test</a> 

答案 2 :(得分:0)

您正在传递一个URL作为require的参数。该函数需要一个路径,而不是URL。

相反,你应该这样做:

<?php 
  require(JPATH_SITE.DS.'components'.DS.'com_test'.DS.
          'views'.DS.'test'.DS.'tmpl'.DS.'abc.php'); 
?>