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

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

Был в сети 06 июля 2026, 10:07
Заказы принимаю
РОМАН
РОМАН
От вашего сниппета оставляем
// устанавливаем параметры сниппета
// 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, как душе угодно!
Илья Ермак
Илья Ермак
На счёт 1 ошибки: ошибся, ошибка ушла после того, как в msGallery добавил следующий код (начиная с 69 строки сниппета):
if (empty($rows)) {
    return false;
}
Нужно было из-за того, что я в шаблоне многих страниц вызывал сниппет, но далеко не у всех ресурсов были загружены фото в галерею.
Konstantin B
Konstantin B
В общем и целом решение нашел, странно что в документации написано объект $order, меня честно говоря это ввело в заблуждение.

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

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

<?php
switch ($modx->event->name) {
    case 'msOnCreateOrder':
        
	    if($newStatus == true)
	    {
            $msOrder->set("status","5");
            $msOrder->save();
        }
	break;
}
Мордынский Николай
Мордынский Николай
Вот нашел решение

// Try to find by email
$modx->event->_output = $modx->getObjectGraph('modUser', '{"Profile":{},"UserSettings":{}}', array ('Profile.email' => $scriptProperties['username']));
Сюда можно дописывать еще критерии поиска, можно хоть по дополнительным полям логиниться

Плагин вешается на событие onUserNotFound
Наумов Алексей
Наумов Алексей
$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'];
}