Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="VolCh"]Задумал CMS модульную сделать, хотя бы личную пока. Решил на Кэйке - скачал, установил, почитал туториалы и прочее, простые примеры понятны Начал проектировать CMS. С отдельными модулями проблем нет особых, а вот как их собрать вместе... Например на странице куча 3 div'ов вложенных примерно так: [code]<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>[/code] Причем содержимое каждого тега хранится в БД, включая структуру вложенности, и относится к разным моделям. Вижу несколько вариантов: 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? З.Ы. Под контроллерами и отображениями имелись в виду не только собственно они в терминах Кэйка, но и компоненты и элементы.[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
VolCh
Добавлено: 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?
З.Ы. Под контроллерами и отображениями имелись в виду не только собственно они в терминах Кэйка, но и компоненты и элементы.
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».