在同一视图中渲染joomla组件

时间:2015-02-21 00:17:19

标签: php joomla render

所以我正在使用com_content组件视图, 我需要加载相关的相关项目 那个正在观看的人。 有可能吗?

这是我到目前为止所做的:

$com = JPATH_SITE.DS.'components'.DS.'com_content';

if (!class_exists('ContentController')) require($com.DS.'controller.php');
$config['base_path'] = $com;
$cont = new ContentController($config);

JRequest::setVar('view', 'categories');

$lang =& JFactory::getLanguage();
$lang->load('com_content', JPATH_SITE);

$cont->display();

我不知道这是不是它应该如何,但如果可能的话,请等待任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

以下是针对我所处情况的任何人的解决方案:

// Path to wanted component
$com = JPATH_SITE.DS.'components'.DS.'com_content';

// Include controller, if its not already include
if (!class_exists('ContentController')) require($com.DS.'controller.php');

//  Inform controller of its base path
$config['base_path'] = $com;
// Init controller 
$cont = new ContentController($config);

// Get wanted view
$view =& $cont->getView('category', 'html');
// Add path to wanted template
$view->addTemplatePath(JPATH_SITE.DS.'templates'.DS.'ja_wall'.DS.'html'.DS.'com_content'.DS.'category');

 // Adding needed params to load info
JRequest::setVar('view', 'category');
JRequest::setVar('layout', 'blog');
JRequest::setVar('Itemid', '102');
JRequest::setVar('id', $this->item->catid);

 // Get and load language
$lang =& JFactory::getLanguage();
$lang->load('com_content', JPATH_SITE);

// Render page
$cont->display();