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

Алексей Смирнов
12 января 2021, 12:45
+1
Я делал эксперимент и сравнивал по скорости. В телеге было где-то написано в чате соответствующем.
результат был такой:
— Кеш страницы уменьшается иногда в разы.
— Скорость 1го открытия страницы в полне может уменьшиться. Но если у вас конкретно нагружено ереси в модикс тегах.
— скорость из кеша по разному. все зависит от конкретной страницы и конкретных чанков-снипетов применяемых.
Если там простые вызовы без модификаторов, то modx парсер быстрее. Ну а если куча вложенностей, то fenom выиграет.
К примеру замена сниппета getImageList (MIGX) на простой foreach в феном — логично, в разы быстрее, да и удобнее.
Сергей Карпович
12 января 2021, 12:01
0
Артур, Евгений, большое спасибо за помощь!
Артур Шевченко
12 января 2021, 11:58
0
Тогда так
{if ($files | count) > 1}
{foreach $files as $file}
    <img src="{$file['small']}" alt="{$pagetitle}" title="{$pagetitle}">
    {/foreach}
    {/if}
Евгений Webinmd
12 января 2021, 11:55
0
{if ($files|length)>1} 
// ваш код
{/if}
Сергей Карпович
12 января 2021, 11:46
0
Вторая фотка тоже small:
/assets/images/products/406/small/169-1.jpg

Немного не полный кусок я привел, который нужно скрыть если нет второго фото, вот полный
<div class="shop-page-small-img slider-nav">
    {foreach $files as $file}
    <img src="{$file['small']}" alt="{$pagetitle}" title="{$pagetitle}">
    {/foreach}
</div>
Артур Шевченко
12 января 2021, 11:40
0
Если предположить что вторая картинка называется medium, тогда так
{foreach $files as $file}
    {if $file['medium']}
    <img src="{$file['small']}" alt="{$pagetitle}" title="{$pagetitle}">
    {/if}
    {/foreach}
Павел Гвоздь
12 января 2021, 10:44
+4
Помимо условий и модификаторов, Феном позволяет обойтись без тучи чанков, отличающихся только парой символов, с ним можно писать шаблоны расширяя и переиспользуя. Любой, более менее нормальный сайт, требует Феном на борту, для меня это вообще априори.
Альберт
11 января 2021, 21:56
0
Вот с json почему-то не срабатывало, а с массивом получилось.
Альберт
11 января 2021, 21:55
0
Шик! Я просто уже в порядке эксперимента разное пробовал и забыл про split.
И да, в таком виде — с массивом в where все заработало! Премного благодарен.
Alexey
11 января 2021, 21:41
+1
Вот такой вариант должен сработать (с массивом в where и модификатором split, который разбивает $published_brands по запятой):

{set $published_brands = '!pdoResources' | snippet : [
            'parents'       => 2,
            'depth'         => 0,
            'limit'         => 0,
            'returnIds'     => 1
] | split : ','}

{'!mFilter2' | snippet : [
            'parents'   => $_modx->resource.id,
            'includeTVs' => 'brand',
            'where'     => ["TVbrand.value:IN" => $published_brands],
            'class'     => 'msProduct',
            'element'   => 'msProducts',            
            'sortby'    => 'editedon',
            'sortdir'   => 'DESC',
            'limit'     => 18
            ...
            ]
        }

Почему-то JSON не принимает переменную $published_brands. Я сходу не разобрал, как её корректно подставить…
Артур Шевченко
11 января 2021, 20:49
0
И ещё скорее всего TV.brand:IN вместо TVbrand.value:IN. И ещё $published_brands можно массивом оставить.
Alexey
11 января 2021, 20:44
+1
И что возвращает само ТV- поле brand? Может, разделителя нет? Или не тот?
Alexey
11 января 2021, 20:28
+1
А что это за модификатор — strToArray? Переменная $published_brands что возвращает?

Зы: а, не увидел в условии, что подстановка массива не помогает…
Артур Шевченко
11 января 2021, 20:18
+1
если уж используете fenom проще писать через массивы
{'!mFilter2' | snippet : [
    'parents'   => $_modx->resource.id,
    'includeTVs' => 'brand',
    'where'     => ["TVbrand.value:IN" => $published_brands],
    'class'     => 'msProduct',
    'element'   => 'msProducts',
    'sortby'    => 'editedon',
    'sortdir'   => 'DESC',
    'limit'     => 18,
}
А если очень хочется json
'where'     => '{ "TVbrand.value:IN": ' ~ $published_brands~' }'
Сергей Карпович
11 января 2021, 17:49
0
Прикол, меняю название и url проблемного ресурса в Портфолио на Тест 2 — товары загружаются в Каталог — Тест 1, как нужно.
Но как только я возвращаю название и url ресурса в Портфолио, и загружаю прайс, товары снова летят туда… Че за хрень
Наумов Алексей
11 января 2021, 16:51
+3
Да были где-то здесь эксперименты…
суть сводилась:
— если просто подключение простых чанков и кешируемых сниппетов — то парсер MODX чуть быстрее
— если есть всякие if, модификаторы (is и т.п.), то феном начинает выигрывать.

Для меня в любом случае важнее удобство Fenom, чем миллисекунды скорости.
Сергей Карпович
11 января 2021, 16:42
0
Ребята столкнулся со странной проблемой, не могу понять как решить:
Главный Родитель товаров «Каталог» — указан в настройках импорта.
Внутри есть категории, допустим «Тест — 1»

Также на сайте есть Раздел (ресурс) «Портфолио», который также содержит ресурс «Тест».

Проблема в том, что товары загрузились в Портфолио — Тест 1, а не Каталог — Тест 1.

В ручную товары переносил, но после повторной загрузки, товары снова перемещаются в Портфолио — Тест 1.

Кто подскажет, как быть в данной ситуации?
Антон
11 января 2021, 15:39
0
Я думаю можно взять прям siteextra и sitedev и пересобрать их на EVO 3
Вот это лучше всего
Jabba
11 января 2021, 15:38
0
Добрый день! Подскажите в чем проблема.
При импорте товара из экселя (4 столбца — Название, Артикул, Номер, Цена), после распределения столбцов, в «Списке настроек полей» создаю новую настройку, пишу название, выбираю ключ (артикул), жму сохранить и вижу вот такое:
Dmytro Lukianenko
11 января 2021, 15:00
0
Да, планируем сделать заготовки, под это подготовили функционал в Ядре. Так как есть пакеты которые ставяться как зависимости и логично что их править нельзя, + будут пакеты заготовки которые ставим и их изменяем.

Я думаю можно взять прям siteextra и sitedev и пересобрать их на EVO 3