31.03.15, 21:10
0 комментарий
  DLE Хаки

Поддержка условий в шаблонах новостей для DLE

Простой, но многофункциональный хак, позволяющий выводить заданный текст в зависимости от значения полей новости или доп. полей xfields.

Данный хак предназначен для работы только в шаблонах короткой новости, полной новости и в шаблонах тегов custom.


Поддерживаемые поля

id - порядковый номер новости (число)
autor - имя автора новости (текст)
date - дата публикации (число, дата в unix формате - 1384805563)
short_story - текст короткой новости (текст)
full_story - в шаблоне короткой новости это количество символов в полном описании. В шаблоне полной новости - сам текст. (число/текст)
title - текст заголовка (текст)
descr - метатег описания (текст)
keywords - метатег "ключевые слова" (текст)
category - список категорий в которых отмечена новость (в старых версиях только первый ID из списка) (текст)
alt_name - заголовок на латинице, для формирования адреса страницы. (текст)
comm_num - количество комментариев (число)
allow_comm - комментарии разрешены (число, 1/0)
allow_main - новость публикуется на главной (число, 1/0)
approve - новость прошла модерацию (число, 1/0)
fixed - новость зафиксирована (число, 1/0)
symbol - символьный код (текст)
tags - первый тег из списка тегов (текст)
news_read - количество просмотров (число)
allow_rate - рейтинг разрешен (число, 1/0)
rating - рейтинг статьи, сумма всех значений (число)
vote_num - количество проголосовавших в рейтинге (число)
votes - голосования в новости (число, 1/0)
view_edit - отображать причину редактирования (число, 1/0)
disable_index - запретить индексацию (число, 1/0)
editdate - дата редактирования (число, дата в unix формате - 1384805563)
editor - имя редактора (текст)
reason - причина редактирования (текст)
user_id - ID автора публикации (число)
xfvalue_xxx - значение доп. поля


Разумеется для некоторых из этих тегов уже предусмотрены фиксированные теги условий, такие как: [fixed]...[/fixed], [comments]...[/comments], [poll]...[/poll], [xfgiven_xxx]...[/xfgiven_xxx] и др.
Но во первых они прописаны не для всех значений и главное - не обладают той гибкостью, что предоставляет данных хак. В чем вы можете убиться посмотрев примеры ниже.


Примеры использования

[if id>1000]...[/if] - выведет текст для всех новостей, ID которых строго больше 1000, т.е. 1001, 1002 и т.д.
[if comm_num<=10]мало комментариев[/if] - выведет текст "мало комментариев", если в новости 10 или меньше комментариев
[if tags="2015"]Все фильмы 2015 года[/if] - выведет текст "Все фильмы 2015 года", если в новости в поле тегов введено слово "2015"
Но в то же время, если вы используете поле tags только для указания года, то можно использовать так:
[if tags=500]дорогой товар[/if] - если значение доп.поля `cost` больше или равно 500, то будет отображен текст внутри тегов
[if xfvalue_brand='Nokia']телефон нокия[/if] - если в доп.поле `brand` укано значение "Nokia", то будет выведен текст внутри тегов
[if xfvalue_video!~'vk.com/video_ext']нету видео с вконтакта[/if] - выведет текст, если в содержимом поля НЕ встречается указанный текст

Диапазон
[if 5005000]...[/if] - будет отображен текст, если значение поля в пределах 500 - 4999 включительно
[if 100010000]...[/if] - будет выведен текст внутри тегов, если у новости количество просмотров в пределах 1000 - 9999 включительно



Перечень поддерживаемых операций

xy - строго больше
x>=y - больше или равно
x<=y - меньше или равно
x=y - строго равно
x!=y - не равно
x~y - строка Y встречается в поле X
x!~y - строка Y не встречается в поле X
y1y2 - диапазон
где:
x - имя поля или доп.поля
y - значение, числовое или текстовое
y1 и y2 - нижняя и верхняя границы для фильтра по диапазону





Шаблон
<p style="font-size: 14px;color:#c33;padding: 7px;">
	[if xfvalue_cost<500]Бюджетный телефон, лозунг - спасибо что работает[/if]
	[if 500<xfvalue_cost>1200]Шарманка среднего класса[/if]
	[if 1200<xfvalue_cost>5000]Приблатненный гаджет[/if]
	[if xfvalue_cost>=5000]Звонилка-понторезка[/if]
</p>

[if xfvalue_brand='nokia']<div class="brand_descr"><b>Нокия</b> &mdash; финская транснациональная компания, производитель телекоммуникационного оборудования для мобильных, фиксированных, широкополосных и IP-сетей, разработчик картографического сервиса here.com, бывший производитель смартфонов и мобильных телефонов.</div>[/if]
[if xfvalue_brand='htc']<div class="brand_descr">HTC &mdash; тайваньский производитель смартфонов и планшетов. Компания изначально выпускала смартфоны в основном на базе мобильной операционной системы Windows Mobile от Microsoft, но в 2009 году начала выпускать большинство устройств на платформе Android, а с 2010 года и на платформе Windows Phone.</div>[/if]
[if xfvalue_brand='sony']<div class="brand_descr">Сони &mdash; японская транснациональная корпорация с штаб-квартирой в Токио, возникшая 7 мая 1946 года.</div>[/if]
[if xfvalue_brand='samsung']<div class="brand_descr">Самсунг &mdash; самсунь, самвынь</div>[/if]
[if xfvalue_brand='']<div class="brand_descr">Безымянная шарманка</div>[/if]



Версия DLE: Любая
Автор: Sander

СКАЧАТЬ

Вес файла
1.75 Kb

Реклама

Напишите своё мнение

  • acuteaggressiveair_kissangel
    badbbbeachbeee
    biggrinbig_bossblumblush
    boastbombboredombye
    clappingcraycrazycurtsey
    dancedashdeclarediablo
    diroldon-t_mentiondownloaddrinks
    first_moveflirtfocusfool
    friendsgive_heartgive_rosegood
    hangheartheathelp
    hihunterhystericireful
    kingkisslaughlazy
    lolmail1mambaman_in_love
    mdamega_shokmoilmosking
    musicneanegativenew_russian
    okon_the_quietpardonparting
    partypilotpioneerpleasantry
    popcormpranksterprevedpunish
    roflrtfmrussiansad
    sarcasticscarescratchsearch
    secretsensoredshokshout
    slowsmilesmokesoldier
    soldier_girlsorryspitefulspruce_up
    stinkersuicidesunsuperstition
    swoonteasetenderthanks
    thisto_pick_ones_noseto_take_umbragetreaten
    umnikunknwvampirevava
    victorywackowhistlewink
    wizardyahooyesyu
    e101e102e103e104
    e105e106e107e108
    e109e110e111e112
    e113e114e115e116
    e117e118e119e120
    e121e122e123e124
    e125e126e127e128
    e129e130e131e132
    e133e134e135e136
    e137e138e139e140
    e141e142e143e144
    e145e146e147e148
    e149e150e151e152
    e153e154e155e156
    e157e158e159e160
    e161e162e163e164
    e165e166e167e168
    e169e170e171e172
    e173e174e175e176
    e177e178e179e180
    e181e182e183e184
    e185e186e187e188
    e189e190e191e192
    e193e194e195e196
    e197e198e199e200
    e201e202e203e204