Aleksandr Huz

Aleksandr Huz

С нами с 02 августа 2014; Место в рейтинге пользователей: #15
Aleksandr Huz
14 февраля 2025, 22:35
+1
Сниппет pbResources — это аналог pdoResources, но с возможностью присоединять таблицы по принципу «один ко многим», чего нет у pdoResources. Также переменные, добавленные через PageBlocks, добавляются к результату и выводятся как стандартные переменные ресурса.

Если это делать через pdoResources:
{'!pdoResources' | snippet: [
    'parents' => 0,
    'resources' => '1,2,3',
    'tpl' => 'seo-card'
]}
Чанк seo-card
<div class="col-4 mb-4">
    <div class="card">
        {*изображение храниться в виде json*}
        {set $image = $values.seo_img|fromJSON}
        <img loading="lazy" src="{$image.url}" width="395" height="450" class="card-img-top" alt="{$image.title}">
        <div class="card-body">
            <h5 class="card-title">{$values.seo_title}</h5>
            <p class="card-text">{$values.seo_description}</p>
            {*Получаем данные из таблицы*}
            {set $list = 'pbCollections'|snippet: ['field_name' => 'seo_list', 'return' => 'json']|fromJSON}
            <ul class="text-start">
                {foreach $list as $item}
                    <li>{$item.title}</li>
                {/foreach}
            </ul>
        </div>
    </div>
</div>

А если через pbResources, то у нас уже будут доступны переменные seo_img, seo_title, seo_description и list (массив)
Aleksandr Huz
14 февраля 2025, 15:53
+1
Реального сайта нет. Меня попросили показать как вывести из несколько ресурсов seo-карточки, где будет картинка, заголовок, описание и еще таблица.
Aleksandr Huz
12 февраля 2025, 22:15
+1
Компонент бесплатный.

А реально организовать подсказки при вводе?
Делаем запрос на сервер, а на сервере получаем данные:
$algolia = $this->modx->services instanceof \MODX\Revolution\Services\Container
            ? $this->modx->services->get('algolia')
            : $this->modx->getService('algolia', 'Algolia', MODX_CORE_PATH . 'components/algolia/model/');
$results = $algolia->search($query); // результат поиска
Еще можно прочитать про Query Suggestions Index
Aleksandr Huz
12 февраля 2025, 21:16
0
Пока нет, но обязательно добавлю. Спасибо
Aleksandr Huz
12 февраля 2025, 16:10
0
Про поиск можно прочитать у них на сайте — www.algolia.com/

В чем фишка сервиса? Для чего продукт? В описании не написано.
Самое первое предложение:
Algolia — это мощная облачная поисковая платформа, обеспечивающая мгновенный и релевантный поиск.

По ссылке на «репозиторий» ссылка algolia.boshnik.com/docs/ битая, выходит ошибка.
Убрал ссылку, документацию еще не добавил. Но все в статье описано.
Aleksandr Huz
10 февраля 2025, 22:02
0
Но сам чанк в админке создать всё равно придётся, это да.
Нет, это не обязательно. Можно создавать только файловые чанки.

Как и сами блоки.
С последнем обновлением, это тоже не обязательно. Можно в файле core/App/Models/Resource.php создавать блоки и таблицы
Aleksandr Huz
10 февраля 2025, 21:59
+3
1. Интуитивный интерфейс
Проще и понятнее, чем в MIGX.

2. Поддержка разных типов полей
В MIGX, чтобы добавить, например, галерею, придётся повозиться. В PageBlocks это делается в пару кликов.

3. Готовые блоки
Создаёшь блок один раз, а потом используешь его на любых страницах. Если редактируешь блок, изменения автоматически применяются везде.

4. Надёжное хранение данных
Вся информация хранится в отдельной таблице, так что даже при ошибках данные не теряются. В MIGX всё хранится в JSON, и если что-то пойдёт не так (что бывает при большой вложенности), все данные могут быть утеряны.

5. Мультиязычность
Легко переводить контент через Deepl или ChatGPT.

6. UTM-метки
Есть поддержка тестирования разных меток, что полезно для аналитики.

7. Версионирование
Каждое изменение сохраняется, и можно откатиться к любой версии. А при удалении помещается в корзину, откуда тоже можно восстановить.

8. Коллекции
Можно создавать полностью настраиваемые таблицы с фильтрацией по любым данным.

9. Синхронизация блоков
Можно синхронизировать блоки между собой, даже если они не являются готовыми блоками.

10. Мощное копирование
Копировать можно по ID, по контексту или все блоки с определённого ресурса.

11. События
Доступно 17 событий для управления контентом. pageblocks.boshnik.com/docs/events.

12. Роутинг
Гибкая система роутинга, как в Laravel. Легко настраивать кастомные маршруты для страниц или API.

13. Form Builder
Можно создавать блоки, таблицы, табы и добавлять поля прямо через PHP-код.

и останавливает то, что нет файловых элементов
Это поддерживалось почти с самой первой версии.
{'!pbBlocks'|snippet: [
    'fileElements' => 1
]}
Все чанки находятся в core/elements/ (настраивается в pdoTools) и, соответственно, загружается файл из:
core/elements/chunks/chunknameblock.tpl,
где chunknameblock — это имя чанка блока.

Но вскоре поддержка pdoTools будет удалена, так как в PageBlocks уже встроен Fenom, но еще не настроен.
Aleksandr Huz
01 февраля 2025, 01:10
+1
Про мультиязычность напишу отдельную статью. Вкратце: есть комбо-поле, которое переключает контекст для блоков, которые можно переводить вручную или с помощью сторонних сервисов (DeepL, ChatGPT). Также есть отдельная вкладка для перевода текущего ресурса — по принципу Локализатора. Конфликтов не должно быть. Дополнительные поля я не использую с этим компонентом — ни разу не пригодились. Вся информация находится в блоках, поэтому отдельной вкладки для лексиконов, как в Локализаторе, тоже нет.
Aleksandr Huz
28 января 2025, 01:22
+3
Version 2.3.1

Added
  • support MySQL 5.7
  • description for ready blocks
  • support for custom parameters for snippets
@Баха Волков @Rus
Aleksandr Huz
18 июля 2024, 13:13
+1
в этом месяце будет новая версия
Aleksandr Huz
11 мая 2024, 11:51
+1
Да, сортировка должна работать. Проверю и исправлю
Aleksandr Huz
06 октября 2022, 15:38
+1
да, ошибка была именно в этом. Исправил у клиента, выпущу обновление
Aleksandr Huz
05 октября 2022, 09:41
+5
Добрый день!
В ТП вижу ваше сообщение в 21:02 (04.10). Когда мне нужно было отвечать, ночью?
Или может вы еще где-то писали в ТП и я не заметил. В любом случаи ответил вам в ТП.