Добавление тегов с фронта через форму Tickets

Здравствуйте. Не судите строго, пишу скорее как памятку для себя, но может быть кому пригодится.
Простое решение для добавления тегов с фронта в форму 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>
Борис И
28 ноября 2015, 06:06
modx.pro
21
3 282
+4

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

Павел Гвоздь
28 ноября 2015, 09:56
0
Василий, помоему надо создать раздел «Мелочи для новичков», который не будет публиковать записи на главную сайта?)
    Максим Кузнецов
    28 ноября 2015, 12:40
    0
    Имхо, формировать такой раздел здесь — не очень обдуманно, т.к. при отображении лентой и большом количестве «мелочей», все это превратится в свалку.

    Может быть, это еще будет востребовано на docs.modx.pro — и то спорно, разве что навигационный блок переоформить.
    Spirit_Ninja
    09 декабря 2015, 17:09
    0
    Чувак, спасибо! Это как раз для меня, респект. Попробую на своем сайте.
      brioni
      21 февраля 2016, 01:18
      0
      Можно сделать проще:
      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
        Борис И
        21 февраля 2016, 08:58
        0
        У Вас работает, форма Tickets при создании тикета (ресурса) с фронта, позволяет выбрать и добавить теги?
          brioni
          21 февраля 2016, 12:19
          0
          пособом указанным выше — да. По другому не пробовал
            Abu
            Abu
            29 июля 2017, 21:56
            0
            Не понятно, как она может работать? Как передаются теги в форме, как они подтягиваются без js?
        Spirit_Ninja
        08 января 2017, 15:57
        0
        Получилось! Огонь!))
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          8