Cách nhận Danh mục tiện ích mở rộng tùy chỉnh hoặc thành phần bên thứ ba


8

Tôi có một thành phần thứ ba lưu trữ các thể loại của nó trong #__categoriesbảng.

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

Tôi có thể in các danh mục từ com_bannershoặc từ các thành phần cốt lõi khác như dưới đây,

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

Nhưng nó cho thấy

" Lỗi nghiêm trọng : Không tìm thấy lớp 'Thứ baPartyC loại' trong ... \ library \ legacy \ chuyên mục \ chuyên mục.php trên dòng 152"

khi cố gắng in các danh mục của tiện ích mở rộng khác như dưới đây,

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

Tôi phải làm gì với các danh mục cũ trong thư viện j Joomla?

Lưu ý: Tên ThirdPartychỉ là một trình giữ chỗ, có thể là tên của bất kỳ bên thứ ba nào.


ThirdPartytên thực tế của thành phần?
Lodder

Không, đó chỉ là một trình giữ chỗ, có thể là tên của bất kỳ bên thứ ba nào. Trong trường hợp của tôi, đó là com_thirdparty
kolunar

Câu trả lời:


6

Sau khi thực hiện một số nghiên cứu, hóa ra thành phần bên thứ ba mà tôi đang sử dụng không có tệp được tạo như ..\components\com_thirdparty\helpers\category.php yêu cầu để thực hiện một lớp ThirdPartyCategoriesmở rộng JCategoriestrong thư mục trợ giúp của thành phần như được mô tả dưới đây

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

Nếu bạn đã trả lời phù hợp câu hỏi của riêng bạn, vui lòng đặt câu hỏi đó làm câu trả lời bạn đã chọn để xóa câu hỏi khỏi danh sách câu hỏi chưa được trả lời.
garth
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.