カスタム拡張またはサードパーティコンポーネントのカテゴリを取得する方法


8

カテゴリを#__categoriesテーブルに保存するサードパーティコンポーネントがあります。

-----+----------------+-----------------------+-----------------------+-----
...  | extension      | title                 | alias                 | ...
-----+----------------+-----------------------+-----------------------+-----
...  | com_content    | Uncategorised         | uncategorised         | ...
-----+----------------+-----------------------+-----------------------+-----
...  | com_banners    | Sample Data-Banners   | sample-data-banners   | ...
-----+----------------+-----------------------+-----------------------+-----
...  | com_newsfeeds  | Sample Data-Newsfeeds | sample-data-newsfeeds | ...
-----+----------------+-----------------------+-----------------------+-----
...  | com_contact    | Sample Data-Contact   | sample-data-contact   | ...
-----+----------------+-----------------------+-----------------------+-----
...  | com_content    | Joomla!               | joomla                | ...
-----+----------------+-----------------------+-----------------------+-----
...  | com_thirdparty | ThirdParty Category   | thridparty-category   | ...
-----+----------------+-----------------------+-----------------------+-----
...  | ...            | ...                   | ...                   | ...
-----+----------------+-----------------------+-----------------------+-----

com_banners以下のように、他のコアコンポーネントとの間でカテゴリを印刷できます。

$categories = JCategories::getInstance('Banners');
$subCategories = $categories->get()->getChildren(true);
print_r($subCategories);

しかし、それは示しています

" 致命的なエラー:クラス 'ThirdPartyCategories'が... \ libraries \ legacy \ categories \ categories.phpの152行目に見つかりません。"

以下のように別の拡張子のカテゴリを印刷しようとすると、

$categories = JCategories::getInstance('ThirdParty');
$subCategories = $categories->get()->getChildren(true);
print_r($subCategories);

joomlaライブラリのレガシーカテゴリをどうすればよいですか?

注:名前ThirdPartyは単なるプレースホルダーであり、サードパーティの拡張機能の名前にすることができます。


あるThirdPartyコンポーネントの実際の名前は?
Lodder

いいえ、それは単なるプレースホルダーであり、サードパーティの拡張機能の名前である可能性があります。私の場合、それはcom_thirdpartyです
kolunar

回答:


6

いくつかの調査を行った後、私が使用しているサードパーティのコンポーネントには、以下に説明するようにコンポーネントのヘルパーディレクトリで拡張..\components\com_thirdparty\helpers\category.php するクラスを実装するために必要なファイルが作成されていないことがわかりましたThirdPartyCategoriesJCategories

defined('_JEXEC') or die;

/**
 * ThirdParty Component Category Tree
 */
class ThirdPartyCategories extends JCategories
{
    /**
     * Constructor
     *
     * @param   array  $options  Array of options
     */
    public function __construct($options = array())
    {
        $options['table']      = '#__thirdparty';
        $options['extension']  = 'com_thirdparty';
        $options['statefield'] = 'published';
        parent::__construct($options);
    }
}

自分の質問に適切に回答した場合は、それを選択した回答として設定し、未回答の質問リストから削除してください。
2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.