[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Убрать логику из шаблона
Renden
Потихоньку перехожу от натива к шаблонам, но возник вопрос, как убрать логику из шаблона допустим есть файл модуля сообщений:
messages/index.php

if (isset($_GET['message']))
include ('tpl/messages.tpl');

'tpl/messages.tpl

тут немного html кода
<?php if($_GET['a'] == $b) : ?>
тут вывод html кода если пользователь передал гет
<? endif;?>
тут еще код html
<?php if($_GET['lala'] == $c) : ?>
тут вывод html кода если пользователь передал гет другой
<? endif;?>
тут еще код html и тд


Плодить шаблоны messages1.tpl , messages2.tpl и тп, под каждое условие и инклюдить их в index.php можно, но некрасиво иметь кучу маленьких шаблончиков :) как быть в таком случае?)



Спустя 18 минут, 21 секунда (5.04.2011 - 11:41) T1grOK написал(а):
В любом случае полностью логику с шаблолона не уберете. В принципе у вас шаблон нормальный. НО! Не стоит проверять GET массив в шаблоне этим должен заниматься контроллер, а в шаблоне должна фигурировать некоторая переменная, которую уже и проверяете.
Можно конечно сделать как вы написали в конце - сделав несколько микро шаблонов, но при наличии множества таких шаблончиков будет некоторая путаница.

Спустя 35 минут, 55 секунд (5.04.2011 - 12:17) Renden написал(а):
T1grOK
Ясненько, только вот странно что нет такой функции, вот например, можно былоб обозначить допустим в шаблоне так:

тут немного html кода
<%*> (какой-та тег типа коментов)
тут вывод html кода если пользователь передал гет
<*%>
тут еще код html
<%**> (другой тег)
тут вывод html кода если пользователь передал гет другой
<**%>
тут еще код html и тд


В index.php
if($_GET['a'] == $b) 
include ('<*%>','tpl/messages.tpl','<*%>');
if($_GET['lala'] == $c)
include ('<**%>','tpl/messages.tpl','<**%>');

Чтоб был 1 шаблон, а все условия редактировались в index.php, а в шаблоне был только тег который бы присваивался например конктретному условию.
Наверно это можно сделать регулярками, но плин я чую лагать будет жестко :)

Спустя 42 минуты, 51 секунда (5.04.2011 - 13:00) ApuktaChehov написал(а):
Renden - регулярками такое можно реализовать.
Быстрый ответ:

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