Добавление тегов с фронта через форму Tickets
Здравствуйте. Не судите строго, пишу скорее как памятку для себя, но может быть кому пригодится.
Простое решение для добавления тегов с фронта в форму Tickets. Теги через запятую, доп поле tags. Для тегов установлен tagLister. Вызов, в моем случае
Простое решение для добавления тегов с фронта в форму Tickets. Теги через запятую, доп поле tags. Для тегов установлен tagLister. Вызов, в моем случае
[[!TicketForm? &requiredFields=`longtitle,introtext` &allowedFields=`longtitle,fullname,description,avtor,image,tags` &redirectUnpublished=`171` &tplFormCreate=`tpl.Tickets.form.create`]]
В форму tpl.Tickets.form.create добавляем скрипт<script>
window.onload=function(){document.getElementById('tags').value='';}
function fcreateteg(value) {
var allteg=document.getElementById('tags').value+=value+',';
}
function delznak() {
var allteg = document.getElementById('tags').value;
var allteg=allteg.slice(0, -1);
document.getElementById('tags').value=allteg;
}
function fclear() {
document.getElementById('tags').value='';
}
</script>
и сами теги<div id="tagi" class="form-group">
<label for="ticket-sections">Теги к статье </label>
<select multiple size="10" name="tagi" class="form-control" id="ticket-sections" onchange="fcreateteg(value);">
[[tagLister? &parents=`ВАШИ id` &sortBy=`tag` &key=`[[*tag]]` &target=`8` &limit=`50` &tpl=`tegTplform` ]]
</select>
<span class="error"></span>
<label for="ticket-sections">Выбранные теги</label> <a class="tegiform" onclick="fclear();">очистить</a>
<input readonly type="text" class="form-control" placeholder="Выбранные теги" name="tags" value="" maxlength="350" id="tags"/>
</div>
в конце tpl.Tickets.form.create меняем код на <div class="col-md-6 move-right">
<input type="submit" class="btn btn-danger draft" name="draft" value="[[%ticket_draft]]" title="Ctrl + Shift + Enter" onclick="delznak();" />
<input type="button" class="btn btn-primary publish" name="publish" value="[[%ticket_publish]]" title="" onclick="delznak();" />
</div>
чанк tegTplform<option value="[[+tag]]">[[+tag]]</option>
Комментарии: 8
Василий, помоему надо создать раздел «Мелочи для новичков», который не будет публиковать записи на главную сайта?)
Имхо, формировать такой раздел здесь — не очень обдуманно, т.к. при отображении лентой и большом количестве «мелочей», все это превратится в свалку.
Может быть, это еще будет востребовано на docs.modx.pro — и то спорно, разве что навигационный блок переоформить.
Может быть, это еще будет востребовано на docs.modx.pro — и то спорно, разве что навигационный блок переоформить.
Чувак, спасибо! Это как раз для меня, респект. Попробую на своем сайте.
Можно сделать проще:
tpl.Tickets.form.create
tpl.Tickets.form.create
<div class="form-group">
<label for="ticket-img">Метки</label>
<input type="text" class="form-control" placeholder="Добавьте 3-5 ключевых слов через запятую" name="tags" value="" maxlength="50" id="ticket-tags"/>
<span class="error"></span>
</div>
Вывод тегов в любом месте, на любой странице[[tagLister? &target=`id страницы вывода результатов` &limit=`20` &parents=`[[*id]]` &altCls=`` &cls=`categories` &weightCls=`` &tpl=`tpl-post-tags`]]
tpl-post-tags стандартный<li><a class="[[+cls]]" href="[[+url]]">[[+tag]]</a></li>
Всё, что требуется — это установить GetPage & GetResource
У Вас работает, форма Tickets при создании тикета (ресурса) с фронта, позволяет выбрать и добавить теги?
пособом указанным выше — да. По другому не пробовал
Не понятно, как она может работать? Как передаются теги в форме, как они подтягиваются без js?
Получилось! Огонь!))
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.