В течение некоторого времени Joomla! предлагает возможность добавлять пользовательские поля в статьи.
Теперь я хочу создавать новые статьи через Joomla! Api, который работает нормально, используя следующий код (который также используется в документации Joomla!):
$article = JTable::getInstance( 'content' );
// create article entity object
$article->title = $title;
$article->alias = JFilterOutput::stringURLSafe( $title );
$article->fulltext = $imagesHTML;
$article->images = json_encode($image);
$article->catid = $paramsArray['category_sun'];
$article->created = JFactory::getDate()->toSQL();;
$article->created_by = $paramsArray['user_author'];
$article->access = 1;
$article->metadata = '{"page_title":"","author":"","robots":""}';
$article->language = '*';
$article->state = 1;
// validate article
if (!$article->check()) {
JError::raiseNotice( 500, $article->getError() );
return false;
}
// store article into database
if (!$article->store(true)) {
JError::raiseNotice( 500, $article->getError() );
return false;
}
Но теперь я хочу добавить значения настраиваемого поля также? Как я могу это сделать? К сожалению, Joomla! документация не говорит об этом (и очень устарела).
Я нашел способ сделать это с Joomlas Dbo, который делает запрос к базе данных:
$field = new stdClass();
$field->field_id = 1;
$field->item_id = $article->id;
$field->value = "2018-11-06";
$result = JFactory::getDbo()->insertObject('#__fields_values', $field);
Сначала вы должны создать новый объект поля и сохранить его, используя метод insertObject. Таблица базы данных, в которой хранятся значения настраиваемых полей, называется [prefix]_fields_values
,
Других решений пока нет …