Название: Раздельные доп поля, для категорий в addnews.tpl
Автор: Georka
CMS: DLE 10.6
Описание: Привожу пример, как разделить доп поля категорий в addnews.tpl
В общем по умолчанию в addnews.tpl выводятся все доп. поля которые мы создали. Не смотря на то, к каким категориям мы их отнесли.
А что если мы создали много категорий и хотим видеть к каждой категории свои доп поля?
Например: у нас 2 категории: Игры и Фильмы. И 2 доп поля: Жанр и Системные требования.
Не логично ведь видеть все поля до выбора категории? Но они все равно отображаются! И это не кайф!
Для того чтобы у нас отображались доп. поля после выбора категории и в нужном порядке относительности.
Есть решение:
— создаём нужные нам категории (если не созданны),
— создаём нужные нам доп поля и указываем, на каких категориях их отображать.
— далее открываем страницу добавления новости (в ПУ)
— жмём CTRL + U (открываем исходный текст)
— ищём скрипт с таким началом:
<script type="text/javascript">
function ShowOrHideEx(id, show) {
— в нём перечислены все условия для текущих доп полей которые мы указали при создании.
— копируем его полностью! и вставляем вместо {xfields}
— далее, снова в исходном тексте добавления новости, ищем начало ваших доп полей.
— Первая строка которой, примерно выглядит так:
<div id="xfield_holder_[color=#FF6600]название поля[/color]" class="form-group" uid="essential" >
<label class="control-label col-md-2">[color=#FF6600]Описание поля[/color]:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[[color=#FF6600]название поля[/color]]" id="xf_image" value="значение" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div>
— вставляем весь код, под скрипт, который мы установили (вместо {xfields})
— далее идёт третий кусок пирога, и вставляем его под второй кусок.
<script type="text/javascript">
onCategoryChange($('#category'));
</script>
В итоге: мы должны скопировать 3 куска кода, с исходного кода страница добавления в ПУ. И вставить их вместо {xfields}. Далее можете устанавливать свои стили для input’ов.
Чтоб не путаться, приведу пример 3-х кусков кода которые я вставил вместо {xfields} в addnews.tpl в необходимом порядке.
<script type="text/javascript">
function ShowOrHideEx(id, show) {
var item = null;
if (document.getElementById) {
item = document.getElementById(id);
} else if (document.all) {
item = document.all[id];
} else if (document.layers){
item = document.layers[id];
}
if (item && item.style) {
item.style.display = show ? "" : "none";
}
}
function onCategoryChange(obj) {
var value = $(obj).val();
if ($.isArray(value)) {
ShowOrHideEx("xfield_holder_date", jQuery.inArray('12', value) != -1 || jQuery.inArray('13', value) != -1 || jQuery.inArray('14', value) != -1 || jQuery.inArray('15', value) != -1 || jQuery.inArray('16', value) != -1 || jQuery.inArray('17', value) != -1 || jQuery.inArray('18', value) != -1 || jQuery.inArray('19', value) != -1 || jQuery.inArray('20', value) != -1 || jQuery.inArray('21', value) != -1 || jQuery.inArray('22', value) != -1 || jQuery.inArray('23', value) != -1 || jQuery.inArray('24', value) != -1 || jQuery.inArray('25', value) != -1 || jQuery.inArray('26', value) != -1 || jQuery.inArray('27', value) != -1 );
ShowOrHideEx("xfield_holder_creator", jQuery.inArray('12', value) != -1 || jQuery.inArray('13', value) != -1 || jQuery.inArray('14', value) != -1 || jQuery.inArray('15', value) != -1 || jQuery.inArray('16', value) != -1 || jQuery.inArray('17', value) != -1 || jQuery.inArray('18', value) != -1 || jQuery.inArray('19', value) != -1 || jQuery.inArray('20', value) != -1 || jQuery.inArray('21', value) != -1 || jQuery.inArray('22', value) != -1 || jQuery.inArray('23', value) != -1 || jQuery.inArray('24', value) != -1 || jQuery.inArray('25', value) != -1 || jQuery.inArray('26', value) != -1 || jQuery.inArray('27', value) != -1 );
ShowOrHideEx("xfield_holder_language", jQuery.inArray('12', value) != -1 || jQuery.inArray('13', value) != -1 || jQuery.inArray('14', value) != -1 || jQuery.inArray('15', value) != -1 || jQuery.inArray('16', value) != -1 || jQuery.inArray('17', value) != -1 || jQuery.inArray('18', value) != -1 || jQuery.inArray('19', value) != -1 || jQuery.inArray('20', value) != -1 || jQuery.inArray('21', value) != -1 || jQuery.inArray('22', value) != -1 || jQuery.inArray('23', value) != -1 || jQuery.inArray('24', value) != -1 || jQuery.inArray('25', value) != -1 || jQuery.inArray('26', value) != -1 || jQuery.inArray('27', value) != -1 );
ShowOrHideEx("xfield_holder_crack", jQuery.inArray('12', value) != -1 || jQuery.inArray('13', value) != -1 || jQuery.inArray('14', value) != -1 || jQuery.inArray('15', value) != -1 || jQuery.inArray('16', value) != -1 || jQuery.inArray('17', value) != -1 || jQuery.inArray('18', value) != -1 || jQuery.inArray('19', value) != -1 || jQuery.inArray('20', value) != -1 || jQuery.inArray('21', value) != -1 || jQuery.inArray('22', value) != -1 || jQuery.inArray('23', value) != -1 || jQuery.inArray('24', value) != -1 || jQuery.inArray('25', value) != -1 || jQuery.inArray('26', value) != -1 || jQuery.inArray('27', value) != -1 );
ShowOrHideEx("xfield_holder_os", jQuery.inArray('12', value) != -1 || jQuery.inArray('13', value) != -1 || jQuery.inArray('14', value) != -1 || jQuery.inArray('15', value) != -1 || jQuery.inArray('16', value) != -1 || jQuery.inArray('17', value) != -1 || jQuery.inArray('18', value) != -1 || jQuery.inArray('19', value) != -1 || jQuery.inArray('20', value) != -1 || jQuery.inArray('21', value) != -1 || jQuery.inArray('22', value) != -1 || jQuery.inArray('23', value) != -1 || jQuery.inArray('24', value) != -1 || jQuery.inArray('25', value) != -1 || jQuery.inArray('26', value) != -1 || jQuery.inArray('27', value) != -1 );
ShowOrHideEx("xfield_holder_cpuram", jQuery.inArray('12', value) != -1 || jQuery.inArray('13', value) != -1 || jQuery.inArray('14', value) != -1 || jQuery.inArray('15', value) != -1 || jQuery.inArray('16', value) != -1 || jQuery.inArray('17', value) != -1 || jQuery.inArray('18', value) != -1 || jQuery.inArray('19', value) != -1 || jQuery.inArray('20', value) != -1 || jQuery.inArray('21', value) != -1 || jQuery.inArray('22', value) != -1 || jQuery.inArray('23', value) != -1 || jQuery.inArray('24', value) != -1 || jQuery.inArray('25', value) != -1 || jQuery.inArray('26', value) != -1 || jQuery.inArray('27', value) != -1 );
ShowOrHideEx("xfield_holder_gc", jQuery.inArray('12', value) != -1 || jQuery.inArray('13', value) != -1 || jQuery.inArray('14', value) != -1 || jQuery.inArray('15', value) != -1 || jQuery.inArray('16', value) != -1 || jQuery.inArray('17', value) != -1 || jQuery.inArray('18', value) != -1 || jQuery.inArray('19', value) != -1 || jQuery.inArray('20', value) != -1 || jQuery.inArray('21', value) != -1 || jQuery.inArray('22', value) != -1 || jQuery.inArray('23', value) != -1 || jQuery.inArray('24', value) != -1 || jQuery.inArray('25', value) != -1 || jQuery.inArray('26', value) != -1 || jQuery.inArray('27', value) != -1 );
ShowOrHideEx("xfield_holder_space", jQuery.inArray('12', value) != -1 || jQuery.inArray('13', value) != -1 || jQuery.inArray('14', value) != -1 || jQuery.inArray('15', value) != -1 || jQuery.inArray('16', value) != -1 || jQuery.inArray('17', value) != -1 || jQuery.inArray('18', value) != -1 || jQuery.inArray('19', value) != -1 || jQuery.inArray('20', value) != -1 || jQuery.inArray('21', value) != -1 || jQuery.inArray('22', value) != -1 || jQuery.inArray('23', value) != -1 || jQuery.inArray('24', value) != -1 || jQuery.inArray('25', value) != -1 || jQuery.inArray('26', value) != -1 || jQuery.inArray('27', value) != -1 );
} else {
ShowOrHideEx("xfield_holder_date", value == 12||value==13||value==14||value==15||value==16||value==17||value==18||value==19||value==20||value==21||value==22||value==23||value==24||value==25||value==26||value==27);
ShowOrHideEx("xfield_holder_creator", value == 12||value==13||value==14||value==15||value==16||value==17||value==18||value==19||value==20||value==21||value==22||value==23||value==24||value==25||value==26||value==27);
ShowOrHideEx("xfield_holder_language", value == 12||value==13||value==14||value==15||value==16||value==17||value==18||value==19||value==20||value==21||value==22||value==23||value==24||value==25||value==26||value==27);
ShowOrHideEx("xfield_holder_crack", value == 12||value==13||value==14||value==15||value==16||value==17||value==18||value==19||value==20||value==21||value==22||value==23||value==24||value==25||value==26||value==27);
ShowOrHideEx("xfield_holder_os", value == 12||value==13||value==14||value==15||value==16||value==17||value==18||value==19||value==20||value==21||value==22||value==23||value==24||value==25||value==26||value==27);
ShowOrHideEx("xfield_holder_cpuram", value == 12||value==13||value==14||value==15||value==16||value==17||value==18||value==19||value==20||value==21||value==22||value==23||value==24||value==25||value==26||value==27);
ShowOrHideEx("xfield_holder_gc", value == 12||value==13||value==14||value==15||value==16||value==17||value==18||value==19||value==20||value==21||value==22||value==23||value==24||value==25||value==26||value==27);
ShowOrHideEx("xfield_holder_space", value == 12||value==13||value==14||value==15||value==16||value==17||value==18||value==19||value==20||value==21||value==22||value==23||value==24||value==25||value==26||value==27);
} }
</script>
<div id="xfield_holder_image" class="form-group" uid="essential" >
<label class="control-label col-md-2">Изображение:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[image]" id="xf_image" value="/templates/wsrf/images/none.jpg" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_link" class="form-group" uid="essential" >
<label class="control-label col-md-2">Скачать файл:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[link]" id="xf_link" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_date" class="form-group" uid="essential" >
<label class="control-label col-md-2">Дата выхода:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[date]" id="xf_date" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_creator" class="form-group" uid="essential" >
<label class="control-label col-md-2">Разработчик:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[creator]" id="xf_creator" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_language" class="form-group" uid="essential" >
<label class="control-label col-md-2">Язык:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[language]" id="xf_language" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_crack" class="form-group" uid="essential" >
<label class="control-label col-md-2">Лекарство:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[crack]" id="xf_crack" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_os" class="form-group" uid="essential" >
<label class="control-label col-md-2">Операционная система:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[os]" id="xf_os" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_cpuram" class="form-group" uid="essential" >
<label class="control-label col-md-2">CPU и RAM:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[cpuram]" id="xf_cpuram" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_gc" class="form-group" uid="essential" >
<label class="control-label col-md-2">Видеокарта:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[gc]" id="xf_gc" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div><div id="xfield_holder_space" class="form-group" uid="essential" >
<label class="control-label col-md-2">Место на диске:</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="xfield[space]" id="xf_space" value="" rel="essential" /> <span class="note large"> <i class="icon-warning-sign"></i> обязательно</span>
</div>
</div>
<script type="text/javascript">
<!--
onCategoryChange($('#category'));
// -->
</script>
Скриншоты