Вопросы

Pdoresource неправильно обрабатывает условие where. РЕШЕНО!

Всем привет!
Сразу к делу. Код сниппета:

<?php
$where = array(
    'Lo:>=' => 100,
    'Lo:<=' => 140,
);

$where = $modx->toJSON($where);

$output = $modx->runSnippet('pdoResources',array(
    'limit' => 15,
    'parents' => 71,
    'includeTVs' => 'Lo',
    'where' => $where,
    'return' => 'json'
));

return $output;
Данный сниппет выдает результат из 4 значений, то есть работает корректно. Когда меняю 100 на 99, результатом сниппета становится пустой массив. Что интересно, когда меняю 99 на 10, сниппет отрабатывает правильно.

Не понимаю, что за магия происходит. Помогите разобраться.

UPD. Когда ввожу 0, 1, 11, 12 и выборка работает нормально. Остальные числа до 99 включительно отдают пустой результат.
Денис
07 апреля 2021, 22:23
modx.pro
1 131
0

Как сделать условие выборки для article.

Создал для быстрой вставки товаров в тело любой страницы, хочу чтобы не него можно было вносить назания товара (Артикль). Раньше было сделано по id ресурса через resources
вызов такой:
{include 'file:chunks/blocks/pdo_project.tpl' $resources='212,207,197'}
Код чанка такой:
{set $params = [
'depth' => '0',
'resources' => $resources,
'element' => 'msProducts',
'tpl' => '@FILE chunks/cards/card.tpl',
'includeThumbs' => 'medium',
'limit' => 80,
'includeTVs' => 'price1,area',
'tvPrefix' => '',
'parents' =>  0 ,
]}
<div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
    {'!pdoPage' | snippet : $params}
</div>
Сейчас пытаюсь через where заменить
'resources' => $resources
на
'where'=> '{"article:IN":$articles}',
но ничего не работает.
Артикли на кириллице
Miša Bulic
07 апреля 2021, 18:02
modx.pro
975
0

Сортировка по опциям msProducts [решено]

Доброго.

Уже пол дня убил на попытку наладить сортировку msProducts, прошу помощи аудитории, так как документации и гугла явно не хватает :)

Дано: miniShop2, товары с опциями, всё обычное.
Задача: отсортировать по опции 'obschaya-ploschad', примеры значений опции: 211.8, 240 и т.д.

Делаю так:

$modx->runSnippet('msProducts', [
    'parents' => 2,
    'sortbyOptions' => 'obschaya-ploschad:number',
    'sortby' => '{"obschaya-ploschad":"ASC"}',
    'limit' => 24,
    'offset' => $offset,
    'tpl' => 'tpl.catalog.row',
    'setTotal' => 1
]);
Viarne
07 апреля 2021, 15:38
modx.pro
840
0

переписать путь к файлу стилей

Добрый день. только начал изучать modx. стоит задача по клике на кнопку менять подключаемые файлы стилей. просто используя php я это сделал. но как это сделать в modx не понимаю.
это нативный php

$css = 'style.css';
$css2 = 'style2.css';

$filename = 'index.php';
$file = file_get_contents($filename);
$title_pattern = $css;
$test = preg_replace("~$title_pattern~", $css2, $file);
file_put_contents($filename, $test);

header('Location: index.php');

а это уже код внутри modx

кнопка на странице, где 124 это номер сниппета



а это сам сниппет

<?php

function getStyle() {

$css = '[[$styles]]'; // чанк исходного файла css
$css2 = '[[$styles2]]'; //чанк файла на который надо поменять

$filename = [[$head]]; //чанк — место где происходит замена css файлов
$file = file_get_contents($filename);
$title_pattern = $css;
$test = preg_replace("~$title_pattern~", $css2, $file);
return file_put_contents($filename, $test);

}
Руслан
07 апреля 2021, 15:30
modx.pro
872
0

Игнорировать мультикатегории в msProducts

Добрый день! Можно ли как-то сделать вывод товаров без учета мультикатегорий, чтобы не отображались те, что связаны с этой категорией из другой категории?
Анастасия
07 апреля 2021, 12:33
modx.pro
632
0

PayPal minishop2 ошибка при оплате

