Разработчик

Разработчик

С нами с 29 января 2020; Место в рейтинге пользователей: #3058
Разработчик
29 января 2023, 15:13
0
По крону есть запуск 3-х скриптов, которые собирают товары и формируют файлы для Авито и для Дрома, но они вроде только собирают, то есть не пишут ничего в родитель.
Разработчик
28 января 2023, 00:05
0
Проверял, по-моему не стоит ничего такого, что потенциально могло бы что-то подобное менять.

Есть:

  • Ace
  • autoRedirector
  • customurls
  • Login
  • mapex2
  • MIGX
  • MinifyX
  • miniShop2
  • modalConsole
  • pdoTools
  • phpThumbOn
  • SimpleSearch
  • tagElementPlugin
  • TinyMCE Rich Text Editor
  • Translitor
  • VersionX
Разработчик
22 декабря 2022, 01:40
0
Спасибо за ответ) Мне тут помогли немного, когда поставил Fenom, то все получилось сделать)) Ранее пробовал сделать без него и очень не хватало свободы))
Разработчик
22 декабря 2022, 01:38
0
Спасибо за ответ)

Тут не совсем стандартный проект, тут получается как каталог продуктов, что-то вроде рейтинга. Как такового каталога там нет.

Я решил проблему через where у pdoResources

Может косячно, но пока работает

1. Вот тут я собрал все контейнеры (папки) в которых лежат ресурсы. Так как все ресурсы выводятся на одной странице по папкам. Где первый элемент наверху, остальные скрыты в контейнере, то сделал так.

<div class="py-8 bg-light">
                <div class="container">
                    <div class="group-last-child">
                        [[!pdoResources?
                           &depth=`1`
                           &where=`{"isfolder":"1"}`
                           &tvPrefix=``
                           &tpl=`Tpl-lvl-1-catalog-All-Deposits`
                           &sortby=`{"menuindex":"ASC"}`
                           &includeTVs=`valuta, time-if-deposit`
                        ]]       
                    </div>
                </div>
            </div>

На этот этапе я фильтрую результат, сделав сниппет-обертку
Total — мне нужно для того, чтобы знать сколько элементов в папке и сравнивать с последним. Сравнивать с последним нужно для закрывающего тэга обертки. А открывается тег обертки на втором.

[[!mySnippetFilter?
   &parents=`[[+id]]`
   &depth=`5`
   &tplFirst=``
   &resources=``
   &tvPrefix=``
   &tpl=`Tpl-lvl-2-Bank-All-Deposits`
   &sortby=`{"menuindex":"ASC"}`
   &includeTVs=`valuta, time-if-deposit, from-sum-deposit, bet-for-deposit`
   &setTotal=`1`
   &toPlaceholder=`myOut`
]]  
[[+myOut]]

Данный снипет является оберткой над pdoResources, нужен для фильтрации результата

Сниппет представляет собой

$where = Array();

if(count($_POST['tv'])) {
    $where = array_merge($where, $_POST['tv'] );
    if (count($where['from-sum-deposit:<='])) {
        unset($where['from-sum-deposit:<=']);
    };  
    if (!empty($where['srok']) and $where['srok'] == 'all' ) {
        unset($where['srok']);
    }
}

$scriptProperties['where'] = json_encode($where);
$html = $modx->runSnippet('pdoResources', $scriptProperties);
echo $html;

А вывожу я все это при помощи Fenom на странице

{set $total = $_modx->getPlaceholder('total')} Присваиваю последний элемент переменной
{if $idx == 1} // Если это первый элемент, для него определенный вывод
Тут код чанка для первого элемента
{else}
{$idx == 2? 'код открытия оболочки для второго и последующих элементов, эта оболочка появляется и скрывается по кнопке' : ' '}
код для элементов внутренних, начиная от второго и дальше
{$idx == $total? 'проверка на последний элемент, получается если total равен idx тогда он последний и я закрываю два дива':''}
{/if}
Конечно тут накручено, но кое как с помощью получилось мне получить последний элемент в выдаче pdoResources))) Пока работает, в целом как мне нужно
Разработчик
22 декабря 2022, 01:28
0
Не совсем, точнее это было нужно немного для другого ))

У меня на странице выводятся все продукты компании. Но эти продукты группируются по папкам. Получается на одной странице есть результаты из каждой папки, при том у второго и последнего блока должны быть div обертки. Проблему решил следующим образом

<div class="py-8 bg-light">
                <div class="container">
                    <div class="group-last-child">
                        [[!pdoResources?
                           &depth=`1`
                           &where=`{"isfolder":"1"}`
                           &tvPrefix=``
                           &tpl=`Tpl-lvl-1-catalog-All-Deposits`
                           &sortby=`{"menuindex":"ASC"}`
                           &includeTVs=`valuta, time-if-deposit`
                        ]]       
                    </div>
                </div>
            </div>

Это сниппет — Tpl-lvl-1-catalog-All-Deposits

[[!mySnippetFilter?
   &parents=`[[+id]]`
   &depth=`5`
   &tplFirst=``
   &resources=``
   &tvPrefix=``
   &tpl=`Tpl-lvl-2-Bank-All-Deposits`
   &sortby=`{"menuindex":"ASC"}`
   &includeTVs=`valuta, time-if-deposit, from-sum-deposit, bet-for-deposit`
   &setTotal=`1`
   &toPlaceholder=`myOut`
]]  
[[+myOut]]

Данный снипет является оберткой над pdoResources, нужен для фильтрации результата

Сниппет представляет собой

$where = Array();

if(count($_POST['tv'])) {
    $where = array_merge($where, $_POST['tv'] );
    if (count($where['from-sum-deposit:<='])) {
        unset($where['from-sum-deposit:<=']);
    };  
    if (!empty($where['srok']) and $where['srok'] == 'all' ) {
        unset($where['srok']);
    }
}

$scriptProperties['where'] = json_encode($where);
$html = $modx->runSnippet('pdoResources', $scriptProperties);
echo $html;

А вывожу я все это при помощи Fenom на странице

{set $total = $_modx->getPlaceholder('total')}
{if $idx == 1}
Тут код чанка для первого элемента
{else}
{$idx == 2? 'код открытия оболочки для второго и поледующих элементов, эта оболочка появляется и скрывается по кнопке' : ' '}
код для элементов внутренних, начиная от второго и дальше
{$idx == $total? 'проверка на последний элемент, получается если total равен idx тогда он последний и я закрываю два дива':''}
{/if}

Конечно тут накручено, но кое как с помощью получилось мне получить последний элемент в выдаче pdoResources))) Может и косячно, но пока работает)
Разработчик
29 января 2020, 12:07
0
Добрый день, а уточните пожалуйста данное решение способно создать заказ в самом личном кабинете Shiptor?

То есть нам необходимо рассчитать доставку и отправить данные в ЛК (Номер договора у нас есть)

Расчет работает, а заказ почему то не создается. Или такой возможности нет?