[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: замена символов на php код
AquaGen
пишу сайт, необходимо чтобы когда встречалось в коде дизайна [register]***[/register] это было видно только зарегистрированным пользователям
все остальное я делаю так: $tpl = str_replace('{headers}',$headers,$tpl);
однако с php кодом не выходит типа такого
$tpl = str_replace('[register]',$register_begin,$tpl);
$tpl = str_replace('[/register]',$register_end,$tpl);
код тупо выводица текстом как и следовало ожидать
а я вот хочу сделать чтобы [register] заменялось наверное на
<? if ($login=='on'){
echo<<<HTML
а [/register] на
HTML;}?>
как-то так наверное, как это сделать?
или может как-нибудь по другому это реализовать?
а еще бы лучше сделать как-нибудь чтобы по группам выводилось, типо если группа 1 выводилось "текст" после такова кода: [group=1]текст[/group], а второй группе выводилось [group=2]текст2[/group], как это сделать?



Спустя 9 минут, 37 секунд (12.03.2011 - 17:29) imba написал(а):
Чтобы текст обрабатывался как php-код, есть функция такая замечательная eval, и зачем использовать Поповский echo <<<HTML, когда можно просто закрыть ?> и вывести нормально обычный HTML.

Спустя 34 минуты, 36 секунд (12.03.2011 - 18:03) m4a1fox написал(а):
А почему не str_replace?

Спустя 8 минут, 36 секунд (12.03.2011 - 18:12) AquaGen написал(а):
Цитата (imba @ 12.03.2011 - 14:29)
Чтобы текст обрабатывался как php-код, есть функция такая замечательная eval, и зачем использовать Поповский echo <<<HTML, когда можно просто закрыть ?> и вывести нормально обычный HTML.

и как сделать?
HTML; и ?> тогда считается кодом еще в начальном файле,
$register_begin=<<<HTML
<? if (\$login=='on'){
echo<<<HTML

HTML;
$register_eng=<<<HTML
HTML;

}?>
HTML;

а если написать HTML/; то с кодом все нормально, однако / не убирается

Спустя 9 минут, 4 секунды (12.03.2011 - 18:21) AquaGen написал(а):
вообщем как я понял в замене писать
$tpl = str_replace('[register]',eval($register_begin),$tpl);
$tpl = str_replace('[/register]',eval($register_eng),$tpl);

а что в самих $register_begin и $register_eng чтобы файл та сам нормально работал и то что в нем написано не воспринималось как код этого файла

Спустя 45 секунд (12.03.2011 - 18:22) m4a1fox написал(а):
AquaGen
Ого.... Я ни разу столько HTML в одном файле не видел smile.gif ээээээ.... А таак разве можна?

Спустя 6 минут, 25 секунд (12.03.2011 - 18:28) AquaGen написал(а):
ну может как-нибудь по другому это сделать я и спрашиваю, в cms же както сделано

Спустя 11 минут, 22 секунды (12.03.2011 - 18:39) neadekvat написал(а):
AquaGen, давайте начнем издалека.
Интересно, почему вы выбрали бб-код?
Кто создает эти шаблоны?
Если верстальщик, не знакомый с программирвоанием - тогда понятно. Но я, честно, такого еще не встречал :)
А если программист - то и пишите код. Почему-то люди так боятся вставлять исполняемый код в шаблоны, что начинают создавать себе лишнее проблемы.

Заведите переменную-флаг, например, $registred, которая будет false по умолчанию, а в случаи, если пользователь авторизован, true. В шаблоне же проверяйте:
if ($registred) {
// выводим код для зарег. пользователей.
}

Спустя 1 час, 40 минут, 59 секунд (12.03.2011 - 20:20) AquaGen написал(а):
это я просто в dle увидел такое (а исходники дле большие там долга разбираца большая часть непонята, че где написано непонятна, поэтому я и спросил может кто знает)
вроде как в дле все было красиво и удобно... (единственное почему я ее перестал использовать - платная)
ну и типа шаблоны я и для того использую чтобы в одних файлах были php, а в других html = шаблоны, но если только такой выход на данный момент то я его использую

Спустя 2 минуты, 42 секунды (12.03.2011 - 20:23) neadekvat написал(а):
По поводу жесткого разделения я уже высказался: по-моему, не стоит боятся использовать php в шаблона. Главное - не перебарщивать с интеграцией. Стараться сократить все до вызова функций и условных операторов, разве что еще циклы порой удобнее сунуть туда.

Спустя 1 месяц, 10 дней, 21 час, 3 минуты, 2 секунды (23.04.2011 - 16:26) AquaGen написал(а):
у меня в шаблоне php не выполняется
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.