joomla - где хранится порядок категорий? - PullRequest
6 голосов
/ 28 августа 2011

У меня есть вопрос, который может показаться простым, но все же я не смог найти ответ. В отличие от статей, которые хранятся в таблице jos_content, категориям в таблице jos_categories не хватает ни одного столбца с именем ordering или любого другого, в котором бы хранилась нужная информация. Я также пытался найти что-то подобное в таблице jos_assets, но это тоже не помогло.

Я немного взламываю компонент контента, и мне нужно, чтобы мои дочерние категории упорядочивались по порядку при вызове $parent->getChildren() или просто нашли столбец ordering, чтобы я мог создать собственный запрос, даже если он не чист просто нужно, чтобы он работал как можно скорее.

Так, где я могу найти порядок категорий или как заставить getChildren метод вернуть упорядоченные результаты?

Заранее спасибо, Элвис

1 Ответ

8 голосов
/ 28 августа 2011

В Joomla порядок категорий сохраняется в таблице "jos_categories" в виде иерархической древовидной структуры с набором связанных узлов. Столбцы, используемые для установки порядка: « parent_id », « lft », « rgt » и « level ».

Активы и пункты меню хранятся одинаково.

Подробнее о «обходе дерева» можно прочитать на wiki

Edit: Из Joomla 1.6 для загрузки определенной категории и всех ее дочерних элементов в объект JCategoryNode используйте:

jimport( 'joomla.application.categories' );

$extension = 'Content'; // com_content
$options['countItems'] = true;
$categoryId = 0;

$categories = JCategories::getInstance($extension, $options);
$categories->get($categoryId);
...