Разработка сайта на CMS Processwire

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Разработка сайта на CMS Processwire
Средняя
~1-2 недели
Часто задаваемые вопросы

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

Этапы разработки
Последние работы
  • 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

Разработка сайта на CMS ProcessWire

ProcessWire — нереляционная CMS с API, построенным вокруг концепции «всё есть страница». Каждая единица контента — это страница с полями; шаблон — это PHP-файл, который рендерит страницу. Подобная архитектура даёт полный контроль над структурой данных без ограничений, характерных для WordPress или Drupal.

Когда выбирают ProcessWire

ProcessWire выигрывает в задачах, где контентная структура сложная и нестандартная: каталоги услуг с десятками атрибутов, многоязычные порталы, сайты с нестандартной иерархией страниц. Он не навязывает тип сайта — нет «постов» и «страниц» в понимании WP, есть только страницы с полями, которые вы определяете сами.

Типичные проекты:

  • корпоративные сайты с нетривиальной структурой разделов
  • каталоги продукции с фасетной фильтрацией
  • многоязычные сайты (до 30+ языков через LanguageSupport)
  • порталы с кастомными правами доступа к контенту

Архитектура проекта

Структура шаблонов ProcessWire следует простому принципу: один шаблон — один PHP-файл в /site/templates/. Разметка, логика и данные могут быть разделены через директорию controllers/ или через встроенные _init.php/_main.php.

/site/
  templates/
    _init.php          # глобальные переменные, подключение хелперов
    _main.php          # обёртка layout (header/footer)
    home.php           # шаблон главной
    services.php       # шаблон списка услуг
    service-item.php   # шаблон одной услуги
    partials/
      nav.php
      hero.php
  modules/             # кастомные модули
  config.php

Доступ к данным через $pages API:

// Получить все дочерние страницы с фильтрацией
$services = $pages->find("template=service-item, status=published, sort=sort, limit=12");

// Полнотекстовый поиск
$results = $pages->find("template=service-item, title|body*=$q, limit=20");

// Вложенные селекторы
$recent = $pages->find("template=news, date>=" . strtotime("-30 days") . ", sort=-date");

Поля и типы данных

ProcessWire поддерживает более 30 типов полей «из коробки»: FieldtypeText, FieldtypeTextarea, FieldtypeImage, FieldtypeFile, FieldtypePage (связи), FieldtypeRepeater (повторяемые группы), FieldtypeOptions, FieldtypeMapMarker.

Реляции между страницами — через FieldtypePage:

// Шаблон services.php — вывод связанных материалов
foreach ($page->related_cases as $case) {
    echo "<a href='{$case->url}'>{$case->title}</a>";
}

FieldtypeRepeater используется для секций с переменным числом блоков — например, блоки «иконка + заголовок + текст» на лендинге:

foreach ($page->features as $feature) {
    echo "<div class='feature'>";
    echo "<img src='{$feature->icon->url}'>";
    echo "<h3>{$feature->headline}</h3>";
    echo "<p>{$feature->text}</p>";
    echo "</div>";
}

Многоязычность

Модули LanguageSupport, LanguageSupportFields, LanguageSupportPageNames включаются через админку. После активации у каждого текстового поля появляются вкладки языков. В шаблоне переключение языка — одна строка:

$user->language = $languages->get("en");
echo $page->title; // вернёт английский заголовок

URL-адреса страниц тоже переводятся: /ru/uslugi/razrabotka/ и /en/services/development/ — одна и та же страница.

Права доступа и роли

ProcessWire имеет гранулярные права: можно ограничить редактирование конкретного шаблона конкретной ролью, запретить публикацию без подтверждения, скрыть поля от определённых пользователей. Настройка через $config->pagefileSecure и модуль PageEditPerRole.

Производительность

Кэширование на уровне шаблона через $cache API:

$nav = $cache->get("main-nav");
if (!$nav) {
    $nav = buildNav($pages);
    $cache->save("main-nav", $nav, 3600); // TTL 1 час
}

ProCache (платный модуль) генерирует статические HTML-файлы и отдаёт их напрямую через .htaccess, обходя PHP полностью — скорость приближается к статическим сайтам.

Типовые сроки разработки

Тип сайта Страниц/шаблонов Срок
Корпоративный сайт 6–10 шаблонов 3–5 недель
Каталог с фильтрацией 8–14 шаблонов 5–8 недель
Многоязычный портал 10–20 шаблонов 7–12 недель
API-бэкенд (headless) 4–8 шаблонов 2–4 недели

Headless-режим

ProcessWire работает как headless CMS через модуль ProcessWireAPI или вручную — шаблон возвращает JSON:

// api.php — шаблон для API-эндпоинта
header("Content-Type: application/json");
$data = [];
foreach ($pages->find("template=product, limit=50") as $p) {
    $data[] = [
        "id"    => $p->id,
        "title" => $p->title,
        "slug"  => $p->name,
        "price" => $p->price,
        "image" => $p->image->httpUrl ?? null,
    ];
}
echo json_encode($data);

Фронтенд на React или Next.js забирает данные через этот эндпоинт. ProcessWire при этом отвечает только за хранение и выдачу контента.