Как получить категории пользовательского расширения или стороннего компонента

У меня есть компонент thirdparty, который сохраняет свои категории в таблице #__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 является просто заполнителем, может быть любым третьим   имя участника расширения.

8 голосов | спросил kolunar 14 +03002015-10-14T12:36:24+03:00312015bEurope/MoscowWed, 14 Oct 2015 12:36:24 +0300 2015, 12:36:24

1 ответ


6

После некоторых исследований выясняется, что сторонний компонент, который я использую, не имеет файла, созданного как ..\components\com_thirdparty\helpers\category.php, который требуется для реализуйте класс ThirdPartyCategories, который расширяет JCategories в каталоге помощников компонента, как описано ниже

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);
    }
}
ответил kolunar 14 +03002015-10-14T13:19:38+03:00312015bEurope/MoscowWed, 14 Oct 2015 13:19:38 +0300 2015, 13:19:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132