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.