Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Модули для DLE » Отображать/скрывать контент в зависимости от значения дополнительного поля

Отображать/скрывать контент в зависимости от значения дополнительного поля


     24.04.2013    дополнительные поля, Условные операторы    Модули для DLE    11508    23 комментария

Краткая информация о модуле (хаке)

Автор: rashpil
Версия DLE: Все где есть доп поля
Контакты: 419694531
Цена: 100 рублей
Всем привет. Представляю вашему вниманию хак, который позволит отображать или скрывать контент в зависимости от значений дополнительных полей в новости.

Этот хак создаёт специальный тег, который похож на уже известные и очень удобные теги [aviable и [category, поэтому надеюсь, что так же с лёгкостью каждый владелец сайта на DLE, сможет использовать и теги этого хака.

Выглядит он следующим образом:

[if_xf field="variant" value="Пятый"] Текст или html код[/if_xf]

Где:
field – в него записывается имя дополнительного поля, значение которого проверяется.
value – это значение поля. В него может быть записано не одно, а сразу несколько значений, разделяя их знаком |.

Пример:

[if_xf field=" variant " value="Пятый|Шестой] *** Пятый или шестой *** [/if_xf]

И обратный ему тег:

[if_xf_hide field="variant" value="Шестой"] *** Текст или html код *** [/if_xf_hide]

Скроет текст, если в поле variant будет значение: «Шестой». Иначе, будет его отображать. В обратном, соответственно тоже можно использовать несколько значений. Блок будет скрыт, если хоть одно из них задано в дополнительном поле.

Пример:

[if_xf_hide field="variant" value="Пятый|Шестой"] *** Текст или html код *** [/if_xf_hide]

С помощью этого хака можно удобным образом структурировать шаблон новости, опираясь на значения доп полей. Что позволяет например скрыть плеер, только установив галочку в панели редактирования новости.
Правильно построить теги, я помогу после покупки бесплатно.

Например, можно создать дополнительное поле типа "Список" с 2-мя вариантами. И построить в шаблоне следующую конструкцию:

[if_xf field="newfield" value="Нет"] *** Текст 1 *** [/if_xf]
[if_xf field="newfield" value="Есть"] *** Текст 2 ****[/if_xf]

Такая конструкция позволит отображать Текст 1, в случае, если в дополнительном поле задать значение "Нет", а в случае, если выбрано значение "Есть", отобразит Текст 2. Получается что-то вроди конструкции if-else, или если быть точнее if-elseif. Конечно, можно использовать несколько тегов, настроенных на одно поле под ряд и увеличить блок проверки.

Если вам по прежнему не понятно, как можно пользоваться этим хаком, то советую посмотреть демонстрационное видео

И кстати, при покупке уточняйте, не используете ли UTF-8 версию движка

23 комментария

Lynat1k
Юзер

Lynat1k - 22 апреля 2013 12:30 -

купил хак, все отлично работает. спасибо автору=)
кстати по моей просьбе и возникла идея сделать этот хак.

nowheremany
Эксперт

nowheremany - 25 апреля 2013 09:45 -

Я конечно все понимаю, но за 3 строчки одинакового кода платить деньги? не перебор ли?

Благодарность принимаю тут Связь

KaiN_nRg
Юзер

KaiN_nRg - 25 апреля 2013 23:21 -

Супер, спасибо! Жду подобного функционала в blocks.pro. ПафНутиЙ ;-)

ПафНутиЙ
Админ

ПафНутиЙ - 26 апреля 2013 09:23 -

Пока не планирую подобного.

Каков вопрос - таков и ответ. Просто помните об этом.

Georka
Юзер

Georka - 24 июля 2021 13:07 -

https://dle-faq.ru/faq/questhacks/28218-kak-zastavit-ifxfvalue-rabotat-v-maintpl-.html
Это тоже самое? я смогу заставить ifxfvalue работать в main.tpl ???

deadluk
Юзер

deadluk - 25 июля 2021 07:48 -

В новых версиях движка и так должно работать, если речь про отображать данные из доп.полей

rashpil
Эксперт

rashpil - 26 апреля 2013 17:30 -

nowheremany, Да, там не сложная функция. Но цену определяет не только кол-во сил затраченных на создание, но ещё и возможность продать. Т.е. если что-то можно продать, зачем это отдавать бесплатно, даже если это пустяк?

KaiN_nRg, Если в поисках именно работы такого хака в модуле Блок Про, то его можно установить и в него и будет работать прекрасно. Ровно как и в кастом, похожие новости, популярные новости и прочие подобные модули. Если в поисках халявы (Что вообще факт сомнительный, ибо стоит всего стоху), то не советую. В чём смысл разработчикам что-то делать лишний раз, если это "что-то" уже сделал кто-то до них и их продукты без труда можно интегрировать.

Serik
Местный

Serik - 29 апреля 2013 16:46 -

Есть допполе выбора языка - русский или английский. Может ли модуль, опираясь на то что прописано в допполе, вывести мне картинку-флаг в определённое место в шортстори?

СПАСИБО надо тыкать в кнопку!

rashpil
Эксперт

rashpil - 30 апреля 2013 11:50 -

Да. Может

stanley
Юзер

stanley - 3 мая 2013 20:33 -

Классный хак!!! Спасибо автору за проделанную работу! Все прекрасно работает!!!

Ingmar
Юзер

Ingmar - 26 мая 2013 08:38 -

Автор в аське отвечает? Второй день пытаюсь достучаться, ноль эмоций.

ret
Юзер

ret - 8 июня 2013 11:34 -

Отличное решение. Спасибо автору!!!

Kane
Юзер

Kane - 9 июля 2013 13:03 -

Автор а у тебя есть современный метод связаться с тобой? Например скайп? Или хак уже не продается?

Kane
Юзер

Kane - 9 июля 2013 19:45 -

Или мыло?

rashpil
Эксперт

rashpil - 9 июля 2013 20:29 -

В мирку напишешь? :)
Мыло 1rashpil@inbox.ru

