Всего 125 007 комментариев

Алексей Шумаев
06 июня 2025, 10:13
0
Поясните мне, кто может: что такое pbShop? Тут упоминается, но информации в гугле и заметках автора нет.
Только ИИ сообщает нечто интересное: disk.yandex.ru/i/sZyQIu2xi7YBXw, хотя сам не знает, где вообще взять pbShop :-)
Артур Шевченко
05 июня 2025, 20:56
+2
А ещё говорят я компоненты не для новичков пишу))) Вот где хардкор, хотя очень интересно, надеюсь в этом году будет время попробовать.

Есть в планах написать документацию?
Андрей Шевяков
05 июня 2025, 11:17
+1
Пришлите пожалуйста ссылочки на сайты где можно пощупать работу пакета
Андрей Степаненко
04 июня 2025, 20:44
0
хз) гпт сгенерировал))
видимо так надо) раз начал сайтом пользоваться
потом докажи что ты не кликал)))
Дмитрий Середюк
04 июня 2025, 03:57
+1
А примерно понял что имели ввиду, можно сделать как то так

<!-- above-the-fold:start -->
    <header class="site-header">
        <div class="logo-wrapper">
            <img src="logo.svg" alt="Логотип" class="logo">
        </div>
        <nav class="main-nav">
            <a href="#" class="nav-link active">Главная</a>
            <a href="#" class="nav-link">Контакты</a>
        </nav>
    </header>

    <section class="hero-slider js-slider">
        <div class="slide">Слайд 1</div>
        <div class="slide">Слайд 2</div>
    </section>
<!-- above-the-fold:end -->

Обрамляем нужные элементы маркерами

Далее парсим всем классы, индификаторы, теги. Ищем их в файле стилей и формируем.
Но есть конечно же нюансы если к примеру используется какие либо js библиотеки по типу того же swiper slider которые после рендора внедряют свои классы элементам то это не сработает, в общем нужно обмозговать это дело, возможно что то и выкачу позже.
Дмитрий Середюк
04 июня 2025, 03:30
0
Не совсем понимаю что имеете ввиду, но у себя я делаю так
Использую migx в админке выглядит вот так
и на каждую секцию генерирую свой css
Далее в head прохожусь только по текущим секциям страницы собираю объект path, который в свою очередь передаю в MinifyX

{set $rows = json_decode($_modx->resource.id | resource : 'multiMigx', true)}
{if $rows}
    {set $arrDouble=[]}
    {set $path=[]}
    {foreach $rows as $row}
      {if $row.MIGX_formname | in : $arrDouble}{continue}{/if}
      {set $arrDouble[] = $row.MIGX_formname}
      {if $row.MIGX_formname != 'default' && $row.MIGX_formname != 'code'}
        {set $path[] = ('project_path' | config)~'css/modules/'~$row.MIGX_formname~'.min.css'}
      {/if}
    {/foreach}
{/if}

{'!MinifyX' | snippet : [
    'minifyCss' => 1,
    'cssSources' => ($path | join : ','),
]}

Для страниц где не используется migx просто добавляю по условию на нужные страницы

{if $_modx->resource.id === 245}
    {set $path=[
      ('project_path' | config)~'css/modules/cart.min.css',
      ('project_path' | config)~'css/modules/order.min.css',
    ]}
{/if}

В общем суть я думаю ясна
Дмитрий Середюк
04 июня 2025, 03:19
0
На счет js файлов думаю что можно по такому же принципу сделать, но целесообразность этого не подскажу, у себя на проекте использую ES6 Modules загружаю только нужные скрипты в зависимости от секций + всякие фишки с использованием IntersectionObserver

По скорости прироста в процентах не подскажу, была задача повысить показатель всеми любимого google page speed и результат до использования инлайн стилей прыгал от 93-95 балов, при подключение основных файлов удалось добиться долгожданной сотки
Ivan
04 июня 2025, 00:48
0
Наверно было бы круто если бы можно было первый экран страницы обрамить маркером, например

И сделать проверку всех тегов и классов которые есть в этой области в html коде и чтобы плагин подключил в head из основного файла стилей, в все стили для всех тегов и классов которые ему встретились. А все остальные подключения стилей можно было бы разместить перед . Тогда бы у пользователя который заходит первый раз первый экран загрузился бы максимально быстро, а остальные стили уже чут позже.
Ivan
04 июня 2025, 00:38
0
Подскажите, на практике у реального пользователя на сколько уменьшилось время загрузки? Можно в процентах. Спасибо

P.S. А если JS файлы так же сделать будет какой-то толк?
Николай Савин
03 июня 2025, 21:25
0
Эх хорошо ответил. Лев Толстой бы лучше не написал
Nikita
03 июня 2025, 16:19
0
Николай, спасибо за ответ!

Сам уже дошёл до подобной схемы и реализовал ))
vectorserver
03 июня 2025, 07:57
+1
Мне хватает указать ссылки)
<?php
/** @var modX  $modx*/
/** @var modResource  $res*/
Артур Шевченко
02 июня 2025, 08:39
0
По-моему как раз когда икоки индивидуальные самое то делать через migx, так как там можно задавать любую конфигурацию полей, в том числе сделать отдельное поле для иконки. А то что импорт из файла это вообще прекрасно, плагином собрал данные в нужный формат и записал в migx. И работало бы всё автоматически, а не как сейчас.
Олег
02 июня 2025, 00:18
0
Делать через MigX не вариант т.к. иконки идут индивидуальными для каждого товара (а товаров много и импортируются они из файла, а не вручную)
Добавлять каждому товару поле «показывать блок или нет» тоже не вариант. Надо, чтобы все автоматом работало.
Написал сниппет:
if ($ozon!='' and $wb!='' and ...){
echo '...';
}
Вопрос задавал в надежде узнать, что можно какими-то стандартными модификаторами сделать сложный запрос на несколько проверок
Артур Шевченко
01 июня 2025, 18:37
0
Давай закроем эту тему. Я добавил версионирование. Остальные вопрос по компоненту задавай через техподдержку modstore.
Александр Туниеков
01 июня 2025, 17:41
0
Печалька. Вот казалось человек а на проверку мнит себя самым умным :-(
vit
vit
01 июня 2025, 15:40
0
Можно через снимает или fenom. Сделать. Да и if else не кто не отменял, даже в стандартном шаблонизаторе
Артур Шевченко
01 июня 2025, 13:02
+1
Проблемы из-за неправильных настроек обязательно возникнут, на то они и неправильные.
Даша
01 июня 2025, 10:26
0
О, это приятная новость! А скажите, пожалуйста, не возникало проблем в ходе эксплуатации из-за неправильных настроек или вообще самого наличия других языковых версий?