Какую серию операторов mySQL необходимо выполнить, чтобы программно добавить страницу в Concrete5?

Я хочу создавать, а затем периодически заменять контент в конкретной5 CMS.

Я определил 15 таблиц, которые изменяются при добавлении новой страницы (с помощью сравнения MYSQL).

Однако я не совсем понимаю, как эти таблицы получают свои значения, особенно значение bID в btcontentlocal.

Я только сегодня открыл для себя 5, поэтому, если вы знаете, что существует API для публикации контента в бэкенде, пожалуйста, поделитесь им со мной!


person Tommy Cox Green    schedule 19.11.2010    source источник


Ответы (2)


Concrete5 обычно не «заменяет» контент — скорее, он добавляет новую версию в историю страницы (обратите внимание, что по историческим причинам страница часто называется «коллекцией» в коде и базе данных — как в «набор блоков»). BID — это идентификатор блока, который будет меняться каждый раз, когда блок редактируется (опять же, потому что на самом деле это не редактирование блока, который был там, а копирование этого блока в новый, чтобы старый остался для истории изменений) .

Итак... не уверен, что именно вы пытаетесь сделать, но если вы хотите обновить блок контента на странице, вам нужно создать новую версию коллекции (которая, как я полагаю, неявно переносит все существующие блоки вперед), затем скопируйте рассматриваемый блок (я думаю, что для этой цели в блочной модели есть метод «копировать» или «клонировать»), затем обновите содержимое этого блока, затем отмените назначение старого блока из новой версии коллекции, затем назначьте новый блок в новую версию коллекции, затем одобрите/опубликуйте новую версию коллекции.

Я бы настоятельно не советовал делать это с помощью запросов к базе данных — Concrete5 — очень сложная система, и в ней происходит множество мелких вещей, которые вы не хотите случайно упустить из процесса. Лучший подход — выяснить, как это сделать с помощью самих моделей. К сожалению, я не думаю, что есть одна простая функция API для всего этого, вместо этого вам нужно будет выяснить 5 или 6 различных вещей, которые необходимо сделать. Возможно, вам повезет больше, если вы зададите этот вопрос на конкретных5 форумах: http://www.concrete5.org/community/forums/customizing_c5/

person Jordan Lev    schedule 19.11.2010
comment
Я создал список SQL для обновления конкретной системы 5, которая еще не проверена - мне потребовалось много времени, чтобы выполнить ее с помощью инструмента mysql diff. Я предпочитаю использовать модели для бетона5, и спасибо, что направили меня в этом направлении. Я планирую сначала создать 250 страниц контента, а затем иметь возможность автоматически обновлять его раз в неделю. - person Tommy Cox Green; 21.11.2010

См. эту документацию. http://www.concrete5.org/documentation/developers/pages/overview

Вы можете добавлять страницы, используя код C5 self;)

person AltinkOnline    schedule 19.12.2011