К содержанию

Добавляемый тикет по умолчанию неопубликован

Всем привет. Хотел спросить, можно ли настроить сниппет [[!TicketForm]] таким образом, чтобы пользователь при создании тикета, создавал его неопубликованным, чтобы в дальнейшем администратор мог сам добавлять тикеты из админки?
Андрей Копп
Андрей Копп
04 марта 2016, 18:51
modx.pro
2 055
Реклама

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

Евгений Webinmd
Евгений Webinmd Эксперт
05 марта 2016, 00:54
Попробуйте скрытое поле published со значением 1
    Максим Кузнецов
    Максим Кузнецов Проверенный
    05 марта 2016, 01:33
    Тогда уж лучше со значением 0..)

    А вообще, скрытые поля на фронтэнде (при наличии вредительских желаний) легко отредактировать через консоль браузера, поэтому лучше решить задачу через плагин:

    <?php
    	switch ($modx->event->name) {
    		case 'OnDocFormSave':
    			//при желании можно дополнительно ограничить применение только для определенных шаблонов
    			if ($resource->get('template') == 8 && $mode == 'new' && $resource->class_key == "Ticket") {  
                 	  		 $resource->set('published', 0);
    			}
    			
    			$resource->save();
     
    		break;
    	}

    Вешать на событие OnDocFormSave, соответственно.
      Евгений Webinmd
      Евгений Webinmd Эксперт
      05 марта 2016, 01:40
      да, что-то я протупил с 1/0
    Василий Наумкин
    Василий Наумкин Администратор
    05 марта 2016, 07:39
    Там же при создании тикета 2 кнопки: опубликовать и в черновики.

    Первую можно просто убрать. Черновик — это и есть неопубликованный тикет.
      Роман Садоян
      Роман Садоян Проверенный
      05 марта 2016, 11:53
      Можно добавить TV поле — Опубликован или нет. (publihedTV)
      По умолчанию все тикеты публикуются (published = 1, а вот наше TV — publishedTV = 0), но не выводятся, т.к. идет фильтрация в pdoTools по TV полю.
      &where = `{"publishedTV":1}`
      pdoTools с этим отлично справляется.

      Почему так?
      При публикации тикета — на почту администрации приходит письмо о добавлении тикета, а вот если он его в черновики добавит — то ничего не придет.
      По мне так проще добавить 1 TV что бы определять опубликован тикет или нет, чем добавлять отправку почтовых уведомлений при публикации в черновик.
      Администратор откроет тикет — проверит содержимое и поставит Опубликован — Да (publishedTV = 1)
        Сергей Шлоков
        Сергей Шлоков Эксперт
        05 марта 2016, 13:49
        Администратор откроет тикет — проверит содержимое и поставит Опубликован — Да (publishedTV = 1)
        А если администратор забудет.
        Максим выше привел пример плагина, который решает все задачи — и уведомление высылается и тикет не опублинован.
          Роман Садоян
          Роман Садоян Проверенный
          05 марта 2016, 15:17
          и уведомление высылается и тикет не опублинован.
          Если это так то решение Максима безусловно лучше.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7