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

Не догоняю, как собрать всё воедино

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



Зарегистрирован: 10 Окт 2007 04:15:25
Сообщения: 5

СообщениеДобавлено: 10 Окт 2007 05:13:51    Заголовок сообщения: Не догоняю, как собрать всё воедино Ответить с цитатой

Раньше плотно общался с Mambo/Joomla, там шаблоны страниц были такие: HTML-основа, в которой вызываются нужные модули. При этом модуль всё делает сам -- собирает данные, занимается отображением.
Подозреваю, что это не по модели MVC (кстати, подскажите, где подробно и нормальным русским языком про это написано, а заодно и теорию баз данных, а то я в hasOne/hasMany путаюсь Smile ), но достаточно удобно.

Сейчас я в полной прострации, как писать layouts.

Например, в правой колонке мне нужно вывести список ближайших событий. Этим занимается хелпер? Именно выводом? А кто (в смысле, какой программный модуль) определяет, что считать "ближайшим" событием -- то есть, получает текущую дату, где-то глядит на число дней, "внутри" которых событие считается ближайшим. Ну и так далее.

Короче, в принцип врубиться не могу Sad

Не дайте помереть молодым Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Антон Исайкин
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
и следуй по шагам, а также мануал на этом сайте и все проясниться!
И экспериментируй!
Это лучшее для новичков! Я сам с этого начинал... Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
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    Заголовок сообщения: Ответить с цитатой

Век учись!!! Razz
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
TRANSKRAS.RU



Зарегистрирован: 10 Окт 2007 04:15:25
Сообщения: 5

СообщениеДобавлено: 23 Окт 2007 04:16:43    Заголовок сообщения: Ответить с цитатой

Так и осталось непонятым, как формировать, например, первую страницу сайта Sad
Свой контроллер типа frontend? Как этот контроллер узнает, что в этом месте страницы надо вывести "ближайшие события"?

Пример с "ближайшими событиями" всё так же актуален: какая часть набора "календарь" вычисляет, какие события считать ближайшими?

Короче, всё застопорилось Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
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, если большинство страниц у тебя расличаются только содержимым главного "фрейма", а все остальное (шапка, подвал, левые и правые колонки с менюшками, банерами, голосовалками и прочим) практически всегда одинаковы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

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


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

Рейтинг@Mail.ru