Алексей Смирнов

Алексей Смирнов

С нами с 20 декабря 2014; Место в рейтинге пользователей: #30
Алексей Смирнов
07 октября 2023, 22:53
1
+1
Лечение проблемы c фотками в phpthumb для MODX 2.8.6 для версии php 7.4 через костыль:
Убираем слово mixed в строке 317 в файле core/model/phpthumb/phpthumb.class.php
Спасибо @Иван Климчук за наводку.
Алексей Смирнов
04 октября 2023, 21:45
+1
toSeparatePlaceholders выводит каждый элемент распарсеный в TPL-ке. Те он не выведет вам test.pagetitle.
Чтобы toSeparatePlaceholders работал необходимо указать tpl.
и уже распарсеный html будет выводиться через плейсхолдеры будут [[+myarticle0]], [[+myarticle1]] или на fenom {'myarticle0' | placeholder}, {'myarticle1' | placeholder}
О чем Артур и написал.
Вариант последний на феноме нужен если вам точечно нужно расставить данные прям в капец верстке.
через foreach можно, кстати, забацать любую проблемную верстку. но чтобы что-то конкретное посоветовать нужно знать что там с версткой.
Алексей Смирнов
04 октября 2023, 20:18
0
Как вариант, совпадающие цвета сразу не объединять. можно спросить разрешение об обьединении.
А если по ошибке, то кнопачку можно добавить.
Но кажется этот весь функционал нафиг нужен в массовом пользовании.
Алексей Смирнов
04 октября 2023, 19:27
+1
можно сколько хочешь, просто в настройках указать лимит.
А так, если планируется более 100 записей, то лучше делайте сразу через MIGXdb, как советуют. Ну или еще отзывы можно через ресурсы делать — так еще проще (меньше кодить на php).
Алексей Смирнов
01 октября 2023, 23:24
0
Дык у вас один и будет.
Через или foreach переменную mysnip прогнать
или чанк распарсить через parsChunk с уже готовой разметкой. Это уже на свой вкус.
Алексей Смирнов
01 октября 2023, 22:41
0
в новой версии можно вызвать msProduct в режиме data и на феноме посчитать кол-во в массиве. Хотя оно у вас по идее будет почти всегда равно 6. тк у вас лимит =6. Поэтому даже не знаю… есть ли смысл подсчета…
Вывести данные можно добавив в параметры 'return' => 'data',
При таком подходе возвращаться должен голый массив, если не ошибаюсь.
те нужно:
{set $mysnip = 'msProduct' | snippet : ['return' => 'data']}
(проверьте только
{$mysnip | print}
И потом можно:
{$mysnip | lenght}
— кол-во.
Алексей Смирнов
01 октября 2023, 21:04
+1
И на феноме можно, но это можно сделать если у вас минишоп 4й версии.
если нет, то увы.
Алексей Смирнов
01 октября 2023, 14:05
0
Если получить в коде fenom нужно, то можно схитрить и подсчитывать в чанке вашем msProductIndex на феном дописав:setPlaceholder('myovechka', $idx) — уточните в доке как вызываются модификаторы эти.
а уже ниже в вызове принимайте getPlaceholde('myovechka')
Должно сработать.
Ну а в JS проблем не должно быть определить кол-во. там 1й строкой можно.
Алексей Смирнов
30 сентября 2023, 21:17
+1
Ускорить сайт, подключив все через файлы, думаю, не особо получиться. Потому что нужно для начала знать хотя бы какая область в шаблоне тормозит.
Тк тормозить может:
— Ответ сервера в который входит запросы и время ответа БД и обработка PHP.
— Загрузка контента после ответа. И тут влияет в общем комплекс из js,css,fonts, картинрки файлы, видео iframe И прочее.
— Ответ сервера, скорее всего вы не сможете поправить через include. нужно знать что именно подтормаживает (БД или php) и потом уже смотреть сниппеты и запросы.
А про фронтенду — там другая пляска более веселая и глобальная.
Алексей Смирнов
29 сентября 2023, 10:18
0
Ну тогда создай отдельный или MIGX или ресурсами можно сделать. (те значения которые вводить) и в доп значениях если MIGX, то его через сниппет рендерить, если сделать через ресурсы, то в рендере достаточно будет
[[#[[+id]].pagetitle]]
И заказчикку понятно как создавать и тебе проще с этим работать будет.
Алексей Смирнов
28 сентября 2023, 22:16
0
посмотрите есть ли у вас ошибки в консоли при изменении настройки. может какие конфликты или глюки окружения сервера влияют.
а так вообще таблица system settings
Алексей Смирнов
28 сентября 2023, 22:05
0
Если в вариантах до 5...7 значений и они не будут особо дополняться, то можно и через мини-замену организовать без сниппета.
например:
[[+title:is=`1`:then=`Игрок`]][[+title:is=`2`:then=`Запасной`]]
Только для рендера создайте поле с именем title-r, чтобы результат рендера не затирал основной title
Алексей Смирнов
28 сентября 2023, 20:09
0
Если установлен pdoToolse, то достаточно вписать в renderChunk:
[[#[[+idmy]].pagetitle]]
где [[+idmy]] — название поля в migx где id ресурса.
Алексей Смирнов
16 сентября 2023, 23:16
+1
думаю, тут можно (лучше) воспользоваться не tvFilters, а where. Описание как работать и делать выборки для мульти тв описано тут: modx.pro/solutions/23005
Алексей Смирнов
13 сентября 2023, 14:23
+1
Да, просто поменяйте и сделайте так:
{set $dog = ('noarticle' | placeholder)}
{if $parent not in list $dog}
  <div class="reward"><span>Артикул:</span> <span class="item">{$article}</span></div>
{else}
{/if}
Алексей Смирнов
12 сентября 2023, 10:07
0
Ну, такие вещи нужно уже самому отдебаживать.
Проверьте что в чанке вообще выводятся данные:
И так попробуйте посмотреть:
{$_modx->getPlaceholder('noarticle') | print}
и так:
{('noarticle' | placeholder) | print}
если не выводиться, проверьте что переменные верно указаны. ну и еще в феноме не забывайте что есть $_modx, а не $modx.
каждый чих проверять уже перебор.
Алексей Смирнов
12 сентября 2023, 10:00
+2
Чтобы точно люди нашли ответ на этот вопрос выделю его в отдельном комментарии от себя:
<a href="" data-sort="" data-dir="" class="sorty sort">Сбросить</a>
Причем таким образом можно построить и оформить почти любой вариант сортировки по дизайну.
Например в одном проекте делал так:
<div id="mse2_sort">
      <a href="" data-sort="publish:desc" data-dir="" class="sorty sort">Новее</a>
      <a href="" data-sort="pribil:desc" data-dir="" class="sorty sort">Прибыльнее</a>
      <a href="" data-sort="price:asc" data-dir="" class="sorty sort">Дешевле</a>
      <a href="" data-sort="" data-dir="" class="sorty sort">Сбросить</a>
</div>
Те Нужны были только определенные последовательности сортировок. Это реализовал так. И исходники совсем не правил для этого дела.
а еще это можно оформить в выпадающий список (не select) а на js сделать и будет вообще красота. Так же учтите, что на все теги a при клике навешивается класс active, тут просто застилить нужно верно и все будет приличненько.
ну и кто совсем захочет завернуться, просто стандартный js копируется, правиться и указывается новый файл в системной настройке.
Алексей Смирнов
10 сентября 2023, 17:08
0
Значит у вас версия минишопа не 4ка, походу.
для передачи параметров можно использовать плейсхолдеры:
{set $allpara = $_modx->getChildIds(31,4,['template' => 3])}
{set $allpara2 = $_modx->getChildIds(29,4,['template' => 3])}

{foreach $allpara2 as $nyam}
  {set $allpara[] = $nyam}
{/foreach}
setPlaceholder('utochka', $allpara); // посмотрите в доке синтаксис.
и уже в tpl вызывайте так:
{if $parent not in list ('utochka' | placeholder)}
  <div class="reward"><span>Артикул:</span> <span class="item">{$article}</span></div>
{else}
{/if}
Алексей Смирнов
09 сентября 2023, 22:22
0
Ну я вам и давал решение на странице товара.
А если у вас артикулы в списках товаров, то тут чтобы не делать запросы для каждого товара, необходимо в сниппет заранее передать данные по родителям. тут придется написать маленький модификатор для array_merge И передать данные в msProduct (или какой вы сниппет используете?)
1. до сниппета нужно получить все тоже:
{set $allpara = $_modx->getChildIds(31,4,['template' => 3])}
{set $allpara2 = $_modx->getChildIds(29,4,['template' => 3])}
потом нам нужно эти 2 массива склеить через array_megre. Но обьяснять как делать этот модификатор — лень.
Возьмем сделаем чуток вычурно, зато понятно:
{foreach $allpara2 as $nyam}
  {set $allpara[] = $nyam}
{/foreach}
{'msProduct' | snippet : [
  'parents' => $catalog, // $catalog - не 0, а id каталога. не нужно сюда писать ноль!
  'forarticle' => $allpara
]}
И далее в шаблоне tpl
указываем так:

{if $parent not in list $allpara}
показать Артикул
{else}
скрыть art
{/if}
Алексей Смирнов
08 сентября 2023, 21:13
+1
вроде, правильно
попробуйте что ли
{if (($_modx->resource.parent in list $allpara) || ($_modx->resource.parent in list $allpara2))}
Спрятали
{else}
показали
  <div class="reward"><span>Артикул:</span> <span class="item">{$article}</span></div>
{/if}