Serik
Местный

Serik - 22 мая 2014 16:02 -

Кто может допилить мод под 10.1 - там в show.short.php немного не так сделано. В 10.0 работало а сейчас нет.

СПАСИБО надо тыкать в кнопку!

vitnet
PHP-developer

vitnet - 4 июня 2014 12:35 -

Дождитесь автора, может ответит, если нет то ...

Lynat1k
Юзер

Lynat1k - 21 августа 2014 10:01 -

не работает этот тег
[if_xf field=" variant " value="Пятый|Шестой] *** Пятый или шестой *** [/if_xf]

G-3p
Юзер

G-3p - 22 сентября 2014 06:10 -

Наткнулся на просторах интернета на этот хак. Автору большое спасибо и желаю, что бы его хаки не сливали)
Так вот, он для fullstory, но я настроил и для shortstory. А вот в custom работать не хочет, хотя особой разницы нет. Может кто подскажет в чём дело?

Serik
Местный

Serik - 22 сентября 2014 06:55 -

Дайте пожалуйста как для шортстори настроить, если Вы сделали для 10.1 и выше.

СПАСИБО надо тыкать в кнопку!

G-3p
Юзер

G-3p - 22 сентября 2014 07:04 -

В engine/show.short.php перед первой строкой
$tpl->compile( 'content' );

вставить:
$if_xf_hide = strpos($tpl->copy_template, "[if_xf_hide");
        $if_xf = strpos($tpl->copy_template, "[if_xf");
        
        if ($if_xf OR $if_xf_hide) {
        
            if (count($xfieldsdata) == 0) $xfieldsdata = xfieldsdataload( $row['xfields'] );
        
            if ($if_xf)
                $tpl->copy_template = preg_replace ( "#\\[if_xf field=['\"](.+?)['\"] value=['\"](.+?)['\"]\\]([^\[]+)\\[/if_xf\\]#ies", "if_xfields('\\1', '\\2', '\\3')", $tpl->copy_template );        
            if ($if_xf_hide)
                $tpl->copy_template = preg_replace ( "#\\[if_xf_hide field=['\"](.+?)['\"] value=['\"](.+?)['\"]\\]([^\[]+)\\[/if_xf_hide\\]#ies", "if_xfields('\\1', '\\2', '\\3', false)", $tpl->copy_template );    
            
            unset($xfieldsdata);
        }


Для custom, с show.custom.php я проделывал тоже самое, но оно на сайте не отображается в короткой новости, если выводить новости через custom.

Djinn
Юзер

Djinn - 23 января 2016 05:07 -

На 10,6 не работает... знает кто как сделать?

Georka
Юзер

Georka - 24 июля 2021 17:29 -

https://dle-faq.ru/faq/questhacks/28218-kak-zastavit-ifxfvalue-rabotat-v-maintpl-.html
Это тоже самое? я смогу заставить ifxfvalue работать в main.tpl ???

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх