Иван Бондаренко

Иван Бондаренко

С нами с 30 января 2013; Место в рейтинге пользователей: #91
Василий Наумкин
20 октября 2014, 13:36
1
0
Ты для начала попробуй простой пример:
[[!pdoResources?
	&tpl=`@INLINE <a href="/[[+uri]]">[[+pagetitle]]</a>`
	&parents=`0`
	&prepareSnippet=`mySnippet`
]]
Сниппет mySnippet:
$row['pagetitle'] .= rand();

return serialize($row);

Дальше уже усложняй и добавляй свою логику, чанки и код из сниппетов.
Василий Наумкин
06 июля 2014, 19:00
1
0
Прокралась ошибка — поторопился я. Исправил и перезалил пакет, можно еще разок обновиться.

Редирект работает просто — нужно зайти на страницу с формой авторизации по ссылке с указанным возвратом, например:
http://mysite.ru/auth.html?hauth_return=/thispage.html

Чтобы возвращать на текущую страницу, делаем так:
http://mysite.ru/auth.html?hauth_return=[[~[[+id]]]]
Алексей Ерохин
23 июня 2014, 17:35
1
0
Пишите свой OrderHandler bezumkin.ru/modx/minishop2/classes/804/
Вам нужна своя функция submit(), конкретнее этот пункт:
$this->modx->sendRedirect($this->modx->context->makeUrl($this->modx->resource->id, array('msorder' => $response['data']['msorder'])));


Либо плагин на событие msOnCreateOrder
marked
08 ноября 2013, 20:30
1
0
C задачей справился и, как здесь принято, решил поделиться наработкой из плагина.

Userful:
// Если событие - "msOnChangeOrderStatus"
case 'msOnChangeOrderStatus':

    // Если статус - "Отправлен"
    if ($status == 3) {

        // Настройка
        $modx->getService('error','error.modError');
        $modx->getService('mail', 'mail.modPHPMailer');
        
        // Лог ведется в "Отчёты" > "Журнал ошибок"
        $modx->setLogLevel(modX::LOG_LEVEL_INFO);
        $modx->setLogTarget('FILE');

        // Переменные
        $id = $order->get('id');
        $products = $order->getMany('Products');

        // Информация о заказе
        $modx->log(modX::LOG_LEVEL_INFO, '==============================');
        $modx->log(modX::LOG_LEVEL_INFO, '            Заказ #' . $id);
        $modx->log(modX::LOG_LEVEL_INFO, '==============================');

        // Вывод списка покупок из заказа
        foreach ($products as $item) {

            // Переменные
            $product = $item->getOne('Product');
            $count = $item->get('count');

            // Информация о товаре
            $modx->log(modX::LOG_LEVEL_INFO, 'Товар: "' . $product->get('pagetitle') . '" (#' . $product->get('id') . ')');
            $modx->log(modX::LOG_LEVEL_INFO, 'Цена: ' . $product->get('price') . ' руб.');
            $modx->log(modX::LOG_LEVEL_INFO, 'Количество: ' . $count . ' шт.');

            // Отправка письма
            $email = 'E-mail';
            $subject = 'Тема письма';
            $body = 'Содержимое письма';
            $modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
            $modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
            $modx->mail->set(modMail::MAIL_SUBJECT, trim($subject));
            $modx->mail->set(modMail::MAIL_BODY, $body);
            $modx->mail->setHTML(true);
            $modx->mail->address('to', trim($email));
            $modx->mail->send();
            $modx->mail->reset();    
    }
    // Сброс
    die();
}

Тему можно считать «закрытой».