Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="alexeis"]Вот конкретная проблема: везде для вывода времени используется $time->nice($date), а затем вдруг понимаешь что нужно то выводить название месяца полностью и по русски, и дату в другом виде. И как это правильно разрулить, не создавая новую копию TimeHelper в проекте? Вообще такое ощущение что с точки зрения возможности легкого расширения правильным (хотя опять не оптимальным) путем будет с самого начала в проекте использовать любые сторонние хелперы только как родителей для собственных, т.е. всюду во View использовать только $xhtml, $xtime и т.д. А вот красивым способом легко расширять функциональность хелперов и при этом не раздувать код было бы такое объявление хелперов [code] var $helpers = array('html'=> 'Html', 'time' => 'Xtime') [/code] Но увы, без хакания ядра такое реализовать пока не получается.[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
alexeis
Добавлено: 26 Мар 2008 14:10:14
Заголовок сообщения:
хм, поглядел, кажись в branch 1.2.x.x. реализовано как я хочу
KPOTOB
Добавлено: 18 Мар 2008 20:33:48
Заголовок сообщения:
alexeis
Тикет заведи если нет еще такого
А вообще - cake и родителя не умеет автоматом загружать
Да и nate у себя на уме канкретно
alexeis
Добавлено: 18 Мар 2008 08:41:23
Заголовок сообщения:
Вот конкретная проблема: везде для вывода времени используется $time->nice($date), а затем вдруг понимаешь что нужно то выводить название месяца полностью и по русски, и дату в другом виде. И как это правильно разрулить, не создавая новую копию TimeHelper в проекте?
Вообще такое ощущение что с точки зрения возможности легкого расширения правильным (хотя опять не оптимальным) путем будет с самого начала в проекте использовать любые сторонние хелперы только как родителей для собственных, т.е. всюду во View использовать только $xhtml, $xtime и т.д.
А вот красивым способом легко расширять функциональность хелперов и при этом не раздувать код было бы такое объявление хелперов
Код:
var $helpers = array('html'=> 'Html', 'time' => 'Xtime')
Но увы, без хакания ядра такое реализовать пока не получается.
DeeperMD
Добавлено: 17 Мар 2008 12:04:44
Заголовок сообщения:
Зачем городить огород..
Создаете класс на основе класса хелпера который хотите проапгрэйдить и усё.. и в чём проблема..
Но если совсем красиво по правилам пирожкка, то просто создаете свой хелпер который юзает класс родитель и усё..
что-то типа этого:
Код:
<?
class LinkHelper extends Helper
{
var $helpers = array('Html');
function makeEdit($title, $url)
{
// Используем HTML Хелпер для извлечения
// форматированных данных:
$link = $this->Html->link($title, $url, array('class' => 'edit'));
return $this->output("<div class=\"editOuter\">$link</div>");
}
}
?>
alexeis
Добавлено: 17 Мар 2008 09:00:08
Заголовок сообщения:
KPOTOB писал(а):
скопируй его к себе в app\views\helpers и там поправь. тогда даже имя останется - только вот бэкпорты с новых версий самому придется делать
Как-то не по DRY получается.
Похоже самым оптимальным остается создание своих хелперов-наследников и замена ими существующих в файлах view, типа
Код:
$paginator = clone($xpaginator);
Еще можно поковыряться в классе View libs\view\view.php, в функции _loadHelpers, вопрос снова как этот класс расширить, логичное расширение через AppView разработчиками опять не предусмотрено.
KPOTOB
Добавлено: 16 Мар 2008 22:13:37
Заголовок сообщения:
скопируй его к себе в app\views\helpers и там поправь. тогда даже имя останется - только вот бэкпорты с новых версий самому придется делать
alexeis
Добавлено: 16 Мар 2008 21:44:44
Заголовок сообщения: Расширение существующего хелпера
Волнует один вопрос, незнание решения которого вызывает реальный дискомфорт -- каким образом можно безболезненно расширить существующий хелпер.
Например хочу по другому вывести пейджиг во всем проекте, чтобы ссылки выводились не в span (например), а в таблице. Вариант -- сделать свой хелпер Xpaginator наследующий Paginator, но как тогда вывести его в View под переменной $paginator, т.е. чтобы его функции вызывались вместо функций родительского класса?
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».