Станислав

Станислав

С нами с 25 марта 2017; Место в рейтинге пользователей: #260

[РЕШЕНО] Плагин msOnBeforeCreateOrder иногда не срабатывает

Всем привет!

Есть задача: при попытке оформления нового заказа в minishop2, если заказчик уже есть в БД и у него есть хотя бы один заказ, выдавать предупреждение и не оформлять текущий заказ. Казалось бы, достаточно простая задача, был написан плагин на событие msOnBeforeCreateOrder
<?php
if ($modx->event->name == 'msOnBeforeCreateOrder') {
    $arr = $order->get();
    $email = str_replace(' ', '', $arr['email']);
    $user = $modx->getObject('modUserProfile', ['email' => $email]);
    if(is_object($user)) {	   
    	$user_id = $user->internalKey;
    	$orders = $modx->getCollection('msOrder', ['user_id' => $user_id]);
    	if (count($orders) > 0) {    	   
    	    $modx->event->output('пользователь с email '.$arr['email'].' уже зарегистрирован! Попробуйте ввести другой email');
    	}
    }
}
Плагин срабатывает корректно, но в списке заказов увидел, что у пары пользователей есть более одного заказа.

Что-то не так в коде плагина? Я пытался воспроизвести эту ситуацию — но всё норм, плагин не пропускает повторный заказ моего пользователя.
Alexey
21 октября 2020, 09:51
modx.pro
1
1 055
+1

Minishop, хиты продаж

Здравствуйте. Ребят, подскажите, есть ли решение или как сделать вывод товаров по количеству продаж? Minishop, как я понял не ведет статистику, какой товар сколько раз куплен, чтобы просто сделать выборку из них и вывести последние?
alex
29 сентября 2020, 14:17
modx.pro
3
895
0

Hook Formit. CallTouch + MODX

Всем привет!

Поступила задача на интеграцию форм с calltouch.ru/



На сайте есть информация Как подключить заявки с сайта к отслеживанию Calltouch

Мы же выберем решение в виде хука для Formit.

Иван Бочкарев
16 сентября 2020, 13:07
modx.pro
7
2 073
+16

Не работает лог modx

Поставили последнюю версию controlErrorLog, прекратились записываться логи, т.е. никаких ошибок, обновление modx, проверка параметров системных настроек результатов не дало, удаление компонента тоже, может кто сталкивался с таким…
Станислав
13 сентября 2020, 21:38
modx.pro
1
597
0

Обернуть каждые N элементов массива в Fenom

Здравствуйте уважаемые друзья! Вопрос в том как вывести элементы массива с учетом того что каждые четыре должны быть обернуты в тег? Например вот стандартный чанк ms2gallery:
{if $files?}
    <div class="slider">
        {foreach $files as $file}
            <div class="slide">
		        <img src="{$file['url']}">
	        </div>
        {/foreach}
    </div>
{/if}
А нужно (просто привожу схематично структуру):
{if $files?}
    <div class="slider">
           <div class="slide">
		    <img src="{$file['url']}">
                    <img src="{$file['url']}">
                    <img src="{$file['url']}">
                    <img src="{$file['url']}">
	    </div>
        {/foreach}
    </div>
{/if}
Понимаю что нужен какой-то цикл for 1..4 но как его реализовать не решу…
Анатолий
28 апреля 2020, 12:16
modx.pro
3
1 165
0

Не могу запустить pdo внутри чанка, обрабатываемого через плагин, как исправить?

Есть плагин, в котором генерируются ресурсы, все выводится нормально, почти.., но не могу там запустить допустим сниппет, или эту команду [[#[[+tv.customer-id]].pagetitle]] он выводит это как текст, а если ставить просто [[+tv.customer-id]], то тупо выведет айди, а нужно, чтобы вывел заголовок страницы.

Часть кода
$params = array(
    'parents' => $parent,
    'limit' => 6,
    'depth' => 1,
    'offset' => $offfset,
    'level' => 1,
    'tpl' => $tpl,
    'includeTVs' => $tvs,
    'where' => $modx->toJSON($where)
);
$goods = $modx->runSnippet('pdoPage',$params);
Так выглядит темплейт.

<tr>
    <td>[[+idx]]</td>
    <td>
        <p>
            [[+pagetitle]]
        </p>
    </td>
    <td>
        <p>
            [[+tv.object-name]]
        </p>
    </td>
    <td>
        <p>[[#[[+tv.project-type]].pagetitle`]]</p>
    </td>
    <td>
        <p>
            [[+tv.from-year]][[+tv.by-year:!empty=`-[[+tv.by-year]]`]]
        </p>
    </td>
    <td>
        <p>
            [[+tv.project-additional]]
        </p>
    </td>
</tr>
Slava
07 апреля 2020, 13:58
modx.pro
1
463
0

Варианты отображения товаров в каталоге, плиткой или прайсом

Добрый день! Подскажите, как настроить переключатели вариантов отображения товаров в каталоге (плиткой, списком, прайсом). С перезагрузкой страницы.
/katalog/?display=plitka
/katalog/?display=list
/katalog/?display=price
Панируется для каждого варианта подключить отдельный чанк. (plitka.tpl, list.tpl, price.tpl)
Можно ли использовать для этого mFilter?
Шурик
01 апреля 2020, 08:59
modx.pro
2
507
0

Консольный импорт ms2Gallery добавить теги

Добавляю изображения в галерею таким образом:
foreach ($values['files'] as $file) {
        
        $response = $modx->runProcessor('gallery/upload', array(
                'file' => $file, // Путь к файлу от корня сервера
                'id' => $id // id ресурса с галереей
            ),
            array('processors_path' => MODX_CORE_PATH . 'components/ms2gallery/processors/mgr/')
        );

        if ($response->isError()) {
            print_r($response->getAllErrors());
        }
    }
Как мне к загружаемой картинке добавить теги?
Евгений
27 марта 2020, 11:10
modx.pro
1
651
0

pdoPage Загрузка при клике на кнопку "Загрузить больше"

Добрый вечер. Есть галерея картинок. При загрузке страницы загружается 14 изображений, при клике на которые при помощи «baguetteBox» показывается изображение на весь экран, ну в общем все как надо. НО после нажатия на кнопку «Загрузить еще» и появления еще 14 картинок клик по ним показывает картинку открытую через браузер, т.е. чтобы попасть на сайт нужно жать кнопку «со стрелкой назад». При этом если оставить пагинацию с номерами страниц то все работает как надо.
Вот код:
[[!pdoPage?
&parents=`19`
&element=`getImageList`
&tvname=`works`
&limit=`14`
&tpl=`tplWorksInGallery`
]]

[[!+page.nav]]


И сам код чанка tplWorksInGallery:

Буду благодарен за ваши высказывания куда смотреть.
Александр
19 марта 2020, 20:42
modx.pro
1
563
0