Налаштування полів та шаблонів ProcessWire

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування полів та шаблонів ProcessWire
Проста
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування полів та шаблонів ProcessWire

Поля та шаблони — фундамент будь-якого проекту на ProcessWire. Поле визначає тип та спосіб зберігання даних; шаблон — це набір полів плюс пов'язаний PHP-файл рендеринга. Правильно спроектована структура полів економить десятки годин при подальшій розробці.

Створення полів

Поля створюються в розділі Setup → Fields → Add New. Обов'язково вказувати:

  • Name — машинне ім'я (латиниця, _), використовується в коді як $page->field_name
  • Type — тип даних
  • Label — відображається в редакторі

Часто використовувані типи полів:

Тип Зберігання Застосування
FieldtypeText VARCHAR Короткі рядки, заголовки
FieldtypeTextarea TEXT Довгий текст без HTML
FieldtypeTextareaLanguage TEXT (per lang) Багатомовний текст
FieldtypeImage окремена таблиця Зображення з метаданими
FieldtypeFile окремена таблиця Документи, PDF
FieldtypePage INT / таблиця Зв'язки між сторінками
FieldtypeRepeater дочірні сторінки Повторюючі групи полів
FieldtypeOptions INT Випадаючий список
FieldtypeCheckbox INT(1) Булево значення
FieldtypeInteger INT Числа
FieldtypeFloat FLOAT Дробові числа, ціни
FieldtypeURL VARCHAR Посилання
FieldtypeDatetime INT (UNIX timestamp) Дата та час

Налаштування FieldtypePage (зв'язки)

При створенні поля типу Page обов'язково налаштувати:

  • Derefence asPage (одна сторінка) або PageArray (кілька)
  • Parent — обмежити вибір дочірніми сторінками конкретного батька
  • Template filter — показувати тільки сторінки з вказаним шаблоном
// У коді: одиночна зв'язь
echo $page->category->title;

// Множинна зв'язь
foreach ($page->tags as $tag) {
    echo "<span class='tag'>{$tag->title}</span>";
}

Створення шаблонів

Шаблон створюється в Setup → Templates → Add New. Процес:

  1. Створити PHP-файл у /site/templates/my-template.php
  2. Перейти в Templates → Add New — ProcessWire знайде файл автоматично
  3. Додати потрібні поля на вкладці Fields
  4. Налаштувати Access (права доступу)
  5. Налаштувати URLs (дозволити/заборонити дочірні сторінки, суфікс URL)

Вкладка Advanced

Важливі параметри вкладки Advanced:

  • Page class — кастомний клас PHP для сторінок цього шаблону
  • Prepend/Append file — підключувати _init.php та _main.php
  • Cache time — кешувати вивід шаблону N секунд
  • Allow page numbers — дозволити /page2, /page3 в URL (потрібно для пагінації)

Fieldset та групування полів

Fieldset (FieldtypeFieldsetOpen / FieldtypeFieldsetClose) групує поля візуально в редакторі без впливу на зберігання:

Порядок додавання полів до шаблону:

  1. fieldset_seo_open — FieldtypeFieldsetOpen, label="SEO"
  2. meta_title — FieldtypeText
  3. meta_description — FieldtypeTextarea
  4. fieldset_seo_close — FieldtypeFieldsetClose

У редакторі сторінки ці поля будуть згорнуті в блок «SEO».

Repeater: повторюючі групи

Поле типу Repeater містить кілька дочірніх полів, які редактор може додавати/видаляти:

// Поле features (Repeater з полями: icon, headline, text)
foreach ($page->features as $feature) {
    echo "<div class='feature-card'>";
    echo "  <img src='{$feature->icon->url}' alt=''>";
    echo "  <h3>{$feature->headline}</h3>";
    echo "  <p>{$feature->text}</p>";
    echo "</div>";
}

RepeaterMatrix (платний модуль ProFields) дозволяє мати кілька типів блоків в одному полі — аналог Flexible Content в ACF.

Експорт та імпорт конфігурації

Конфігурацію полів та шаблонів можна експортувати через Setup → Export/Import або модуль DatabaseBackups. Для переносу між окруженнями використовують JSON-експорт шаблонів:

# Резервна копія структури (не даних)
# Через модуль RockMigrations або вручну через API:
php -r "
  require '/var/www/site/index.php';
  echo \$templates->get('product')->exportJSON();
" > product-template.json

Модуль RockMigrations дозволяє описувати структуру полів та шаблонів у PHP-коді та застосовувати зміни воспроизводимо — аналог міграцій у Laravel.