/home/u212443042/domains/maisondentremets.com/public_html/core/components/minishop2/custom/payment/paypal.class.php : 84) [miniShop2] Payment error while request. Request: Array
(
    [METHOD] => SetExpressCheckout
    [PAYMENTREQUEST_0_CURRENCYCODE] => GBP
    [PAYMENTREQUEST_0_ITEMAMT] => 4.21
    [PAYMENTREQUEST_0_SHIPPINGAMT] => 10
    [PAYMENTREQUEST_0_AMT] => 14.21
    [RETURNURL] => https://maisondentremets.com/assets/components/minishop2/payment/paypal.php?action=success
    [CANCELURL] => https://maisondentremets.com/assets/components/minishop2/payment/paypal.php?action=cancel
    [PAYMENTREQUEST_0_INVNUM] => 18
    [L_PAYMENTREQUEST_0_NAME0] => Avocado Guacamole
    [L_PAYMENTREQUEST_0_AMT0] => 4.96
    [L_PAYMENTREQUEST_0_QTY0] => 1
    [L_PAYMENTREQUEST_0_NAME1] => Standard (Free)
    [L_PAYMENTREQUEST_0_AMT1] => 0
    [L_PAYMENTREQUEST_0_QTY1] => 1
)
, response: SSL certificate problem: unable to get local issuer certificate
Как можно решить проблему?
Максим
06 апреля 2021, 17:22
modx.pro
835
0

recaptcha v2 tickets

начал искать как прикрутить recaptcha v2 к TicketComments, нигде не нашел, только встроенная проверка сложение, не знаю правильно или нет но прикрутить удалось таким способом код от установленого formit и recaptchav2
в форму добавил
[ [!recaptchav2_render] ]
[ [!+fi.error.recaptchav2_error] ]


выключил встроенную проверку &enableCaptcha=`0`

добавил &customValidators=`recaptchav2` &validate=`g-recaptcha-response:required` &g-recaptcha-response.vTextRequired=`Вы не прошли проверку на спам`

получился код вызова
[ [!TicketComments? &allowGuest=`1` &autoPublishGuest=`0` &enableCaptcha=`0` &customValidators=`recaptchav2` &validate=`g-recaptcha-response:required` &g-recaptcha-response.vTextRequired=`Вы не прошли проверку на спам` ] ]

может кому поможет, у меня все работает
автору дополнения tickets надо было бы как то давно описать и прикрутить гугл капчу, думаю математическая проверка давно устарела
akella1900
06 апреля 2021, 10:36
modx.pro
2
1 102
0

Как вывести результаты pdoResources в формате json, но с моим tpl

Всем привет!
Вывод с параметром &return=`json` меня не совсем устраивает, так как он выводит все поля документа без возможности обработки вложенными сниппетами.

Например, у меня есть TV в формате MIGX для добавления множества фото к документу и их необходимо обработать с помощью phpthumbon, а также другие необходимы обработки внутри чанков.

Если я делаю свой шаблон с закосом под структуру json:
{
«id»: "{$id}",
«pagetitle»: "{$pagetitle}",
},

То это не работает. Выводит в таком виде, но не работает там, куда отправляется эта json-ссылка.

Что делать?
Anton
05 апреля 2021, 18:50
modx.pro
2 331
0

Запретить добавлять товар в некоторые "мульти-категории"

Добрый день.
В админ панели у каждого товара minishop2 есть вкладка Категории. В ней есть возможность установкой галочки поместить товар в ресурс, если он создан как категория товара.

Какие есть разумные способы ограничить выбор этих категорий? К примеру есть два каталога — каталог1 и каталог2. Необходимо не дать возможность разместить товар из каталога 1 внутри второго или любых подкатегориях второго?

Посмотрел список событий docs.modx.pro/komponentyi/minishop2/razrabotka/sobyitiya, думал можно это отработать на уровне плагина, но похожих событий не нашел.

Спасибо.
Александр Мельник
05 апреля 2021, 12:55
modx.pro
589
0

Как получить переменные через событие af_compleate и AjaxForm?

Приветствую уважаемое сообщество.

использую связку AjaxForm + formit + свой хук

в своём сниппете пытаюсь передать массив и потом отловить его через событие af_compleate
хук:
$arr = array(
'var' => 'value',
'var2' => 'value2',
)
return $AjaxForm->success('Форма обработана', $arr);
JS:
$(document).on('af_complete', function(event, response) {
    var form = response.form;
    if (form.attr('id') == 'add-contract') {
      console.log(response);
     console.log(response.data);
    }
});
приходит пустой массив.
Подскажите пожалуйста как я могу получить данные из своего сниппета через af_complete?
Глеб
05 апреля 2021, 11:01
modx.pro
1 051
0