Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Как вывести текст, если в доп. поле (тип: список), выбрано значение ?

Как вывести текст, если в доп. поле (тип: список), выбрано значение ?


     09.12.2014    Общие вопросы по PHP    1251

вопрос
Здравствуйте. Очередной вопрос. Не могу никак разобраться.
Есть доп. поле, тип: список.

Мне нужно выводить определённый текст, если выбрано соответствующее значение в доп. поле, например:

[xfgiven_material=резина]Тут текст если выбрано значение "резина" в доп. поле[/xfgiven]

Надеюсь понятно обьяснил.

Заранее спасибо.

Ответил: ravchik


Бесплатный вариант хака.

Отличие - нельзя использовать множественный выбор вариантов:
[if_xf field="variant" value="Пятый|Шестой"]текст[/if_xf]
Можно использовать выбор только одного варианта:
[if_xf field="variant" value="Пятый"]текст[/if_xf]
В файле show.full.php найти:
$tpl->copy_template = str_replace( "[xfvalue_{$value[0]}]", $xfieldsdata[$value[0]], $tpl->copy_template );
добавить ниже:
$tpl->copy_template = preg_replace( "'\\[if_xf field=\"{$preg_safe_name}\" value=\"{$xfieldsdata[$value[0]]}\"\\](.+?)\\[/if_xf\\]'is", "\\1", $tpl->copy_template );    
$tpl->copy_template = preg_replace( "'\\[if_xf field=\"{$preg_safe_name}\" value=\"(.+?)\"\\](.*?)\\[/if_xf\\]'is", "", $tpl->copy_template );

Комментарии пользователей (8)

ravchik
66

375 | 123

ravchik - 9 декабря 2014 08:04 - Юзер

Решение, в частности посмотрите последний комментарий

Morse
17

75 | 37

Morse - 9 декабря 2014 13:21 - Юзер

Спасибо, но на 10.3 не работает, если добавить код в show.full.php сразу не показывает всю новость.
Может там переменная другая ?

ravchik
66

375 | 123

ravchik - 9 декабря 2014 14:03 - Юзер

Вы пробовали решение из ответа или из моего комментария?
Лучше использовать решение из ответа, оно рабочее (только что проверил на DLE10.3).
А решение из ссылки в комментарии не заработает, т.к. там нет кода самой функции, которая отвечает за работу, я проглядел этот момент...

Morse
17

75 | 37

Morse - 9 декабря 2014 14:15 - Юзер

Цитата: ravchik
Вы пробовали решение из ответа или из моего комментария?
Лучше использовать решение из ответа, оно рабочее (только что проверил на DLE10.3).
А решение из ссылки в комментарии не заработает, т.к. там нет кода самой функции, которая отвечает за работу, я проглядел этот момент...

пробую именно из Вашего ответа, пропадает полностью вся новость (весь блок с новостью пропадает) и остается лиш форма добавления комментария

Morse
17

75 | 37

Morse - 9 декабря 2014 14:20 - Юзер

Специально заменил файл show.full оригинальный из дистрибутива, повторил все манипуляции, тот же результат - не работает.

ravchik
66

375 | 123

ravchik - 9 декабря 2014 15:25 - Юзер

даже не знаю что сказать... прочитав ваш комментарий специально проверил, все работает...

Morse
17

75 | 37

Morse - 9 декабря 2014 16:21 - Юзер

Хоть убейте, не работает...

ravchik
66

375 | 123

ravchik - 9 декабря 2014 16:40 - Юзер

скайп nravchik

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

Похожие вопросы