Валентина Павлова

Валентина Павлова

С нами с 17 мая 2017; Место в рейтинге пользователей: #537
Andrey
23 июля 2021, 17:39
2
+1
Ну, можно побаловаться с выводом в журнал… Вот вывод id ресурса, например:
$modx->log(MODX_LOG_LEVEL_ERROR, $modx->resource->get('id'));
Можно с пояснительным текстом:
$modx->log(MODX_LOG_LEVEL_ERROR, 'ID ресурса: ' . $modx->resource->get('id'));
РОМАН
22 февраля 2020, 21:34
1
0
От вашего сниппета оставляем
// устанавливаем параметры сниппета
// key - метка, которую отслеживаем, по умолчанию utm_source
$key = $modx->getOption('key', $scriptProperties, 'utm_source');

session_start();
if (!isset($_SESSION['utm_source'])) {
  $_SESSION['utm_source'] = $_GET[$key]; // заносим в сессию параметр utm_source, присваиваем ему передаваемое через get-запрос значение отслеживаемой метки
}
session_write_close();
Выводим сниппет в начале каждой странице
{if $.get.utm_source}
{'!getUtmSource' | snippet}
{/if}
И используем плейсхолдер
{$.session.utm_source}
в Fenom, как душе угодно!
Илья Ермак
04 сентября 2019, 06:37
1
0
На счёт 1 ошибки: ошибся, ошибка ушла после того, как в msGallery добавил следующий код (начиная с 69 строки сниппета):
if (empty($rows)) {
    return false;
}
Нужно было из-за того, что я в шаблоне многих страниц вызывал сниппет, но далеко не у всех ресурсов были загружены фото в галерею.
Андрей
14 января 2019, 14:39
1
0
Так у вас все верно было, надо выводить только по другому

$product = $modx->getObject('msProduct', 17954); //id Товара msProduct
$options = $product->getMany('Options');

foreach ($options as $v) {
   print_r($v->toArray());
}
Konstantin B
21 июня 2018, 23:13
2
0
В общем и целом решение нашел, странно что в документации написано объект $order, меня честно говоря это ввело в заблуждение.

Оставлю это тут, вдруг кому-то пригодится!

Как оказалось достаточно такой конструкции:

<?php
switch ($modx->event->name) {
    case 'msOnCreateOrder':
        
	    if($newStatus == true)
	    {
            $msOrder->set("status","5");
            $msOrder->save();
        }
	break;
}
Николай Загумённов
09 октября 2016, 20:52
2
+1
Вот этот метод
$miniShop2 = $this->modx->getService('miniShop2');
$miniShop2->changeOrderStatus($order_id, 2); // Смена статуса заказа на "Оплачено"
Наумов Алексей
08 мая 2014, 23:06
1
0
$query = $this->modx->newQuery('msProduct');
$query->setClassAlias('Product');
$query->leftJoin('msProductData','Data', '`Product`.`id` = `Data`.`id`');
$query->select($this->modx->getSelectColumns('msProduct','Product',''));
$query->select($this->modx->getSelectColumns('msProductData','Data','data.'));

$query->where(array(
            '`Data`.`source`' => 2,
        ));
$query->sortby("pagetitle", "ASC");
$query->prepare();
$query->stmt->execute();
$rows = $query->stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($rows as $row){
  $id = $row['id'];
}