2

私はカスタム 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');

ありがとうございました!

4

1 に答える 1

1

2番目のオプションの方が簡単だと思います。実際には、特定の条件で K2 アイテムを取得するプロセス全体がhelper.phpファイルに指定されています。

261 行目:

            $items = $db->loadObjectList();

オブジェクトは、クエリが作成された後に読み込まれます (コードが長すぎてここに貼り付けることができません)。

次の行では、多くのアイテム プロパティがどのように作成、変更、または生成されるかを確認できます (300 行のコード)。

最後に、アイテム (php オブジェクト) の配列を取得します。

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

        return $rows;
        ...

このファイルを取得してコードを再利用するか、モジュールが常にインストールされていると仮定してコンポーネントから呼び出すこともできます。

于 2013-02-25T03:48:57.183 に答える