Как сделана техподдержка в магазине Simple Dream

Василий, привет!

Скажи пожалуйста, в магазине store.simpledream.ru есть раздел техподдержки, и я так понимаю созданные там тикеты — приватны и видно их только для самого пользователя, автора дополнения и администраторов.
Вопрос — как такое реализовано? Насколько сильно был изменен стандартный Тикетс для достижения такого функционала?
Andrei Kulazhenko
01 апреля 2014, 19:12
modx.pro
825
0

Комментарии: 5

Василий Наумкин
02 апреля 2014, 06:37
0
Насколько сильно был изменен стандартный Тикетс для достижения такого функционала?
Нинасколько. Нужная логика дописана системными плагинами на создание и открытие страницы.
    Andrei Kulazhenko
    02 апреля 2014, 11:55
    +1
    Понятно, а есть ли возможность выложить в общ. доступ эти плагины в качестве примера?
      Василий Наумкин
      02 апреля 2014, 12:46
      +1
      По моему, я и так делюсь огромным количеством решений и разработок.

      Такие вещи делаются под конкретную задачу, они не универсальны, поэтому и выкладывать незачем. Иначе потом будет еще 10 вопросов, что как и почему.
        Andrei Kulazhenko
        02 апреля 2014, 13:07
        0
        За что огромное Вам спасибо, мне к примеру, совершенно универсальность не нужна — просто нужен какой-то пример реализации, а дальше кастомизировать механизм надеюсь, позволят собственные знания, которых пока не много, к сожалению (
          Василий Наумкин
          02 апреля 2014, 13:16
          3
          +1
          if ($modx->event->name == 'OnLoadWebDocument') {
          	$section_root = 15;
          	
          	if ($modx->resource instanceof Ticket) {
          		if ($category = $modx->resource->getOne('Section')) {
          			if ($category->get('parent') == $section_root) {
          				if (!$modx->user->isMember(array('Group1','Group2'))
          					&& $modx->resource->get('createdby') != $modx->user->id
          					&& $category->get('createdby') != $modx->user->id
          				) {
          					$modx->sendUnauthorizedPage();
          				}
          			}
          		}
          	}
          	elseif ($modx->resource instanceof TicketsSection && $modx->resource->get('parent') == $section_root) {
          		if (!$modx->user->isMember(array('Group1','Group2')) && $modx->resource->get('createdby') != $modx->user->id) {
          			$modx->sendUnauthorizedPage();
          		}
          	}
          }
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5