Processwire: как хранить теги как массив

Я очень новичок в Processwire.

Я хочу создать тип поля, в котором я могу определить несколько тегов (все возможные, а не предопределенные).

Я хочу использовать их в своем шаблоне как простой массив:

$tags = $page->get('tags');
// $tags = array('bananas', 'apples', 'oranges')

Потому что я создаю простой шаблон, который выводит мои данные в виде JSON для других приложений. Что-то вроде безголовой CMS.

Как я могу решить это? Я не нашел ни одного модуля или решения на других форумах.

1

Решение

Есть несколько способов сделать это. Очевидно, что самый простой способ — использовать обычное текстовое поле и разделить их запятыми. Для вашего выхода вы можете просто использовать

$tags = explode(',',$page->get('tags'));

Если вы хотите иметь более удобный интерфейс для ввода тегов (вывод остается таким же, как указано выше), вы можете использовать: http://modules.processwire.com/modules/textbox-list/

Для более продвинутых решений, таких как использование типа поля «page» и, кроме того, InputfieldChosenSelect, смотрите здесь: https://processwire.com/talk/topic/2010-fieldtype-for-storing-tags/

Кстати: для Processwire форум разработчиков PW — всегда лучшее место, чтобы задавать подобные вопросы 🙂

1

Другие решения

Одним из способов было бы иметь одну страницу, а затем использовать повторитель с одним полем.

0

По вопросам рекламы [email protected]