【问题标题】:How can I pull k2 items into my custom components view?如何将 k2 项目拉入我的自定义组件视图?
【发布时间】:2013-02-07 11:11:52
【问题描述】:

我正在开发一个自定义 joomla 组件,并且有一个单一的视图设置。我试图弄清楚如何根据一些自定义过滤器将 k2 项目列表拉到视图中......

奇怪的英语中会是这样的:

将所有 k2 项 that_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');

谢谢!

【问题讨论】:

  • 注意:K2 内容模块能够做到这一点...
  • 每当我在另一个扩展中需要任何类型的 K2 数据时,我都会使用 K2 内容模块中的方法。
  • 您介意再详细说明一下吗?谢谢顺便说一句!

标签: php oop joomla joomla2.5 joomla-k2


【解决方案1】:

我认为您的第二个选择更容易。其实在helper.php文件中指定了获取特定条件的K2项的整个过程。

在第 261 行:

            $items = $db->loadObjectList();

在创建查询后加载对象(代码太长,此处无法粘贴)。

在接下来的几行中,您可以看到许多项目属性是如何创建、修改或生成的(300 行代码)。

最后你会得到一个项目数组(php 对象):

                ...
               $rows[] = $item;
        }

        return $rows;
        ...

您可以只获取此文件并重用代码,甚至可以从组件中调用它,假设始终安装该模块。

【讨论】:

  • 我不确定我是否关注?在我的视图中,我应该需要/包含 k2 MODULE 中的 helper.php 吗?还是应该将模块 helper.php 包含到我的组件控制器中?
猜你喜欢
  • 2013-08-06
  • 2021-01-26
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 2023-03-25
相关资源
最近更新 更多