Мы в твиттере Мы в телеграме!

Провеббер » Платное » Модули и скрипты » Расширение функционала шаблонизатора новостей. Условия IF

Набор в команду! Ведется набор в команду, для наполнения сайта новым, интересным контентом. Если у тебя есть предложения, свободное время, ты обладаешь интересным контентом, и хочешь поделиться с другими?
Обращайся к нам в ЛС группы Вконтакте.

Расширение функционала шаблонизатора новостей. Условия IF

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Расширение функционала шаблонизатора новостей. Условия IF.

Расширение функционала шаблонизатора новостей. Условия IF

Простой, но многофункциональный хак, позволяющий выводить заданный текст в зависимости от значения полей новости или доп. полей 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<2000]ретро[/if] - если год выпуска 1999 и младше, то будет выведен текст "ретро"
[if reason!='']есть причина редактирования[/if] - выведет текст внутри тегов, если есть причина редактирования.
[if reason='']поле причины редактирования не заполнено[/if] - выведет текст внутри тегов, если причина редактирования не указана

Доп.поля xfields
[if xfvalue_cost>=500]дорогой товар[/if] - если значение доп.поля `cost` больше или равно 500, то будет отображен текст внутри тегов
[if xfvalue_brand='Nokia']телефон нокия[/if] - если в доп.поле `brand` укано значение "Nokia", то будет выведен текст внутри тегов

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


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

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


[Демо]

Смотреть демо


[Версия DLE]
любая

[Контакты]
ICQ: 404-037-556
Skype: Sander8804
E-Mail: [email protected]

[Покупка]
Стоимость хака - 2wmz
Приобрести модуль можно в автоматическом режиме

С уважением,
Олег Александрович a.k.a. Sander


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


+15
Просмотры: 5 017 :: Комментарии (17) :: :: Нужна помощь? Задайте вопрос на форуме ::
Теги: Sander, TPL
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1pavel31

  • 16 февраля 2015 15:26
  • Регистрация: 8.11.2011
  • Был(а) онлайн: 16.03.2022
  • Комментариев: 19
  • 0
Sander объясните в чем здесь плюс? что-то я не пойму, что меняет Ваш хак??

#2Sander

  • 16 февраля 2015 16:23
  • Регистрация: 19.02.2010
  • Был(а) онлайн: 20.04.2021
  • Комментариев: 327
  • +2
pavel31,
он ничего не меняет. Он добавляет широчайший возможности по управлению контентом в зависимости от выводимых данных.
Прочитайте подробно примеры, посмотрите демо и код шаблона демо (в спойлере).
В действительности примеров может быть бесконечное множество.

Вот например тег
[comments]текст[/comments] - Выводят текст, заключенный в них, если у данной публикации присутствуют комментарии на сайте.

А что делать, если хочется выводить стикер "HOT" если в новости более 50 комментариев. Хак это может:
[if comm_num>50]<img src="hot.png" />[/if]

То же самое касается рейтинга и количества просмотров.

Я уж молчу о том, что можно сделать индивидуальное оформление короткой новости для каждой публикации основываясь на значении в доп.поле.
[if xfvalue_template='dark']шаблон 1, темный[/if]
[if xfvalue_template='red']шаблон 2, красный[/if]
[if xfvalue_template='']шаблон 3, по умолчанию, если поле не задано[/if]


Или нужно скрывать имя автора новости если его имя "Admin"
[if autor!='Admin'] Автор: {author}[/if]

--------------------

#3MStyle

  • 16 февраля 2015 17:27
  • Регистрация: 24.06.2011
  • Был(а) онлайн: 13.05.2024
  • Комментариев: 24
  • 0
А что за модуль магазина стоит на demo ?

#4Sander

  • 16 февраля 2015 23:09
  • Регистрация: 19.02.2010
  • Был(а) онлайн: 20.04.2021
  • Комментариев: 327
  • 0
Функционал еще немного расширен.
Добавлены операции проверки вхождения строки.
[if short_story~'vk.com/video_ext']есть видео с вконтакта[/if] - выведет текст, если в содержимом поля встречается указанный текст[if xfvalue_video!~'vk.com/video_ext']нету видео с вконтакта[/if] - выведет текст, если в содержимом поля НЕ встречается указанный текст


MStyle, индивидуальная разработка под заказ.

--------------------

#5oazet

  • 17 февраля 2015 10:02
  • Регистрация: 17.02.2012
  • Был(а) онлайн: 20.09.2022
  • Комментариев: 33
  • 0
Прикольно!
Хотя для кого то проще будет подключить PHP в tpl и делать то же самое в файлах шаблона на чистом PHP. )))

#6mvg

  • 17 февраля 2015 13:51
  • Регистрация: 7.11.2010
  • Был(а) онлайн: 10.01.2017
  • Комментариев: 146
  • 0
Вс
Цитата: Sander
Функционал еще немного расширен.
Добавлены операции проверки вхождения строки.
[if short_story~'vk.com/video_ext']есть видео с вконтакта[/if] - выведет текст, если в содержимом поля встречается указанный текст[if xfvalue_video!~'vk.com/video_ext']нету видео с вконтакта[/if] - выведет текст, если в содержимом поля НЕ встречается указанный текс


Все равно те же яйца что и со стандартным шаблонизатором дле, вывод доп-полей нужно выводить отдельными тегами.

Вот пример как нужно выводить доп-поля.. Шаблонизатор смарти без индивидуальных тегов http://pastebin.ru/YR9k6U26

--------------------

#7Sander

  • 17 февраля 2015 20:00
  • Регистрация: 19.02.2010
  • Был(а) онлайн: 20.04.2021
  • Комментариев: 327
  • 0
