Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
TRANSKRAS.RU
Зарегистрирован: 10 Окт 2007 04:15:25 Сообщения: 5
|
Добавлено: 10 Окт 2007 05:13:51 Заголовок сообщения: Не догоняю, как собрать всё воедино |
|
|
Раньше плотно общался с Mambo/Joomla, там шаблоны страниц были такие: HTML-основа, в которой вызываются нужные модули. При этом модуль всё делает сам -- собирает данные, занимается отображением.
Подозреваю, что это не по модели MVC (кстати, подскажите, где подробно и нормальным русским языком про это написано, а заодно и теорию баз данных, а то я в hasOne/hasMany путаюсь ), но достаточно удобно.
Сейчас я в полной прострации, как писать layouts.
Например, в правой колонке мне нужно вывести список ближайших событий. Этим занимается хелпер? Именно выводом? А кто (в смысле, какой программный модуль) определяет, что считать "ближайшим" событием -- то есть, получает текущую дату, где-то глядит на число дней, "внутри" которых событие считается ближайшим. Ну и так далее.
Короче, в принцип врубиться не могу
Не дайте помереть молодым |
|
Вернуться к началу |
|
|
Антон Исайкин Site Admin
Зарегистрирован: 08 Окт 2007 12:02:56 Сообщения: 150 Откуда: Санкт-Петербург
|
Добавлено: 10 Окт 2007 08:41:10 Заголовок сообщения: |
|
|
Про MVC можно прочитать тут: http://ru.wikipedia.org/wiki/MVC.
Все данные которые вы собираетесь показать на сайте собираются в контроллере, затем передаются в layout функцией $this->set. Там они (данные) каким-то образом форматируются и отображаются простым echo.
А вообще, чтобы понять основные принципы достаточно прочитать русский мануал. |
|
Вернуться к началу |
|
|
starosta
Зарегистрирован: 09 Окт 2007 15:25:31 Сообщения: 23
|
Добавлено: 10 Окт 2007 08:56:12 Заголовок сообщения: |
|
|
Прочитай http://www.ibm.com/developerworks/ru/views/opensource/libraryview.jsp?search_by=CakePHP
и следуй по шагам, а также мануал на этом сайте и все проясниться!
И экспериментируй!
Это лучшее для новичков! Я сам с этого начинал... |
|
Вернуться к началу |
|
|
TRANSKRAS.RU
Зарегистрирован: 10 Окт 2007 04:15:25 Сообщения: 5
|
Добавлено: 10 Окт 2007 09:47:17 Заголовок сообщения: |
|
|
Мануал прочитан в первую очередь, статья с ИБМа -- тоже, и ещё много чего нашего и не нашего. Нет понимания именно принципа!
Везде приводят в пример блоги, какие-то выборки статей... И всё -- общими словами, хотя и приводя код.
Наверное, я многого хочу...
За ссылку по MVC -- огромное мерси! Сейчас углублюсь... |
|
Вернуться к началу |
|
|
starosta
Зарегистрирован: 09 Окт 2007 15:25:31 Сообщения: 23
|
Добавлено: 10 Окт 2007 17:07:16 Заголовок сообщения: |
|
|
Век учись!!! |
|
Вернуться к началу |
|
|
TRANSKRAS.RU
Зарегистрирован: 10 Окт 2007 04:15:25 Сообщения: 5
|
Добавлено: 23 Окт 2007 04:16:43 Заголовок сообщения: |
|
|
Так и осталось непонятым, как формировать, например, первую страницу сайта
Свой контроллер типа frontend? Как этот контроллер узнает, что в этом месте страницы надо вывести "ближайшие события"?
Пример с "ближайшими событиями" всё так же актуален: какая часть набора "календарь" вычисляет, какие события считать ближайшими?
Короче, всё застопорилось |
|
Вернуться к началу |
|
|
VolCh
Зарегистрирован: 21 Окт 2007 07:17:33 Сообщения: 47 Откуда: Санкт-Петербург
|
Добавлено: 23 Окт 2007 06:40:35 Заголовок сообщения: |
|
|
Если делать чисто страницу, без использования MVC полноценного, то:
Индекс, только что установленного Cake писал(а): | Editing this Page
To change the content of this page, create: /app/views/pages/home.thtml.
To change its layout, create: /app/views/layouts/default.thtml.
{See the views section of the manual for more info}
You can also add some CSS styles for your pages at: app/webroot/css/.
|
Если же нужно назначить на корень действие какое-нибудь контролера существующего, то используй роутинг (вообще очень полезная штука, чтобы абстрагировать контролеры и их действия от url, например вынести админские функции в урл вида /admin/users/ban/2, вместо возможного по реализаци /users/ban/2 |
|
Вернуться к началу |
|
|
VolCh
Зарегистрирован: 21 Окт 2007 07:17:33 Сообщения: 47 Откуда: Санкт-Петербург
|
Добавлено: 23 Окт 2007 07:13:51 Заголовок сообщения: |
|
|
Насчет реализации календаря:
- если он будет только у одного контролера, то лучше его реализовать в контролере, а выводить в отоброжение, чтобы код не засорять сделать приватным или защищенным методом вызов.
- если будет в разных местах (разных контролерах), то, возможно, подготовку данных сделать компонентом и вызывать его из контролера, а их вывод - элементом или хелпером (по моему элементом лучше)
- если у него будут свои действия (например, добавить, удалить, редактировать события) на отдельных страницах, хотя бы в админке или любым юзером, то имеет смысл создать полноценный контролер Calendar с методом _show4block(), например, который не будет вызываться напрямую пользователем, а только с помощью requestActon(), со своим отображением и раскладкой (без html заголовков, например <div><?php .... ?></div> ) |
|
Вернуться к началу |
|
|
TRANSKRAS.RU
Зарегистрирован: 10 Окт 2007 04:15:25 Сообщения: 5
|
Добавлено: 23 Окт 2007 07:55:17 Заголовок сообщения: |
|
|
VolCh, Так-так... Будет создаваться полноценный контроллер Calendar. У него много всяких функций будет.
VolCh, страница будет "не чистой". Теоретически, она даже будет меняться в зависимости от времени суток на клиенте. То есть без контроллера явно не обойтись. И, кажется, requestAction -- это как раз то, что меня интересовало. |
|
Вернуться к началу |
|
|
VolCh
Зарегистрирован: 21 Окт 2007 07:17:33 Сообщения: 47 Откуда: Санкт-Петербург
|
Добавлено: 24 Окт 2007 06:32:57 Заголовок сообщения: |
|
|
Еще посмотри на переопредленный AppContoler, если большинство страниц у тебя расличаются только содержимым главного "фрейма", а все остальное (шапка, подвал, левые и правые колонки с менюшками, банерами, голосовалками и прочим) практически всегда одинаковы. |
|
Вернуться к началу |
|
|
|