Создание материалов Joomla с пользовательскими полями по REST API (webservice)

  • Вторник, 24 июня 2025
Создание материалов Joomla с пользовательскими полями по REST API (webservice)

Может я где проглядел, но те немногие источники, с которыми я бегло знаком, в основном рассказывают о том как в принципе создать материал в Joomla 4 / Joomla 5 с помощью REST API. А про пользовательские поля ничего не сказано: как в Joomla REST API к материалу добавить ещё и пользовательские поля?

Контекст: переношу с одного сайта на другой материалы: из Joomla 3 в Joomla 5. Для этого пишу CLI-скрипт (командная строка). Скрипт создаёт материалы на сайте-приёмнике через REST API Joomla. Собственно, похожий пример был в статье французского разработчика Александра Элизе (Alexandre Elisé), где он приводил пример консольного плагина Jiji (статья в JCM, GitHub).

Большая часть старых полей не нужна, поэтому обрезаем их в процессе импорта. Некоторые старые поля переходят в новые.

Секрет со структурой данных REST API Joomla прост: нужно воссоздать структуру данных такую же, как в форме редактирования материала в админке.


<?php

$this->apiUrl->setPath('/api/index.php/v1/content/articles');

$data = [
  'title'       => 'How to add an article to Joomla via the API?',
  'alias'       => 'how-to-add-article-via-joomla-api',
  'articletext' => 'I have no idea...',
  'catid'       => 12,
  'language'    => '*',
  'metadesc'    => '',
  'com_fields'     => [
    'multicategory' => 15,
    'pole-wt-yandex-map' => '55.752502,37.623095',
  ],
];

$this->sendRequest($this->apiUrl->toString(), $data);

Чтобы по REST API к материалу Joomla добавились ещё и поля, нужно создать элемент com_fields, а в него уже положить массив вида системное имя поля => значение поля. В примере кода выше multicategory - это системное имя (как-бы алиас) пользовательского поля, а 15 - его значение.

Upd. 25.04.2025: Всё же полезную серию статей я нашёл в Joomla Community Magazine:

Сергей Толкачев

Сергей Толкачев

Joomla-разработчик. Контрибьютер ядра Joomla. Муж. Отец 3 детей.

Россия, Саратов. https://web-tolk.ru info@web-tolk.ru

Статьи автора

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Новости портала

Новое в блогах

Видео

Форум о Joomla