mvg,
К чему ваш комментарий?
Сначала адаптируйте smarty под DLE, а потом можете упрекать меня в том, что я пытаюсь сделать стандартный шаблонизатор чуть удобнее.

oazet,
Я бы не рекомендовал использовать тот способ. Если вам сколь-нибудь важна безопасность вашего сайта.

--------------------

#8mvg

  • 18 февраля 2015 04:09
  • Регистрация: 7.11.2010
  • Был(а) онлайн: 10.01.2017
  • Комментариев: 146
  • 0
Цитата: Sander
К чему ваш комментарий?


я тому что не изобретайте велосипед к говну. Дле изачально было говняцким движком. Все уже перешли ООП и MVC а софт медия еще досих пор говнокодит стандартом 2004 года. Хотя бы шаблонизатор сменили.

--------------------

#9bek94

  • 18 февраля 2015 09:12
  • Регистрация: 20.01.2013
  • Был(а) онлайн: 19.09.2018
  • Комментариев: 15
  • 0
Sander,
пример сейчас:
http://site.ru/категория/подкатегория/id-имя новости.html

может:

http://site.ru/en/категория/подкатегория/id-имя новости.html

http://site.ru/ru/категория/подкатегория/id-имя новости.html


Sander,

Я следует отдавать предпочтение так

/категория/подкатегория/id-имя новости.html

может и как ?

#10Artyom91

  • 18 февраля 2015 10:41
  • Регистрация: 8.01.2013
  • Был(а) онлайн: 13.12.2017
  • Комментариев: 58
  • 0
Да уж, Сандер как всегда на высоте, dle очень шаблонизирован, но таких условий там точно не хватает, например, у мне нужно было сделать: вывести на сайте ссылку или полностью html код картинки, если например выбрано дополнительное поле "HD" - качество фильма. Конечно такое условие стандартными методами не реализовать, а теперь можно, добавив такое условие. Супер. Олегу респект.

#11mvg

  • 19 февраля 2015 09:39
  • Регистрация: 7.11.2010
  • Был(а) онлайн: 10.01.2017
  • Комментариев: 146
  • 0
Artyom91, нут так у rezer давно выпустил модуль дле доп-полей с расширенным функционалом. вы отстаете.

--------------------

#12MSW

  • 19 февраля 2015 10:29
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 2.01.2020
  • Комментариев: 153
  • 0
хороший хак, для ленивых и тех кто не освоил функционал инклудов в шаблоны дле...
например: [if id>1000]...[/if]
заменяется запросто на:
создаём файл: /engine/modules/template/if_id.php
с содержимым:
<?php
if($id>$num) {
echo "вывод текста если айди новости больше 1000";
}


и в шаблоне подключаем:
{include file="engine/modules/template/if_id.php?id={news-id}&num=1000"}

и т.д. расширить функционал применения можно как угодно

--------------------

#13Sander

  • 19 февраля 2015 12:01
  • Регистрация: 19.02.2010
  • Был(а) онлайн: 20.04.2021
  • Комментариев: 327
  • +1
mvg,
я тому что не изобретайте велосипед к говну

Этим говном (DLE) пользуются тысячи человек. Что-то мне подсказывает, что этим "говном" вы так же пользуетесь. А насчет велосипеда - вообще не в тему. Хак от rezer-а выполняет лишь ~20% от функционала моего хака.

Все уже перешли ООП и MVC а софт медия еще досих пор говнокодит

Какое это имеет отношение к моему хаку? Подобные отзывы больше уместны на dle-news.ru

bek94,
Вы, похоже, темой ошиблись.

Artyom91,
Спасибо.

MSW,
Не самое удобное решение. Для каждого условия нужно будет делать отдельный php файл, или добавлять дополнительный параметр с указанием шаблона. Да и редактировать шаблон будет совсем неудобно. Кусочек тут, кусочек там и все в разных местах....
Ну и знания PHP потребуются чуть больше чем поверхностные.

--------------------

#14Morse

  • 20 февраля 2015 14:06
  • Регистрация: 28.09.2010
  • Был(а) онлайн: 18.11.2019
  • Комментариев: 18
  • 0
Sander, не воспринимайте критику разных бездарей, которые и одной строчки своей написать не могут. Хак отличный и главное (!) нужный, решает очень много задач.

P.s. вот модуль магазинчика на demo точно бы прикупил, если есть вариантик, буду рад услышать цену в лычку.

#15mvg

  • 20 февраля 2015 21:15
  • Регистрация: 7.11.2010
  • Был(а) онлайн: 10.01.2017
  • Комментариев: 146
  • -6
Цитата: Sander
Что-то мне подсказывает, что этим "говном" вы так же пользуетесь.


Упаси бог что бы я с ним когда нибудь столкнулся. wacko

--------------------

#16Svezachok

  • 2 марта 2015 15:40
  • Регистрация: 5.11.2010
  • Был(а) онлайн: 20.05.2020
  • Комментариев: 24
  • 0
хак просто шикарен, пару лет назад искал такой хак , но не нашел и реализовал свои потребности при помощи некоторых правок движка. С этим хаком шаблонизация и уникализация сайта на DLE выходит на новый уровень, Sander как всегда на высоте, пользуюсь многими модулями его разработки.

#17Jmagaths

  • 21 апреля 2015 21:49
  • Регистрация: 8.09.2014
  • Был(а) онлайн: 25.09.2015
  • Комментариев: 12
  • 0
С такой ценой 2 доллара, можно было и благотварительное пожертвование сделать уже, так наверное и выгоднее было бы, не думаю что 2 доллара что-то изменят в жизни человека, так только, на этанол в аптеке купить...

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Декабрь 2024 (10)
Ноябрь 2024 (9)
Октябрь 2024 (169)
Сентябрь 2024 (13)
Август 2024 (60)
Июль 2024 (12)

Последние комментарии: