Воеводский Михаил

Воеводский Михаил

С нами с 07 февраля 2013; Место в рейтинге пользователей: #28
11 августа 2015, 08:18
0
На почту письмо пришло с кодом вероятного костыля. Однако, так делать не стоит.
11 августа 2015, 05:10
0
В msOrder — нет. В msCart — можно.
11 августа 2015, 05:03
+1
<?php

switch($modx->event->name) {
	case 'onDocFormSave':
		if ($parent = $resource->getOne('Parent')) {
			if ($someProduct = $modx->getObject('msProduct',array('parent' => $parent->get('parent'),'alias' => $parent->get('alias'),'class_key' => 'msProduct'))) {
				if ($vendor	 = $someProduct->getOne('Vendor')) {
					$resource->addOne($vendor,'Vendor');
					$resource->save();
				}
			}
		}
	break;
}
Код не запускал и не проверял.
11 августа 2015, 02:43
+1
Сделать можно, но если в адресе указана 15 страница — загружать все 15? А если с 15 страницы перейти на 16 — придется отмотать содержимое всех 15 страниц?

Если «да» на оба вопроса, то рекомендую не издеваться над пользователями.
11 августа 2015, 02:37
+1
Сначала стоит убрать добавленный index.php.
Дерево ресурсов не отображается, вероятнее всего, из-за ошибки при написании поля и его свойств.

Еще очень полезны логи веб-сервера и самого MODX.

10 августа 2015, 20:07
0
Как сохраняешь ресурсы?
10 августа 2015, 16:02
0
В магазине. Не сегодня и не завтра, Сергей еще допивает компонент. Пока это лишь анонс и сбор пожеланий для расширения базового функционала :)
10 августа 2015, 11:58
+1
Если Вы уверены, что это обязательно — подскажу. Но это очень плохая идея, так как Tickets не предполагает подобного расширения, придется лезть в ядро компонента и лишиться возможности обновлений.

Лучше использовать properties от стандартного объекта modUserProfile. Тем более, что TicketAuthor имеет с ним связь:
$profile = $ticketAuthor->getOne('UserProfile');
10 августа 2015, 10:24
0
Вопрос чересчур абстрактный.
С коллекциями я не работал, про них ничего не скажу.

Тикеты — прекрасно работают в разных контекстах, очень хорошо дружат с Babel. minishop2 тоже должен хорошо работать с разными контекстами, но это получается но совсем корректно с точки зрения учета — из-за разных языков надо создавать разные товары, а тогда по отчетам будет казаться, что проданы 2 переведенных товара (или более) вместо одного реального.
09 августа 2015, 00:22
0
Это не ошибки. Видимо, где-то в коде я забыл убрать
$modx->log(1,print_r($var,1));
, где $var — любая переменная/массив.
09 августа 2015, 00:20
0
Напишите на почту (есть в профиле)
08 августа 2015, 13:15
0
Есть такой баг, заметил еще год назад. Посчитал тогда глюком JS из-за чрезмерной длины строки и забил.
07 августа 2015, 21:16
0
Когда я дописывал заключительную часть вопроса, понял уже, что достаточно переименовать собственный процессор, после чего настанет вселенское счастье.

Подгрузка процессоров изменения — очень интересный прием. Возможно, возьму на вооружение. Спасибо за подсказку.
07 августа 2015, 18:21
0
Именно так и оказалось.
До такой глубины вряд ли хватило бы времени и терпения дойти.

Николай, спасибо!
07 августа 2015, 17:02
0
Эксперименты продолжаются.
Сделал отдельный процессор
<?php
exit('bla');
require_once MODX_CORE_PATH . 'model/modx/processors/security/user/update.class.php';
class chwUserUpdatetmpProcessor extends modUserUpdateProcessor {
	public $classKey = 'chWorker';
	public $permission = '';

    public function checkPermissions() {
        return true;
    }

    public function run() {
        return true;
    }
}
return 'chwUserUpdatetmpProcessor';
Работа всего MODX прекращается на строке exit('bla');, как и положено. Но если ее убрать, то получаю сообщение permission_denied, что явно говорит о выполнении процессора modUserUpdateProcessor и игнорировании chwUserUpdatetmpProcessor.

Что я делаю не так, почему именно обновление пользователя так криво работает?
07 августа 2015, 12:40
0
Андрей, ребята здесь обсуждали предыдущую версию.
Торговые предложения и склад все еще ждем.
05 августа 2015, 00:12
0
Было дело, сам потерял на этом много часов. Запомнил :)
05 августа 2015, 00:09
+1
Необходимо еще включить способ оплаты во всех необходимых способах доставки.
04 августа 2015, 22:30
0
Напишите на почту (нажать на «Разрешена» в моем профиле), договоримся.