Нестандартное использование дополнительных полей в DLE


Многие пользователи, не прочитав ни слова из документации DLE совершают такие элементарные ошибки.
Да даже если вы прочтёте эту документацию, я уверен что для большинства пользователей это грань, для них всё заканчивается, как там написано значит так это и работает. Нет! это далеко не предел. Сейчас речь идёт о так называемой функции "Дополнительное поле"

Что такое вообще это дополнительное поле?

Дополнительные поля, позволяют облегчать добавление информации на сайт, по умолчанию имеются только два поля, это краткое и полное описание новости. Однако вы можете создать и другие поля для ввода информации, например ссылку на источник или на программу, и настроив вывод поля всего один раз в шаблонах, отпадает необходимость постоянного форматирования часто повторяющегося ввода информации.
Так пишется в документации по DataLife Engine.
Но в этой статье я покажу вам несколько нестандартных способов использования этих самых полей.
Один из примеров я уже показывал - Делаем красивое выделение определенной статейки на сайте.
Но! Давайте сейчас разберемся с функционалом полей.

[xfvalue_поле]
Выводит дополнительное поле "поле" 
[xfgiven_поле] поле [/xfgiven_поле]
Выводит дополнительное поле "поле" если оно заполнено
[xfnotgiven_поле] текст [/xfnotgiven_поле]
Выводит содержимое если доп.поле не содержит информации
[xfvalue_поле limit="X2"]
Выводит только текст дополнительного поля без HTML форматирования, при этом сам текст сокращается до указанного X2 количества символов. При этом сокращение текста происходит до последнего логического слова. Например [xfvalue_test limit="50"] выведет только первые 50 символов значения дополнительного поля c именем test

[ifxfvalue tagname="tagvalue"] Текст [/ifxfvalue]
Выводят текст заключенный в них, если значение дополнительного поля совпадает с указанным. Где tagname это имя дополнительного поля, а tagvalue это его значение. (Вывод содержимого по значению поля)
[ifxfvalue tagname!="tagvalue"] Текст [/ifxfvalue]
Выводят текст заключенный в них, если значение поля не совпадает с указанным. Где tagname это имя дополнительного поля, аtagvalue это его значение.
[xfvalue_thumb_url_поле]
Данный тег может использоваться только если дополнительное поле имеет тип "Изображение". Тег выводит только URL для уменьшенной копии загруженного изображения, где "поле" это имя дополнительного поля
[xfvalue_image_url_поле]
Данный тег может использоваться только если дополнительное поле имеет тип "Изображение". Тег выводит только URL для полноразмерной картинки загруженного изображения, где "поле" это имя дополнительного поля
[xfvalue_поле image="Nr"]
Выводит загруженные для дополнительного поля с типом "Галерея" изображения, по отдельности. Где "поле" это имя дополнительного поля, а "Nr" это номер изображения из галереи. Например, при использовании [xfvalue_test image="2"] будет выведено изображение номер два, загруженное в дополнительное поле с именем "test".

[xfinput_поле]
Выводит ваше выбранное дополнительное поле в форме добавления новости в нужном вам месте, где "поле" это имя дополнительного поля для новостей Используется в шаблоне addnews.tpl
{xfields}
Вывод дополнительных полей при добавлении новости

И так. Надеюсь функционал вам понятен. Если вы новичок в этом, то советую вам создать несколько дополнительных полей и понять как они работают.

Теперь перейдем непосредственно к примерам.
Самый простой из них это ссылка в виде кнопки. У нас есть поле "link" - это простое поле с одной строкой.
[xfgiven_link] <a href="[xfvalue_link]" class="btn"> Кнопка </a> [/xfgiven_link]
[xfnotgiven_link] Ошибка! Поле не заполнено. [/xfnotgiven_link]
В данном случае у нас выводится кнопка с классом "btn" если дополнительное поле заполнено и содержит информацию(в данном случае ссылку)
Если поле не заполнено, то выводится содержимое тегов "xfnotgiven" т.е текст "Ошибка! Поле не заполнено."
Это простой пример использования доп. полей.

Доп поля можно вписывать в любую строку tpl файла. Не важно будь то это ссылка, будь это CSS класс или любой другой тег.
<div class="[xfvalue_panel]">
Содержимое shortstory.tpl
</div>


CSS код. (вписываем в любой css файл)
.black {background-color: #000;}
.red {background-color: #E9573F;}
.blue {background-color: #4A89DC;}
Поле должно иметь следующие параметры:

Таким образом, при публикации статьи нам будет доступен список оформления фона краткой новости. При выборе цвета, будет меняться фон.

Так же доп. поля можно использовать с хаком - Как использовать PHP скрипты в шаблоне?
<?php
echo "<h2>Заголовок</h2>";
echo "[xfvalue_php]";
?>
Вставляем в шаблон полной/краткой новости и вуоля! Поле и там будет работать.

Как скрыть определенное доп.поле от остальных пользователей и отображать определенной группе?
<script type="text/javascript">
$(document).ready(function() {
    if( dle_group != 1 ) {
        $('#xfield_holder_panel').hide(); 
    }
});
</script>
dle_group != 1- id группы которой доступно поле
$('#xfield_holder_panel').hide();- Название поля

Это вставляем в самое начало файла addnews.tpl и поле "panel" будет доступно только администрации

Надеюсь статья была полезна. Буду искать новые способы, и обязательно поделюсь с вами! wink
скачать dle 11.1смотреть фильмы бесплатно


dle доп поле формы use хак
Информация