mngatoff

mngatoff

Был в сети 11 января 2024, 00:10
Заказы не принимаю
очень крутое обновление, да.

назрела мысль, возможно народ поддержит — хорошо бы добавить параметр, например, «validator» — и писать в него сниппет (с поддержкой файловых), который мог бы проверять нужные поля на правильность заполнения и возращал бы именованные ошибки
некоторое время назад я удалял компонент с нескольких сайтов за ненадобностью. удалял через менеджер пакетов. при этом файлы компонента и сам плагин оставались на месте, удалялась только регистрация компонента в системе. в результате консоль сыпала ошибками. приходилось файлы и плагин удалять вручную. такое было на порядка десяти сайтах
пишу плагин, чтобы разрешить скидку только на товары определенного бренда:
<?php
$sp = &$scriptProperties;
switch ($modx->event->name) {
    case "mspcOnBeforeSetProductDiscount":
    	if (strtolower($sp['coupon']['code']) == 'hotdays') {
	    	$product = $modx->getObject('msProduct', $sp['product']['id']);
			if ($product->get('vendor') != 9) {
	            $sp['discount'] = 0;
			}	
    	}
        break;
}
$modx->event->returnedValues = $sp;
на фронте, если товар другого бренда, скидка не срабатывает, но все равно приходит сообщение, что промокод применен. А как написать, что недействителен?
// тут проверяешь всё что тебе нужно, чтобы уточнить что это точно тикет, в нужном разделе и т. д. 
// далее: 
// проверяешь, что документ новый и что юзер существует:
if ($mode == 'new' and $user = $modx->getObject('modUserProfile', $resource->createdby)) {
    // подключаешь компонент:
    $pdoTools = $modx->getService('pdoTools');
    $tickets = $modx->getService('tickets', 'Tickets', $modx->getOption(
        'tickets.core_path', null, $modx->getOption('core_path').'components/tickets/').'model/tickets/', array('allowGuestEmails' => true)
    );
    $tickets->initialize($modx->context->key, array('allowGuestEmails' => true));
    // отправляешь письмо:
    $tickets->addQueue(
        $user->id, // кому отправлять;
        'тема письма', 
        $pdoTools->getChunk('имя_чанка',  array(/* плейсхолдеры */)), // тело письма - можно распарсить свой чанк 
        $user->email, // на всякий случай указываешь почту, хотя это и необязательно
    );
}
что-то не так на стороне js, потому что процессор migx ловит пустое значение. оно тупо не отправляется на сохранение.
у меня две тв-шки рядом: «video» (listbox-multiply) и «gallery» (tvsuperselect)
в migx сырые данные приходят в виде json, и этот кусок выглядит так:
{"video":["1","2","3"],"gallery":""}
что касается поля migx внутри migx (которое тоже json по идее), то оно экранируется и приходит вот так:
{"somemigxfield":"[{\"field\":\"value\"}]"}
и думается мне, что tvsuperselect тоже надо экранировать и строкой отправлять, только где и когда это отловить пока не разобрался
приветствую! извиняюсь за офтоп, подскажи пожалуйста, как можно через плагины заставить msie работать с localizator? какое из событий юзать и как модифицировать данные. И пожалуй главное, как заставить его не ругаться на незнакомые названия полей
Многим она не нужна и вряд-ли понадобится (MIGX DB например)
серьезно? по-моему только ради MIGX-db это и остается наиболее must-have компонентом. и именно по MIGX-db наибольшее количество белых пятен и неисследованных возможностей
в голове)
последовательно:
1. выводим tv или слово «пусто»
2.… ииии… 'Пусто':notempty=`неПусто`

слово «пусто» это уже строка, а не пустое место. поэтому в любом случае ты вторым условием проверяешь либо строку из tv, либо строку «пусто», и это никак не может быть пустым значением.