<optiongroup> в секциях Tickets
Приветствую.
Подскажите как сделать чтобы все секции делились на разделы с помощью тегов в форме добавления тикетов.
В админке выглядит примерно так:
Ресурс (категория)
Раздел с тикетами (подкатегория)
Раздел с тикетами (подкатегория)
Раздел с тикетами (подкатегория)
Ресурс (категория)
Раздел с тикетами (подкатегория)
Раздел с тикетами (подкатегория)
Раздел с тикетами (подкатегория)
Соответственно категории должны быть обернуты в в селекте разделов в форме добавления тикетов.
Подскажите как сделать чтобы все секции делились на разделы с помощью тегов в форме добавления тикетов.
В админке выглядит примерно так:
Ресурс (категория)
Раздел с тикетами (подкатегория)
Раздел с тикетами (подкатегория)
Раздел с тикетами (подкатегория)
Ресурс (категория)
Раздел с тикетами (подкатегория)
Раздел с тикетами (подкатегория)
Раздел с тикетами (подкатегория)
Соответственно категории должны быть обернуты в в селекте разделов в форме добавления тикетов.
Комментарии: 8
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
1. форму для публикации тиккета выводим так (понятно, что используемые и необходимые поля у каждого свои )
2. сниппет [!get?]]
3. часть шаблона tpl.Tickets.form.create1 отвечающая за выбор категории (рекомендую изначально сделать копию оригинального шаблона (например тот же tpl.Tickets.form.create1) и уже туда добавлять код)
Принцип работы
У сниппета TicketForm есть возможность выбора родителя откуда выводить: &parents Вот туда мы будем подставлять значение из выбранного селекта (категории). Мы выбираем селект (категории — выводимый с помощью pdoMenu), форма отправляется по выбору селекта (onchange=«if (this.selectedIndex) this.form.submit ()»). Сниппет [[!get?]] ловит отправленное значение (id) формы (id категории), по выбранному нами селекту (категории) и подставляет его в TicketForm &parents=`[[!get?]]`. Так, как после автоматической отправки формы, по выбору селекта страница перезагружается и он сбрасывается, то скриптом $("#parentcat [value='[[!get?]]']").attr(«selected», «selected»); устанавливаем выбранное значение, чтобы не путать пользователя.
Как следует, не потестил, но пока вроде работает.
К сожалению это всего лишь костыли и решение достаточно кривое, но как сделать более красиво я не знаю. Нужно просить у Василия, и если он сочтет нужным и выкроит время, то будет счастье и появится такая возможность из коробки.
Приветствуются любые правки, переделки и оптимизация.
Секции вызываю как у вас, через pdomenu:
Чанк Sections:
Структура выглядит так:
При этом при редактировании ресурса показывается selected.
При этом использовался сниппет UltimateParent
Есть html-кусок в чанке создания тикета для TicketForm:
И сниппет getTv, который подцепляет возможные значения tv-поля:
— который формиует option поля. Но TicketForm не воспринимает выбранное значение при добавление тикета и просит заполнить соответствующее поле. Подскажите, пожалуйста, в чем может быть причина?
У меня в форме есть доп. поля (tv, например поле model ) которые пользователь заполняет сам, я их не подцепляю.
Вот пример вызова, обратите внимание на &allowedFields=`longtitle,fullname,model,introtext,avtor`
В шаблоне формы tpl.Tickets.form.create1 участок отвечающий за model. Сделал, абсолютно также как остальные стандартные поля.
Ну и добавил подпись в словарь.
Все работает и введенные поля (tv) успешно отправляет.
И еще, если не получается решить простым способом, попробуйте сделать ваш select необязательным полем, создайте скрытый input и подставляйте выбранное значение из select яваскриптом в этот input, а его уже и отправляйте. Сам не пробовал, но должно получится. В данном случае, какая разница, заполнил поле пользователь или скрипт.
По поводу вашего кода — в том то и соль, что select — не input и, видимо, обрабатывается иначе.