Программное создание категории
// jimport( 'joomla.database.table.category' );
//Получаем объект базы данных
$db = JFactory::getDbo();
$categoryTable = new JTableCategory($db);
//Данные категории
$dataContent = array(
'id' => null,
'title' => $cat,
'alias' => parsef::translit($cat),
'extension' => "com_content",
'published' => 1,
'language' => "*",
);
//Вносим данные в таблицу
$categoryTable->bind($dataContent);
//Проверяем или данные корректны
if($categoryTable->check()){
//Создаем новую запись
$categoryTable->store();
// Если запись создана, то прописываем родителя и уровень, запрашиваем получившуюся категорию
if($categoryTable->id){
$categoryTable->parent_id = $parentId;
$categoryTable->level = $parent->level+1;
$categoryTable->path = $parent->path."/".$categoryTable->alias;
$categoryTable->store();
}
}
// Если выполнять это не из среды Joomla, то при при выполнении метода store() будет вылетать ошибка приложения (хотя категория создается)
// И еще после импорта желательно зайти в админке в категории и перестроить дерево (или рыть как это сделать программно - пока не нашел, что-то про JTableNested::rebuild() пишут, но у меня не заработало).
// Также стоит помнить, что порядок добавленных категорий получится обратным