new

PageBlocks

Создавай сайты быстро и легко
Автор дополнения
Boshnik
Пакетов
16
Закачек
3 274
Автор дополнения
Пакетов
16
Закачек
3 274
Обычно отвечает в течение суток
Версия 1.2.0-beta5
Дата выпуска 19.10.2021
Загрузки 66
Просмотры 1 572
Внимание, этот компонент требует версию PHP 7.0 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.8 !
Всем привет.

Версия 1.2.0 не совместима с предыдущими версиями. При обновлении все может поломаться.

PageBlocks позволяет легко и быстро интегрировать верстку. Больше никаких дополнительных полей(tv). Добавляйте, удаляйте и перемещайте блоки в интерфейсе ресурса.



Блоки контента


Разберем несколько блоков для примера:

1. Обычный блок

Блок имеет структуру: заголовок, описание, 2 кнопки и картинку.


Теперь давайте создадим такой блок в конструкторе блоков:


В чанке hero нам доступны след. переменные: title, desc, appstore, googleplay и img

2. Блок с повторяющими элементами.


Здесь мы будем использовать дополнительную таблицу внутри блока:


В чанке выводим таблицу через параметр blocks(имя поля, которое мы задали в блоке):
{foreach $blocks as $block}
    <div class="card">
        <div class="card-header">
            <div class="icon {$block.icon}"></div>
            <h2>{$block.title}</h2>
        </div>
        <div class="card-body">
            {$block.desc}
        </div>
    </div>
{/foreach}


3. Готовые блоки.

Есть блок FAQ, который нужно вывести и на других страницах. Но, заполнять такие блоки на каждой странице было бы тупо.


Поэтому мы заполним блок только в одном месте — в базе готовых блоков.
1. Создаем структуру блока


2. Заполняем блок


3. Добавляем на страницы


Но, можно еще вывести этот блок вручную через идентификатор блока.
{'!pdoResources' | snippet: [
    'frontend_css' => '',
    'class' => 'pageBlock',
    'loadModels' => 'pageBlocks',
    'sortby' => 'rank',
    'sortdir' => 'asc',
    'limit' => 1,
    'tpl' => 'tpl.PageBlocks',
    'where' => [
        'id' => 4, // faq block id
        'active' => 1
    ],
]}
При обновлении базового блока, все соответствующие блоки будут обновлены автоматически, кроме тех блоков, у которых отмечена галочка «Уникальный блок».

Доступность


Каждый блок можно сделать доступным только для конкретной страницы или шаблона.


Вывод блоков на странице


{'!pdoResources' | snippet: [
    'frontend_css' => '',
    'class' => 'pageBlock',
    'loadModels' => 'pageBlocks',
    'sortby' => 'rank',
    'sortdir' => 'asc',
    'limit' => 0,
    'tpl' => 'tpl.PageBlocks',
    'where' => [
        'resource' => $_modx->resource.id,
        'active' => 1
    ],
]}


Мультиязычность


1. Контексты. (например, Babel)
Используем тот же код, что и выше.

2. Без контекстов (например, localizator)
В системной настройке pageblocks_contexts добавляем необходимые языки, например English==web||Russian==ru. Где English — это название языка, web — имя контекста. В недалеком будущем будет автоматический перевод.

Выводим блоки:
{'!pdoResources' | snippet: [
    'frontend_css' => '',
    'class' => 'pageBlock',
    'loadModels' => 'pageBlocks',
    'sortby' => 'rank',
    'sortdir' => 'asc',
    'limit' => 0,
    'tpl' => 'tpl.PageBlocks',
    'where' => [
        'resource' => $_modx->resource.id,
        'context_key' => $_modx->config.localizator_key,
        'active' => 1
    ],
]}


Экспорт / Импорт


Есть возможность экспортировать/импортировать блоки в формат csv. Очень удобно для копирования блоков с одной страницы в другую, а также для импорта большого кол-во однотипных блоков, но об этом узнаете чуть позже))

Список изменений

1.2.0-beta5 (19.10.2021)

Исправлено:

  • условие для формирования значений блока и таблицы
  • превью для видео
  • обновление чанка
  • приоритет колеекции
  • загрузка файлов в директорию
  • сохранение столбцов в коллекции
  • сниппет PageBlocks

Изменено

  • путь загрузки файлов (assets/images/)

1.2.0-beta4 (08.10.2021)

Добавлено:

  • сетка для полей
  • колонка id для коллекций
  • синхронизация поля published
  • параметры к сниппету PageBlocks

Исправлено

  • z-index для окон
  • превью для видео

1.2.0-beta3 (07.10.2021)

Добавлено:

  • параметр object_id к сниппету PageBlocks

1.2.0-beta2 (06.10.2021)

Добавлено:

  • обновление чанка в блоке
  • события:
    • pbBeforeSaveImage
    • pbAfterSaveImage
    • pbBeforeRemoveImage
    • pbAfterRemoveImage
    • pbBeforeSaveBlock
    • pbAfterSaveBlock
    • pbBeforeRemoveBlock
    • pbAfterRemoveBlock

Исправлено:

  • ошибки

1.2.0-beta (01.10.2021)

Добавлено:

  • вложенность таблиц
  • сниппет PageBlocks
  • управление чанками в конструкторе блоков
  • синхронизация чанка при обновлении блока
  • копирование блоков из ресурса
  • копирование блока по id
  • валидация при загрузки изображения
  • заголовок и описание для картинок галереи
  • переход к ресурсу в коллекции
  • синхронизация полей блока при сохранении ресурса
  • системные настройки:
    • pageblocks_source_path (для загрузки файлов в указанную директорию)
    • pageblocks_remove_image (удаление картинок из файлового источника)
    • pageblocks_create_chunk (создание чанка)
    • pageblocks_remove_chunk (удаление чанка)
    • pageblocks_youtube_api_key (ключ Youtube API)
    • pageblocks_vimeo_api_key (ключ Vimeo API)
    • pageblocks_hide_template (отключение PageBlocks у шаблонов)
    • pageblocks_tab_index (позиция вкладки PageBlocks)
  • описание для полей
  • значение полей в сетку блока
  • рендер для поле ресурс
  • валидация название чанка
  • валидация для названия ключа поля
  • позиция вкладки для коллекций
  • новые поля:
    • Список Да/Нет
    • ACE
    • Видео
    • Видео галерея
    • Логический флажок

Исправлено:

  • ошибка с копированием коллекции
  • ошибка значение по умолчанию для радиокнопок
  • интеграция табов на страницу ресурса
  • рендер для полей
  • фильтрация полей при группировки
  • сортировка полей
  • сортировка галереи
  • импорт/экспорт

Изменено:

  • выбор источника и путь загрузки для полей с типом 'Изображение/Галерея/Файл'
  • лексикон для combo поля

1.1.0-beta3 (12.07.2021)

  • Исправлена ошибка с cultureKey

1.1.0-beta2 (09.07.2021)

  • Обновлены поля: изображение, файл
  • Новый тип поля: галерея, комбо
  • Добавлен источник файлов для блока
  • Добавлена коллекция блоков
  • Рефакторинг кода и таблицы базы данных

1.0.1-pl (05.06.2021)

  • Поддержка CKEditor

1.0.0-pl (28.05.2021)

  • Первый релиз