2

我有一个示例文件:

/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,如何解决?

4

3 回答 3

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;
   .
   .
   .
}
于 2012-07-13T02:31:47.480 回答
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> 
于 2012-07-13T02:42:21.833 回答
0

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

相反,您应该这样做:

<?php 
  require(JPATH_SITE.DS.'components'.DS.'com_test'.DS.
          'views'.DS.'test'.DS.'tmpl'.DS.'abc.php'); 
?> 
于 2013-04-17T14:17:26.497 回答