Cara mendapatkan Kategori ekstensi khusus atau komponen pihak ketiga

8

Saya memiliki komponen pihak ketiga yang menyimpan kategorinya dalam #__categoriestabel.

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

Saya dapat mencetak kategori dari com_bannersatau dari komponen inti lainnya seperti di bawah ini,

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

Tapi itu menunjukkan

" Kesalahan fatal : Kelas 'ThirdPartyCategories' tidak ditemukan di ... \ libraries \ legacy \ kategori \kategori.php on line 152"

ketika mencoba mencetak kategori ekstensi lain seperti di bawah ini,

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

Apa yang harus saya lakukan dengan kategori lawas di perpustakaan joomla?

Catatan: Nama ThirdPartyini hanyalah pengganti, bisa berupa nama ekstensi pihak ketiga mana pun.

kolunar
sumber
Apakah ThirdPartynama sebenarnya dari komponen?
Lodder
Tidak, itu hanya pengganti, bisa berupa nama ekstensi pihak ketiga mana pun. Dalam kasus saya, ini com_thirdparty
kolunar

Jawaban:

6

Setelah melakukan beberapa penelitian, ternyata komponen pihak ketiga yang saya gunakan tidak memiliki file yang dibuat seperti ..\components\com_thirdparty\helpers\category.php yang diperlukan untuk mengimplementasikan kelas ThirdPartyCategoriesyang meluas JCategoriesdalam direktori pembantu komponen seperti yang dijelaskan di bawah ini

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
sumber
Jika Anda telah menjawab dengan tepat pertanyaan Anda sendiri, harap tetapkan itu sebagai jawaban yang Anda pilih untuk menghapusnya dari daftar pertanyaan yang tidak dijawab.
garth