Comment obtenir des catégories d'extensions personnalisées ou de composants tiers


8

J'ai un composant tiers qui stocke ses catégories dans un #__categoriestableau.

-----+----------------+-----------------------+-----------------------+-----
...  | 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   | ...
-----+----------------+-----------------------+-----------------------+-----
...  | ...            | ...                   | ...                   | ...
-----+----------------+-----------------------+-----------------------+-----

Je peux imprimer des catégories à partir com_bannersou à partir d'autres composants principaux comme ci-dessous,

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

Mais ça montre

" Erreur fatale : la classe 'ThirdPartyCategories' est introuvable dans ... \ bibliothèques \ héritage \ categories \ categories.php sur la ligne 152"

lorsque vous essayez d'imprimer les catégories d'une autre extension comme ci-dessous,

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

Que dois-je faire avec les catégories héritées dans les bibliothèques joomla?

Remarque: Le nom ThirdPartyn'est qu'un espace réservé, peut être le nom d'une extension tierce.


Est ThirdPartyle nom réel du composant?
Lodder

Non, c'est juste un espace réservé, pourrait être le nom d'une extension tierce. Dans mon cas, c'est com_thirdparty
kolunar

Réponses:


6

Après avoir fait quelques recherches, il s'avère que le composant tiers que j'utilise n'a pas de fichier créé comme ..\components\com_thirdparty\helpers\category.php étant requis pour implémenter une classe ThirdPartyCategoriesqui s'étend JCategoriesdans le répertoire des aides du composant comme décrit ci-dessous

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);
    }
}

Si vous avez correctement répondu à votre propre question, veuillez la définir comme réponse choisie pour la supprimer de la liste des questions sans réponse.
garth
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.