我正在开发一个自定义joomla组件,并且只有一个视图设置。我试图弄清楚如何基于一些自定义过滤器将k2项列表拉入视图...
在奇怪的英语中它会是这样的:
将所有k2项目__match_some_requirements放入我的自定义组件视图中user_id =此用户
能够正常引用项目数据会很好:
$this->item->info
我真的只是想了解/找出将k2项目及其对象导入我的组件视图的最佳方法。如果这有意义吗?
也许有这个?虽然我觉得这个名字另有说明: - /
JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_component/models');
$whateverModel = JModelLegacy::getInstance('something', 'something'); //? not sure
或者可能来自这个模块代码?
require_once (JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'route.php');
require_once (JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');
class modK2ContentHelper
{
public static function getItems(&$params, $format = 'html')
{
jimport('joomla.filesystem.file');
$mainframe = JFactory::getApplication();
$limit = $params->get('itemCount', 5);
$cid = $params->get('category_id', NULL);
$ordering = $params->get('itemsOrdering', '');
$componentParams = JComponentHelper::getParams('com_k2');
$limitstart = JRequest::getInt('limitstart');
谢谢!
答案 0 :(得分:1)
我认为你的第二个选择更容易。实际上,在helper.php
文件中指定了获取具有特定条件的K2项目的整个过程。
第261行:
$items = $db->loadObjectList();
在创建查询后加载对象(代码太长而无法在此处粘贴)。
在接下来的行中,您可以看到如何创建,修改或生成许多项属性(300行代码)。
最后你得到一个项目数组(php对象):
...
$rows[] = $item;
}
return $rows;
...
您可以使用此文件并重复使用代码,甚至可以假设模块已安装,从组件中调用它。