проблемы шаблонизации

Не о CI, но о PHP, интерфейсах и веб-проограммировании

проблемы шаблонизации

Сообщение felix » 03 фев 2010, 11:44

Всем день добрый.
Возник такой вопрос по шаблонизации.
Есть отображение примерно так
Код: Выделить всё
<div id="main_content">
.....
</div>
<div id="rigth_menu">
<?php
foreach ($menuitems as $menuitem) {
$this->load->view("menus/menu"$menuitem);
}
?>

Что делает отображение вполне понятно. Только скажу, что в дивов соответственно float left i right
Шаблон имеет две колонки одна основное содержание, другая колонка меню
Теперь, я хочу создато другой шаблон в три колонки (две менюшки и основное содержание) Как быть в таком случае?
Кто должен (контроллер, отображение) отвечать за то какое конкретно меню должно отображаться где (слева или справа)
Еще, скажем, такая ситуация. В одном из шаблонов форма авторизации должна располагаться справа, где меню, а в другом - в шапке сайта.
Как быть в таких ситуациях?
felix
 
Сообщения: 132
Зарегистрирован: 20 окт 2009, 19:17

Re: проблемы шаблонизации

Сообщение radioheaded » 03 фев 2010, 13:12

Тоже волнует этот вопрос. Одно время занимался Друпалом и видел, как проблема решена там на уровне модулей. Поэтому для себя пока решил так.

Представьте, что ваша форма авторизации — модуль. У каждого модуля есть несколько стандартных способов отображения: основной, вертикальный список, горизонтальный список... (что-то еще). Чтобы отобразить модуль одним из способов, отличных от основного, вы в функцию отображения передаете параметр (например, 'hlist' для горизонтального списка). Тогда вы можете использовать один и тот же код в разных местах, изменяя только один параметр. Например, вызывали в шапке функцию отображения формы с параметром 'hlist', и поля расположились горизонтально; в боковом меню — 'vlist', и поля идут вертикально.

Как-то вот так)
radioheaded
 

Re: проблемы шаблонизации

Сообщение michail1982 » 03 фев 2010, 19:42

Код: Выделить всё
//config.php
$config['main_view'] = 'view1';
//Youre Controller
//меняем шаблон
$this->config->set_item('main_view''view2');
$this->load->view($config->item('main_view'),$data); 
Аватара пользователя
michail1982
 
Сообщения: 533
Зарегистрирован: 25 ноя 2008, 15:36


Вернуться в Общие вопросы по PHP и веб-программированию

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1