Как быть если нужно добавить много категорий?.. Добавлять через админ часть не очень весело, поэтому лучше попробовать добавить с помощью PHP скрипта. 

Код для добавления категории копировал из модели com_categories

$db = JFactory::getDbo();
 
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_categories'.DS.'tables');
$table = JTable::getInstance('Category', 'CategoriesTable');
 
$title = 'Заголовок категории';
$parentId = 'root';
$level = 1;
 
$data['id'] = 0;
$data['title'] = $title;
$data['extension'] = 'com_orgpoisk';
$data['access'] = 1;
$data['metadata'] = 'com_orgpoisk';
$data['published'] = 1;
$data['parent_id'] = $parentId;
$data['params'] = '{"target":"","image":""}';
$data['level'] = $level;
 
// Set the new parent id if parent id not matched OR while New/Save as Copy .
if ($table->parent_id != $data['parent_id'] || $data['id'] == 0)
{
 $table->setLocation($data['parent_id'], 'last-child');
}
 
if (!$table->bind($data))
{
 $this->setError($table->getError());
 return false;
}
 
if (isset($data['rules']))
{
 $rules = new JAccessRules($data['rules']);
 $table->setRules($rules);
}
 
// Check the data.
if (!$table->check())
{
 $this->setError($table->getError());
 return false;
}
 
// Store the data.
if (!$table->store())
{
 echo $table->getError();
 $this->setError($table->getError());
 return false;
}
 
// Rebuild the path for the category:
if (!$table->rebuildPath($table->id))
{
$this->setError($table->getError());
return false;
}
 
// Rebuild the paths of the category's children:
if (!$table->rebuild($table->id, $table->lft, $table->level, $table->path))
{
$this->setError($table->getError());
return false;
}
 
$table->reset();

Этот код можно оформить в виде функции и использовать в цикле для добавления большого количества категорий, например, из csv файла. Делать лучше частями, чтобы не получился тайм-аут выполнения скрипта.

Чтобы сделать комментарий, нужно авторизоваться на сайте!