Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="justiam"]Вот твой роутер: [code]Router::connect('/', array('controller' => 'goods','action' => 'summary')); [/code] В контроллере [b]goods[/b] подключаешь модели Good, Category, Basket (или как там называется корзина?): [code]var $uses = array('Good','Category','Basket');[/code] В действии [b]summary[/b] забираешь и обрабатываешь нужные тебе записи из таблиц Goods, Categories и Baskets - и передаешь в вид: [code]$this->set('goods', $goods); $this->set('categories', $categories); $this->set('basket', $basket);[/code] В виде [b]/views/goods/summary.ctp[/b] отображаешь в нужном тебе виде данные из переменных (массивов, наверно) $goods, $categories и $basket. Вроде так.[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
Hektor
Добавлено: 12 Ноя 2009 08:33:24
Заголовок сообщения:
Anonymous писал(а):
например?
Один пример я уже привел:
Если весь магазин "стоит" на одном контроллере, то проверяем params['controller'] и, при необходимости, выводим элемент.
По моему же глубокому убеждению всё должно быть оформлено в виде шаблонов под каждый конкретный случай. Один шаблон для множества страниц. В Вашем случае шаблон для конкретного раздела. Тем самым Вы сэкономите на производительности. Представьте себе, что у вас один layout для всех разделов. И он должен "подстроиться" под требования раздела. Если магазин, то вывести категории магазина, если архив статей - то категории архива... А разделив на шаблоны и подшаблоны заставляем движок только обрабатывать конкретный файл меньшим количеством циклов и условий. Это ощутимо при посещаемости сайта в несколько тыс. чел. в сутки.
IMHO
foma19
Добавлено: 10 Ноя 2009 13:37:24
Заголовок сообщения:
а как можно соединить два модуля в одном? есть категории, товары и корзина. в них уже прописаны связи и т.д. весь код тоже есть. но вот мне нужно это все объединить в одном модуле shop. не писать же все функции, используемые в 3-х модулях в одном shop. как вообще обычно это делают?
Гость
Добавлено: 09 Ноя 2009 12:56:51
Заголовок сообщения:
например?
Hektor
Добавлено: 08 Ноя 2009 23:26:58
Заголовок сообщения:
тогда в layout выкручиваемся.
Код:
if($this->params['controller'] == 'shop'){
$this->element(tree);
}
таких примитивных примеров могу кучу привести.
foma19
Добавлено: 08 Ноя 2009 07:03:45
Заголовок сообщения:
но ведь есть же еще элементы общие для всего сайта. шапка, низ, менюшка основная. если сменю layout то придется все эти повторяющиеся элементы копировать во все такие подlayoutы
Hektor
Добавлено: 07 Ноя 2009 20:17:23
Заголовок сообщения:
Если я правильно понимаю, то Вам нужно для каждого раздела с идентичными модулями создать общий шаблон (layout).
Тогда в контроллере (shop_controller.php) в функции beforeRender указываете
Код:
$this->layout = 'shop';
А в shop.ctp вставляем дерево, допустим как элемент:
Код:
$this->element(tree);
foma19
Добавлено: 07 Ноя 2009 19:55:57
Заголовок сообщения:
это не совсем то что нужно оказалось. допустим есть раздел магазин и куча других. в разделе магазин нужно чтобы всегда отображалось дерево категорий. в виде index я допустим вывожу это дерево и товары. потом перехожу в раздел добавить товар. там уже будет вид add. и опять придется копировать дерево. это ведь идиотизм. как можно вызвать несколько разных видов за раз?
foma19
Добавлено: 06 Окт 2009 18:41:51
Заголовок сообщения:
думаю это вариант. спасибо!
justiam
Добавлено: 06 Окт 2009 06:48:07
Заголовок сообщения:
Вот твой роутер:
Код:
Router::connect('/', array('controller' => 'goods','action' => 'summary'));
В контроллере
goods
подключаешь модели Good, Category, Basket (или как там называется корзина?):
Код:
var $uses = array('Good','Category','Basket');
В действии
summary
забираешь и обрабатываешь нужные тебе записи из таблиц Goods, Categories и Baskets - и передаешь в вид:
Код:
$this->set('goods', $goods);
$this->set('categories', $categories);
$this->set('basket', $basket);
В виде
/views/goods/summary.ctp
отображаешь в нужном тебе виде данные из переменных (массивов, наверно) $goods, $categories и $basket.
Вроде так.
foma19
Добавлено: 05 Окт 2009 22:47:22
Заголовок сообщения:
Router::connect(
'URL',
array('paramName' => 'defaultValue'),
array('paramName' => 'matchingRegex')
)
вот в общем виде роут. можно прописать только один контроллер и один метод. а мне допустим нужно и категории вывести и товары и данные из корзины и т.д. как в этом случае быть?
перечитывал про роуты 100 раз на оф сайте. этого момента так и не нашел
Vlad
Добавлено: 05 Окт 2009 22:03:53
Заголовок сообщения:
Читайте внимательно раздел, где описан роутер, и будет вам счастье
foma19
Добавлено: 05 Окт 2009 20:11:03
Заголовок сообщения: cakephp routes
На главной странице нужно, например, вывести категории, список товаров и еще что-либо. Категории и товары это разные модули. у них свои контроллеры и т.д. В роутах можно прописать только один контроллер для каждого адреса. Как можно собрать все воедино на главной странице и на других? Например, список категорий нужен везде
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».