![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Diesel Draft |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
Привет мальчики и девочки. Вот пишу я ЦМС. Знаете я всегда удивлялся з людей которые прутся написать свою ЦМС. ЦМС с такой архитектурой нигде найти не мог, ну кроме asp (ЦМС composite) и то даже на 70% не задовольняет. Все система создает сама себя. Поэтому шаблонизатор нужен очень хороший.
Ну что, это был маленький вступ. Я хочет посоветоваться на счет несколько вещей. Даже не посоветоваться, а-а-а-а обговорить. Когда я обговариваю реализацию то сам поминаю лучше мыслить. И думаю может кому то будет интересно. Немного про архитектуру. Сайт поделятся на две части : администратор и сам сайт. Когда открываешь страничку то создается класс этой страницы, которая походит от class Page, который в свою очередь походит от class Block. По очереди запускаются методы класса public function OnInit(){} public function OnPostData(){} public function OnAjax(){} або public function OnRend(){} Можно вставлять блок в блок. Сейчас я делаю так: сначала я инициализирую страницу, где кроме настроек еще создаю под блоки, которые в свою очередь инициализируются и могут иметь под блоки. Все это происходит в рекурсии. Потом рекурсивно выкликаю OnPostData() где считую входные даные. Потом обрабатывать данные в OnRend() или OnAjax() в зависимости от запроса. А теперь проблема. Когда я вызываю OnRend() то он включается рекурсивно в жаждем блоке. Тоесть блок имеет текст которые видренедил его под блок. А когда вставляю то приходится писать
А мне это ни нравится. И потом з кэшированием сложно. Я думаю использовать вставки в шаблон. Тоесто на выходе, когда уже блок выдренедерилса, я ищу вставку и заменяю на контекст блока. Тоесть я в шаблоне решаю когда что вставить. И не надо предварительно инициализировать бод блоки. Пример:
Это значит что надо загрузить блок blokname. 1. Стоить так менять? 2. Какая должна быть вставка ($$blokname; или другая)? П.С. Ребята, как же неймспейсов не хватает Это сообщение отредактировал(а) Diesel Draft - 13.8.2007, 11:15 |
||||
|
|||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
Ау, я думал эта тема соберет людей желающих помочь советом.
|
|||
|
||||
| qeqeru |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 28.8.2007 Репутация: нет Всего: нет |
Если честно пока читал, по пути расстерял весь смысл...
... кароче, ничё не понятно... |
|||
|
||||
| ewolf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 15.8.2006 Где: г. Москва Репутация: 1 Всего: 18 |
Я правильно понял, что идея в том, что один файл шаблона может включать в себя другой файл, при этом каждый файл шаблона (который ты называешь блоком) выводит некоторые данные, которые ему предоставляет соответствующий обработчик на php?
Соответственно, чтобы определить какие обработчики загружать ты предварительно разбираешь шаблон. Теперь же ты хочешь вызывать сразу все обработчики, передавать результаты их работы в шаблон и там просто вставлять переменные? Ну, можно сделать и так и эдак. Я бы правда сделал по другому. Сделал бы некоторый конфиг, где для каждой страницы указал какие обработчики загружать, а в шаблоне просто выводил переменные. В таком случае шаблонизатором тебе вполне подойдет смарти |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 0 Всего: 38 |
Вот-вот. Второй раз писать заново Smarty не стоит... Лучше его и попользовать...
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Diesel Draft |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
SamDark, Это точно не смарти.
Не все, я вызывал только нужные и рендерю их в переменную.
Не другой файл, это другой класс. Если б файлы я б просто это сделал |
||||
|
|||||
| ewolf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 15.8.2006 Где: г. Москва Репутация: 1 Всего: 18 |
Ну, если честно, я тогда не понимаю, о чем спрашивается в первом посте. Чего конкретно хочется сделать и в чем проблема?
|
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
Проблема в том что я хочу з шаблона выбирать что мне грузить
|
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 0 Всего: 38 |
Diesel Draft,
Smarty:
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
а, то самое но на XSL
Добавлено через 1 минуту и 35 секунд php-функцию вставлять можно но не хочется, просто иногда шаблон реагирует человек з кривыми ручками |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 0 Всего: 38 |
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
SamDark, ты тогда вставляешь кусок з того самого шаблона.
А можно как нибудь организовать колбек? |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 0 Всего: 38 |
Diesel Draft,
1. С какого того самого? 2. Зачем тебе колбэк? (Организовать можно). -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
у смотри, я в шаблоне делаю колбэк функции, она генерирует блок и отдает назад.
|
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 0 Всего: 38 |
Diesel Draft,
Это неправильно. Шаблон не должен получать данные самостоятельно без контроллера. Но если уж очень хочется: http://ru2.php.net/manual/ru/function.xslt-set-object.php -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |