Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Вложенная блочная верстка. Как реализовать?

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
VolCh

цитировать



Зарегистрирован: 21 Окт 2007 07:17:33
Сообщения: 47
Откуда: Санкт-Петербург

СообщениеДобавлено: 21 Окт 2007 09:17:31    Заголовок сообщения: Вложенная блочная верстка. Как реализовать? Ответить с цитатой

Задумал CMS модульную сделать, хотя бы личную пока. Решил на Кэйке - скачал, установил, почитал туториалы и прочее, простые примеры понятны

Начал проектировать CMS. С отдельными модулями проблем нет особых, а вот как их собрать вместе... Например на странице куча 3 div'ов вложенных примерно так:
Код:
<div id="1-1">
  ...
  <div id="2-1>
    ...
  </div>
  ...
  <div id="2-2">
    ...
    <div id="3-1">
      ...
    </div>
    ...
    <div id="3-2">
      ...
    </div>
    ...
  </div>
  ...
  <div id="2-3">
    ...
  </div>
  ...
</div>

Причем содержимое каждого тега хранится в БД, включая структуру вложенности, и относится к разным моделям.

Вижу несколько вариантов:

1. "В лоб" - вызывается только один метод контролера, из кучи моделей, связанных иерархически, вытаскиваем всю инфу, какую только нужно для страницы в данный момент, передаем её в отображение, оно рендерит "картинку" и запускает нужную верстку (например в зависимости от "шкуры"). Примерно такая последовательность выходит:
- контроллер
(данные собраны)
-- отображение
(данные обработаны)
--- верстка
(натянули "шкуру" и вывели)

2. "Дерево контроллеров" - "главный" контроллер берет только инфу о блоках первого уровня и инфу о их отображении из моделей, по ней определяет какие контролеры и действия еще нужны и вызывает их. Каждый из них делает то же самое, потом возвращает данные "наверх". "Главный" вызывает отображение единственное, когда все данные готовы, как и в случае п.1. Примерно так выходит:
(запрос)
- контроллер1-1 ("главный")
-- контроллер 2-1
-- контроллер 2-2
--- контроллер 3-1
--- контроллер 3-2
-- контролер 2-3
(данные собраны)
--отображение
(данные обработаны)
---верстка
(натянули "шкуру" и вывели)

3. "Дерево отображений"- Наоборот, контроллер собирает всю инфу, а отображения вызывают друг друга.

(запрос)
- контроллер
(данные собраны)
-- отображение 1-1
--- отображение 2-1
--- отображение 2-2
---- отображение 3-1
---- отображение 3-2
--- отображение 2-3
(данные обработаны)
---верстка
(натянули "шкуру" и вывели)

4. "Деревья контролеров и отображений" - комбинация 2 и 3.
(запрос)
- контролер1-1 ("главный")
-- контроллер 2-1
-- контроллер 2-2
--- контроллер 3-1
--- контроллер 3-2
-- контролер 2-3
(данные собраны)
-- отображение 1-1
--- отображение 2-1
--- отображение 2-2
---- отображение 3-1
---- отображение 3-2
--- отображение 2-3
(данные обработаны)
----верстка
(натянули "шкуру" и вывели)

4. "Сквозное дерево" - каждый контроллер вызывает свое отображение, а оно, если нужно, другие контролеры с их отображением:
(запрос)
- контроллер1-1
-- отображение 1-1
--- контроллер 2-1
---- отображение 2-1
--- контроллер 2-2
---- отображение 2-2
----- контроллер 3-1
------ отображение 3-1
----- контроллер 3-2
------ отображение 3-2
--- контролер 2-3
---- отображение 2-3
(данные собраны и обработаны)
---верстка
(натянули "шкуру" и вывели)

Какой вариант наиболее легко реализуем средствами Кэйка (включая дальнейшее расширение CMS по модульному принципу, чтобы для добавления нового модуля в идеале надо было только скопировать 3 файла) и соотвествует его реализации MVC?

З.Ы. Под контроллерами и отображениями имелись в виду не только собственно они в терминах Кэйка, но и компоненты и элементы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru