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

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

С нами с 20 декабря 2014; Место в рейтинге пользователей: #43
Алексей Смирнов
06 января 2023, 19:05
+1
А что тут велосепедить? Просто вырезайте с помощью функции домен и добавляйте нормальный путь как я показал… И получится серверный путь который и нужен.
Алексей Смирнов
06 января 2023, 19:03
0
Вам нужно по сути работать с where параметром msProduct. Сформировать нужные данные.
Но учитывая что вы сегодня только начали вникать, вам нужно поднять много данных.
Тут как бы читать доки для начала и понять что такое сниппет как передавать данные с тв-шек как формировать для сниппетов where с полями из бд…
Дока в верху сайта есть — ссылка. Смотрите пакеты минишопа и pdoTools.
Алексей Смирнов
06 января 2023, 14:45
0
Плохо искали. вот решение для ТВ
modx.pro/solutions/23005
Алексей Смирнов
06 января 2023, 14:43
1
+1
О, вот теперь по этому выводу понятно чего вы хотите достигнуть:
<img src="[[*imagetv]]" width="[[*imagetv:imgsize=`w`]]" height="[[*imagetv:imgsize=`h`]]" />
Смотрите.
снипет получает данные в $input
плюс к тому в функцию getimagesize должен приходить полный путь картинки.
поэтому я бы сделал так:
$img = MODX_BASE_PATH . $input;
list ($width, $height, $type, $attr) = getimagesize($img);
switch ($options) {
    case 'w' :
        return $width;
        break;
    case 'h' :
        return $height;
        break;
    default :
        return '';
        break;
}
Алексей Смирнов
06 января 2023, 12:23
1
+2
Если сделать через конфиг, то открываете нужный конфиг, там находите вкладку Actionsbuttons и находите галочку exportimportmigx — ставите ее и сохраняете.
Теперь можно перейти к ресурсу у которого нужно взять данные — заходите в его доп поля и у MIGX таблички будет кнопка Экспорт-импорт. Жмете — откроется окно, там выделяете все, копируете, а потом идете и вставляете где вам нужно.
Вот как-то так это работает в Migx
Алексей Смирнов
06 января 2023, 09:36
+1
так вы уже все и получили. просто не ясно для чего switch
list ($width, $height, $type, $attr) = getimagesize($input);
print($width);
Алексей Смирнов
06 января 2023, 09:30
0
MIGX тв в ручную прописаны поля или через конфиг?
Алексей Смирнов
26 декабря 2022, 21:39
+1
Тогда вы должны определиться какой migx основной и сделать что-то типа такого:
<div class="container">
    <div class="row">
        {set $arr = 15 | resource : 'migx_tv_1' | fromJSON}
        {set $rows = 15 | resource : 'migx_tv_2' | fromJSON}
        	{foreach $arr as $row index=$index}
                        <div class="col-lg-6">
                                {$row.file}" - вытаскиваю из migx_tv_1
                        </div>
                        <div class="col-lg-6">
                            {$rows[$index]['img']} - вытаскиваю из migx_tv_2
                        </div>
        	{/foreach}
    </div>
</div>
Алексей Смирнов
26 декабря 2022, 19:16
0
Мы не знаем что у вас в полях ['migx_tv_1', 'migx_tv_2'] migx лежит…
Но по логике, вам нужно проверять приходит 1й migx или 2й.
это делаетя так:
{set $arr_tv = ['migx_tv_1', 'migx_tv_2']} 
<div class="container">
    <div class="row">
        {foreach $arr_tv as $item}
        	{set $rows = 15 | resource : $item | fromJSON}
        	{foreach $rows as $row}
                    {if $item == 'migx_tv_1'}
                        <div class="col-lg-6">
                                {$row.file}" - вытаскиваю из migx_tv_1
                        </div>
                    {else}
                        <div class="col-lg-6">
                            {$row.img} - вытаскиваю из migx_tv_2
                        </div>
                    {/if}                
        	{/foreach}
        {/foreach}
    </div>
