Aleksandr Huz

Aleksandr Huz

С нами с 02 августа 2014; Место в рейтинге пользователей: #12
Aleksandr Huz
8 часов назад
0
Зачем нужен пункт 1 и 2? Ведь это решается стандартными полями ресурса в MODX?
Для полного контроля над страницами и логикой отображения.
Aleksandr Huz
Вчера в 10:01
0
Возможно, ты прав — с одной стороны, добавление атрибутов может быть быстрее. Но с другой — это сложнее: нужно учить, какие атрибуты куда вставлять. Мне лично проще просто написать настройку блока и расставить плейсхолдеры в верстке, а заполнять контентом пусть уже менеджер занимается.

Как работает мультиязычность?
Скоро будет отдельная статья про мультиязычность.
Aleksandr Huz
Вчера в 09:07
0
Скажи пожалуйста, есть вариант получить ключ бесплатно для локальных экспериментов?
На данный момент — нет. Но компонент можно приобрести, а если он не подойдёт, всегда можно оформить возврат через магазин.

если удастся реализовать автоматическое заполнение контентом напрямую из вёрстки
В компонент уже встроена экспериментальная функция AI Block, которая позволяет на основе верстки автоматически создать конструктор блока, чанк и сразу добавить заполненный блок на текущую страницу — без каких-либо дополнительных атрибутов в верстке.
К сожалению, со сложными блоками ChatGPT справляется плохо, поэтому я пока отложил этот функционал.
Для включения этой функции нужно добавить ключ в настройку pageblocks_chatgpt_apikey и после этого в меню настроек блоков (рядом с кнопкой «Создать») добавить соответствующий пункт.

По сути, добавлять атрибуты в вёрстку — это то же самое, что вручную расставлять плейсхолдеры. Только ещё нужно знать, какие атрибуты использовать и куда их вставлять, поэтому этот вариант пока не рассматривается.

Сейчас в приоритете — режим разработчика и роутинг.
Aleksandr Huz
15 апреля 2025, 13:09
+1
Во-первых, MIGX не умеет создавать вкладки, панели и, тем более, кастомные поля у ресурсов или пользователей.
Во-вторых, настройка таблиц в PageBlocks куда мощнее: данные сохраняются не в JSON, а в нормальной структуре БД, что даёт гибкость для фильтрации, поиска и реализации сложной логики.
А ещё в PageBlocks есть блоки, синхронизация блоков между ресурсами, встроенный роутинг и многое другое.

Поэтому PageBlocks на порядок мощнее MIGX — это уже полноценный фреймворк внутри MODX.
Aleksandr Huz
24 марта 2025, 20:24
1
0
[[!SocialNetworks?
    &tpl=`@INLINE <li [[+classes]]><a href="[[+link]]" target="_blank" title="[[+name]]"><i class="fab fa-[[+icon]] fa-2x"></i></a></li>`
]]
Aleksandr Huz
24 марта 2025, 10:17
1
0
Обновляйтесь
Aleksandr Huz
23 марта 2025, 20:42
0
Хорошо, уберу ограничение
Aleksandr Huz
19 февраля 2025, 19:16
+3
Я в 90% случаев использую поиск через Crtl+F
Есть встроенный поиск:
Aleksandr Huz
19 февраля 2025, 19:11
+1
Аналогично тому, как например в mFilter2 можно указывать кастомные чанки row и outer для любых полей,
Я об этом даже не знал. Чтобы что-то узнать, все равно нужно читать документацию, а если нужно универсальное решение — использовать феном.

Из пожеланий, всё-таки не терять MODX-style и дать возможность использовать систему чанков полноценно, не прибегая в foreach циклам в коде шаблонизатора.
Теперь я понял, о чем ты. Нужно добавить параметры, как в mFilter2. Например:
'tpl.outer.list' => 'tpl_outer_name',
'tpl.row.list' => 'tpl_row_name'
где list — название переменной.

Но ведь все равно придется читать доку))
Но идея хорошая. Сделаю
Aleksandr Huz
19 февраля 2025, 18:51
+1
Вот так? Я подумаю, куда можно вывести стилизацию списка блоков.
Aleksandr Huz
19 февраля 2025, 15:50
+2
Да, хорошая идея, это тоже в планах. Сейчас в платной версии есть поиск по блокам, если их более 15, но группировка будет получше. Реализую.
Aleksandr Huz
19 февраля 2025, 11:43
+1
В документации для 2й версии увидел что сниппеты другие (в первой просто один PageBlocks), вот и спросил)
Во второй версии нужно заменить на pbBlocks

Спасибо за оперативность! Правда парни из modx.com наверное не сразу пакет опубликуют?)
Уже отправил. Обычно это быстро.
Aleksandr Huz
19 февраля 2025, 11:34
+2
Вау, какой красивый и короткий код! Там где описане содержимого вкладки — просто магия какая-то! Давненько такого не видел)))
Спасибо.

Из пожеланий, всё-таки не терять MODX-style и дать возможность использовать систему чанков полноценно, не прибегая в foreach циклам в коде шаблонизатора.
Вместо этого:
{foreach $list as $item}
    <li>{$item.title}</li>
{/foreach}
можно написать так, если сильно хочется:
{$list|pbJson:'<li>{$title}</li>'}

А ещё там внутри чанка можно сделать доступным {$idx} и {$total}
Но, чтобы вместо инлайнового чанка использовать реальный нужно доработать сниппет. Сделаю

Чтобы было примерно так:
{$list|pbJson:'@INLINE <li>{$title}</li>'}
{$list|pbJson:'list_item_tpl'}
и в чанке list_item_tpl дополнительно будет доступно {$_idx}, {$_total}, {$_first} и {$_last}
Aleksandr Huz
19 февраля 2025, 11:17
+2
Привет.

Вторая мажорная версия только платная, так? А первая (выложенная на modx.com) бесплатна?
Совершенно верно

Но при этом я вижу что у нее относительно свежий релиз.
Исправлять ошибки тоже нужно.

Я сейчас начал работу с бесплатной, если пойму, что её возможностей мало — на 2-ю версию будет трудно уйти?
Нет, просто обновляешь поверх нее — и все. Первая версия сильно ограничена в возможностях, но все равно полезна для легких сайтов, например, для лендинга.

4) у ресурса осталось старое имя чанка, всё сломалось, поменять его нельзя?
Имя чанка должно автоматически измениться для всех сопутствующих блоков, поэтому это ошибка в бесплатной версии. Исправлю сегодня.
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