Программное создание материала

Более новый вариант

$newapp = JFactory::getApplication();
$mvcFactory = $newapp->bootComponent('com_content')->getMVCFactory();
$articleModel = $mvcFactory->createModel('Article', 'Administrator', ['ignore_request' => true]);
$title_article = 'My Article title';
$article = [
    'catid' => 2,
    'title' => $title_article,
    'introtext' => 'My Article Intro Text',
    'fulltext' => 'My Article Full Text',
    'state' => 1,
    'language' => '*',
    'com_fields' => [
        'field-name' => 'field value',
    ],
];

if (!$articleModel->save($article)){
    throw new Exception($articleModel->getError());
}

// При этом, нужно обязательно быть залогиненым как админ. Или под другим аккаунтом, позволяющм редактировать поля.

 

Старый вариант

//Получаем объект базы данных
$db = JFactory::getDbo();
//Создаем объект таблички #__content
$contentTable = new JTableContent( $db );
//Определяем идентификатор пользователя от которого будет создан материал
$userid = JFactory::getUser()->guest ? 472 : JFactory::getUser()->id;
//Данные материала
$dataContent = array(
    'title' => 'Новый материал',
    'alias' => 'new-article',
    'catid' => 2, //Идентификатор категории в которой создадим материал
    'state' => 1, //Указываем что материал опубликован
    'introtext' => 'Вступительный текст нового материала',
    'fulltext' => 'Продолжение теккста нового материала',
    'created' => date( 'Y-m-d H:i:s' ),
    'publish_up' => date( 'Y-m-d H:i:s' ),
    'created_by' => $userid,
    'metakey' => 'Ключевые слова',
    'metadesc' => 'Описания',
    'featured' => 1 //Если хотим что бы материал был в избранном
);
//Вносим данные в таблицу
$contentTable->bind( $dataContent );
//Проверяем или данные корректны
if ( $contentTable->check() ) {
    //Создаем новую запись
    $contentTable->store();
}