</div>
Алексей Смирнов
26 декабря 2022, 19:00
0
Нужно проверять не слетели ли индексы в БД после обновления.
Если товаров не много (до 1000) то странно что так долго выполняется запрос. Если более то вероятность того что индексы слетели возрастает. и нужно исправлять.
Алексей Смирнов
26 декабря 2022, 18:57
0
Это не сниппет, а параметр у сниппета на странице или чанке вызова (смотря где выводите).
Алексей Смирнов
25 декабря 2022, 23:25
0
Можно 1 запросом. но нужно джойнить и писать либо на sql либо через xpdo.
Вопрос зачем? ведь, данные такие можно спокойно достать pdoResources, особенно если это 5 товаров… и он умеет в json сразу.
Алексей Смирнов
24 декабря 2022, 21:51
0
Подскажите, эта штука через крон работает или через запросы на сайт?
Алексей Смирнов
24 декабря 2022, 19:50
+1
Я как то не понял в чем проблема. то ли в имени самого ТВ то ли в значении ТВ то ли в текстовом соответствии ТВ.
обычно значение ТВ для текущего ресурса так и будет: [[*myTvName]] тут будет value1 или value2.
Если у вас тв-список, и вам нужно название значения соответствующего (Option 1==value1||Option 2==value2)
те хотите получить текст Option 1 или Option 2… То есть модификатор (в доке естессно есть оно) :tvLabel Вызывается прямо так: [[*myTvName:tvLabel]]
Ну и название самого ТВ уже точно нужно получать своим скриптом Прямого решения, нет.
надеюсь угадал что вы хотели сделать. если нет — Опишите детальнее. Успехов.
Алексей Смирнов
21 декабря 2022, 18:45
0
Вы пишите свой сниппет, верно?
И наверняка при выводе одной папки вы знаете кол-во в этой самой папке...?
Просто посчитайте количество и проверьте по условию.
Алексей Смирнов
21 декабря 2022, 18:33
0
По факту вы усложняете тем что хотите ключ один а названия разные — это чревато.
Если у вас свойств примерно 20..30, то лучше создавать опции специально под необходимые параметры. Так и выборки будут быстрее идти и не запутаетесь в опциях одинаковых. И потом поддерживать вам же будет проще.
Если хотите прям принципиально, то лучше уже использовать TV параметры. Там можно с помощью форм переназывать ТВ-шки.
Алексей Смирнов
20 декабря 2022, 18:08
0
Компонент немного обновил. Исправил баг с установкой.
Так же напоминаю, если вы хотите в живую пощупать — пишите мне в личку, тк протестировать на modHost не возможно в виду специфики установки плагина.
Успехов!
Алексей Смирнов
18 декабря 2022, 19:40
+1
Если вы хотите фильтровать по параметрам, то лучше сразу использовать тот же mSearch2 платный (как Артур сказал). Но есть момент.
Если у вас не услуги, а товары и нужна корзина, то минишоп — точно.
Если у вас там услуги и нет корзины (и не предвидится) то можно оставлять на ресурсах.
2. О какой структере вообще речь? О блоке услуг? ну у вас обстрактное представление, но этот вариан в любом случае в 80% случаях и используется.
3. Сложно посоветовать. тут нужны для начала общие знания. а потом можно в поиске написать «Объектная модель MODx Revo API. Статья для понимания» + к этому modzone.ru/blog/2015/12/27/frontend-events-for-modx/
ну если покапаться можно много найти.
И помнить что есть стандартный парсер плейсхолдеров и есть феном который устанавливается вместе с PdoTools и дает больше свободы. И сайт делается либо на феноме либо на MODX парсере. их желательно не смешивать в виду специфичности.
Алексей Смирнов
15 декабря 2022, 21:45
0
решение же выкатил автор вопроса в теле под первым пунктом сразу.
Алексей Смирнов
07 декабря 2022, 15:58
0
Интересная реализация.
Но мало информации по примеру скорости. Для 100к ресурсов сколько опций у товара выводится на сортировку и сколько товаров в этой конкретной категории, где по вашим цифрам 0.7809291: Total time.
Ну и как быстро открывается, если выбран 1 и 2 опции разные в фильтре. (обычно на Get параметре я проверяю скорость для mFiler).
И большой каталог это сколько товаров? 100к или 1мл?