germanydletest 457 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 (изменено) Сегодня обнаружил баг при использовании тега [xfinput_X] в addnews.tpl, само поле выводится в нужном месте, а "label" (название) данного поля выводится в теге {xfields} (где все остальные поля). Версия 11.1 тип поля галерея изображений. Изменено 29 сентября 2016 пользователем germanydletest Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 Теги {xfields} и [xfinput_X] абсолютно независимые теги. Тег [xfinput_X] выводит только поле редактирования. а все остальное пишется для него уже в шаблоне самостоятельно. Он для этого и предназначен, чтобы сделать свое собственное оформление добавления новости. А тег {xfields} для простого универсального вывода всех полей, где все уже оформлено в определенном порядке и с определенным форматированием кода. Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 457 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 Автор Не, вы не поняли, то что он придуман для того что бы самому его оформлять это понятно, вот код из addnews <article class="block story"> <h1 class="title h2">Добавить новость</h1> <ul class="ui-form"> <li class="form-group imp"> <label for="title">Заголовок</label> <input type="text" name="title" id="title" value="{title}" class="wide" required> </li> <li><label for="title">галерея изображений</label>[xfinput_img]</li> [urltag] <li class="form-group imp"> <label for="alt_name">URL новости</label> <input type="text" name="alt_name" id="alt_name" value="{alt-name}" class="wide"> </li> [/urltag] <li class="form-group imp"> <label for="category">Категория</label> {category} </li> <li class="form-group"> <label><a href="#" onclick="$('.addvote').toggle();return false;"><span class="plus_icon circle"><span>+</span></span> Добавить Опрос</a></label> </li> <li class="form-group addvote" style="display:none;"> <label for="vote_title" >Заголовок опроса</label> <input type="text" name="vote_title" value="{votetitle}" class="wide" /> </li> <li class="form-group addvote" style="display:none;"> <label for="frage" >Вопрос</label> <input type="text" name="frage" value="{frage}" class="wide" /> </li> <li class="form-group addvote" style="display:none;"> <label for="vote_body" >Список ответов</label> <textarea name="vote_body" rows="5" class="wide" placeholder="Каждая новая строка является новым вариантом ответа">{votebody}</textarea><br /><input type="checkbox" name="allow_m_vote" value="1" {allowmvote}> Разрешить выбор нескольких вариантов </li> <li class="form-group imp"> <label for="short_story">Краткое описание</label> [not-wysywyg] <div class="bb-editor"> {bbcode} <textarea name="short_story" id="short_story" onfocus="setFieldName(this.name)" rows="8" class="wide" required>{short-story}</textarea> </div> [/not-wysywyg] {shortarea} </li> <li class="form-group"> <label for="full_story">Полное описание</label> [not-wysywyg] <div class="bb-editor"> {bbcode} <textarea name="full_story" id="full_story" onfocus="setFieldName(this.name)" rows="18" class="wide" >{full-story}</textarea> </div> [/not-wysywyg] {fullarea} </li> <li class="form-group"> <table style="width:100%"> {xfields} </table> </li> <li class="form-group"> <label for="alt_name">Ключевые слова</label> <input placeholder="Вводите через запятую" type="text" name="tags" id="tags" value="{tags}" maxlength="150" autocomplete="off" class="wide"> </li> [group=1,2] <li class="form-group"> <div class="admin_checkboxs">{admintag}</div> </li> [/group] [recaptcha] <li class="form-group">{recaptcha}</li> [/recaptcha] [question] <li class="form-group"> <label for="question_answer">{question}</label> <input placeholder="Введите ответ" type="text" name="question_answer" id="question_answer" class="wide" required> </li> [/question] </ul> <p style="margin: 20px 0 0 0;" class="grey"><span style="color: #e85319">*</span> — поля отмеченные звездочкой обязательны для заполнения.</p> <div class="form_submit"> [sec_code] <div class="c-capcha"> {sec_code} <input placeholder="Повторите код" title="Введите код указанный на картинке" type="text" name="sec_code" id="sec_code" required> </div> [/sec_code] <button class="btn" type="submit" name="add"><b>Отправить</b></button> <button id="add_news_preview" class="btn" onclick="preview()" type="submit" name="nview"><b>Предпросмотр</b></button> </div> </article> галерея изображений - это и есть доп поле выведенное отдельно, в админке оно называется "галерея", теперь смотрим на тег {xfields} и видим, что название данного поля вывелось в данном теге Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 Я вас понял. Не может быть двух одинаковых полей в одной форме. Вы одновременно выводите одно и тоже поле в форме дважды. Это нарушение всех стандартов HTML. Вывод поля должен быть один раз в форме, а не несколько. Поэтому либо {xfields} либо [xfinput_X] нужно использовать. Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 457 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 (изменено) Автор 6 минут назад, celsoft сказал: Я вас понял. Не может быть двух одинаковых полей в одной форме. Вы одновременно выводите одно и тоже поле в форме. Это нарушение всех стандартов HTML. Вывод поля должен быть один раз в форме, а не несколько. Поэтому либо {xfields} либо [xfinput_X] нужно использовать. то есть если я хочу отделить только 1 поле от остальной массы, то мне нужно все поля выводить через [xfinput_X]? Изменено 29 сентября 2016 пользователем germanydletest Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 3 минуты назад, germanydletest сказал: то есть если я хочу отделить только 1 поля от остальной массы, то мне нужно все поля выводить через [xfinput_X]? Безусловно. Эти теги между собой независимы. Один выводит все поля без исключения, а второй только конкретное поле. Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 457 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 Автор тогда всё ещё грустнее чем я думал, поскольку настройка отображения доп. полей только при выборе определённой категории с тегом [xfinput_X] не работает, она работает только с {xfields}... Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 (изменено) 44 минуты назад, germanydletest сказал: тогда всё ещё грустнее чем я думал, поскольку настройка отображения доп. полей только при выборе определённой категории с тегом [xfinput_X] не работает, она работает только с {xfields}... Ага, я делал display:none для ненужных полей, с помощью JS определяя какая категория выбрана. Лучше так, чем никак Изменено 29 сентября 2016 пользователем webair Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 457 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 Автор 19 минут назад, webair сказал: Ага, я делал display:none для ненужных полей, с помощью JS определяя какая категория выбрана. Лучше так, чем никак кодом не поделишься? Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 29 сентября 2016 Рассказать Опубликовано: 29 сентября 2016 1 час назад, germanydletest сказал: кодом не поделишься? Через пару часов, когда до домашнего компьютера доберусь Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 30 сентября 2016 Рассказать Опубликовано: 30 сентября 2016 14 часа назад, germanydletest сказал: тогда всё ещё грустнее чем я думал, поскольку настройка отображения доп. полей только при выборе определённой категории с тегом [xfinput_X] не работает, она работает только с {xfields}... Добавляйте для блока который нужно скрывать id="xfield_holder_X" где X имя поля, и все будет скрываться и показываться. тег [xfinput_X] исключительно для ручного вывода оформления полей. Всю структуру нужно прописывать вручную. Он для этого и нужен. А пример сруктуры вы можете посмотреть из тега {xfields} который и выводит все автоматом. Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 457 Опубликовано: 30 сентября 2016 Рассказать Опубликовано: 30 сентября 2016 Автор 12 часа назад, webair сказал: Через пару часов, когда до домашнего компьютера доберусь всё ещё жду Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 30 сентября 2016 Рассказать Опубликовано: 30 сентября 2016 function GetSelectElem() { // получаем индекс выбранного элемента var selectid = document.getElementById("category").options.selectedIndex; // selectval будет соответствовать id категории var selectval= document.getElementById("category").options[selectid].value; if (selectval == 1){ "display:block или show() нужного элемента" } else { "display:none или hide() нужного элемента" } if (selectval == 2){ "display:block или show() нужного элемента" } else { "display:none или hide() нужного элемента" } } В /engine/inс/addnews.php найти onchange="onCategoryChange(this)" заменить на onchange="GetSelectElem()" Я группировал inputы в divы и скрывал/раскрывал соответствующие divы 1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 30 сентября 2016 Рассказать Опубликовано: 30 сентября 2016 20 минут назад, webair сказал: В /engine/inс/addnews.php Это файл админпанели, к добавлению на сайте и к шаблонам отношения не имеет. 21 минуту назад, webair сказал: найти onchange="onCategoryChange(this)" заменить на onchange="GetSelectElem()" Я группировал inputы в divы и скрывал/раскрывал соответствующие divы Зачем править вообще скрипты? Выше я указал какой ID нужно указывать в шаблоне для блока элементов который нужно скрывать или показывать при выборе категорий. Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 30 сентября 2016 Рассказать Опубликовано: 30 сентября 2016 (изменено) 1 час назад, celsoft сказал: Это файл админпанели, к добавлению на сайте и к шаблонам отношения не имеет. Зачем править вообще скрипты? Выше я указал какой ID нужно указывать в шаблоне для блока элементов который нужно скрывать или показывать при выборе категорий. Да, спутал. Нужно конечно же файл добавления с сайта, а не с админпанели. На счет скриптов... Ну не знаю, кому как удобно. Я кастомизировал еще глубже, поэтому мне надо было править JS скрипты (автоматический выбор категории при переходе по ссылке типа /addnews.html?cat=1 и т.д.). germanydletest попросил поделиться, я поделился своими наработками Изменено 30 сентября 2016 пользователем webair Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.