Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Kick Off 
:(
    Опции темы
dm9
Дата 11.9.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Цитата(Opik @  8.9.2006,  15:55 Найти цитируемый пост)
sergej.z, Загляни в тему "стардарты кодинга".


Да спасёт тебя Великий Ctrl+Shift+F в Зенде smile

Сергей.

Основным недостатком данного подхода считаю блочность. Ты базировался на PHP-Nuke? Да, он болеет этим, и это плохо. addRightGroup -- скажи, а если колонок не две, а три? А если на главной странице 4 колонки, а внутри 2? А если контентный блок есть ещё в шапке (а он обычно есть -- хотя бы баннер)? То есть на уровне движка рулить "лево-право" считаю неправильным. Далжен быть просто addGroup, а рулиться эти группы должны в шаблонах (core.xslt or smth.) Потому что поменять местами право и лево -- это, согласись, дизайн, а не логика. А дизайн должен быть в шаблонах, чтобы потом не пришлось гоняться по всем кодам и менять право с левом.

Потом. Всегда считал неверным пляску от action'a. Я придерживаюсь подхода, при котором сначала загружается базовый шаблон, а потом уже он определяет, что делать дальше (обычно у меня он делает просто <xsl:apply-templates /> -- это аналог твоего поведения, но у меня это лечится, а у тебя нет). И нет такого понятия, как "xslt текущей страницы" или т. п. А у тебя есть шаблон, который зависит от текущего экшена. Честно, не скажу, почему твой подход мне не нравится. Чисто интуитивно -- теряется универсальность. Но сидел думал час, так и не смог придумать примера -- всё же обычно основной контентный блок ровно один, а остальное замечательно вписывается в core.xslt. Придумаю -- скажу smile

P. S.
В concat(concat( , вроде, нет необходимости -- эта ф-ция понимает сколько угодно параметров? smile

PM MAIL ICQ   Вверх
Wowa
Дата 11.9.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



dm9, дельные вещи говоришь.
PM WWW   Вверх
sergejzr
Дата 11.9.2006, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(dm9 @  11.9.2006,  12:27 Найти цитируемый пост)
Основным недостатком данного подхода считаю блочность. Ты базировался на PHP-Nuke? Да, он болеет этим, и это плохо. addRightGroup -- скажи, а если колонок не две, а три? А если на главной странице 4 колонки, а внутри 2? А если контентный блок есть ещё в шапке (а он обычно есть -- хотя бы баннер)? То есть на уровне движка рулить "лево-право" считаю неправильным. Далжен быть просто addGroup, а рулиться эти группы должны в шаблонах (core.xslt or smth.) Потому что поменять местами право и лево -- это, согласись, дизайн, а не логика. А дизайн должен быть в шаблонах, чтобы потом не пришлось гоняться по всем кодам и менять право с левом.

И с чего вы взяли, что этото пример определяет поведение будующей CMS? Я слепил пару блоков для наглядности, чтобы показать как их можно будет подгружать и отображать в XML/XSL, а совсем не собирался направление задавать. Про сам движёк ПХП я даже не думал.
Ещё раз smile
Пример показывает, как можно осуществить модульность + локализацию на XML/XSL (с того топика и ссылается), а совсем не диктует, где что будет находиться и как грузятся модули (тем более, что они автоматом из БД должны грузится в зависимости от настроек.)

Цитата(dm9 @  11.9.2006,  12:27 Найти цитируемый пост)
Потом. Всегда считал неверным пляску от action'a. Я придерживаюсь подхода, при котором сначала загружается базовый шаблон, а потом уже он определяет, что делать дальше (обычно у меня он делает просто <xsl:apply-templates /> -- это аналог твоего поведения, но у меня это лечится, а у тебя нет). И нет такого понятия, как "xslt текущей страницы" или т. п. А у тебя есть шаблон, который зависит от текущего экшена. Честно, не скажу, почему твой подход мне не нравится. Чисто интуитивно -- теряется универсальность. Но сидел думал час, так и не смог придумать примера -- всё же обычно основной контентный блок ровно один, а остальное замечательно вписывается в core.xslt. Придумаю -- скажу smile

Универсальность не теряется, наоборот повышается модульность. Написал ПХП генерящий ХМЛ + ХСЛ шаблон для него. Вот и готовый модуль.

Цитата(dm9 @  11.9.2006,  12:27 Найти цитируемый пост)
P. S.
В concat(concat( , вроде, нет необходимости -- эта ф-ция понимает сколько угодно параметров? smile

Разве concat не 2 параметра понимает? В С, ПХП, Мускул это вроде та.

Добавлено @ 14:53 
Гы smile Это конечно прикольно было бы получить готовое ядро CMS из 100 строк. Нет уж smile Основная работа впереди.

Цитата(sergej.z @  11.9.2006,  12:42 Найти цитируемый пост)
Универсальность не теряется, наоборот повышается модульность. Написал ПХП генерящий ХМЛ + ХСЛ шаблон для него. Вот и готовый модуль.

От чего нибудь всегда надо плясать. Универсально "для всего" один шаблон написать не получится, сколькими ты его функциями не пичкай. 

Универсальность хороша там, где не важны конкретные особенности. И универсальность всегда обратно пропорциональна скорости выполнения и времени написания. Чем конкретнее модуль, тем лучше его и делать конкретнее.




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 11.9.2006, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Почитал про concat. Действительно, удобно. Надо будет переделать.

Цитата(dm9 @  11.9.2006,  12:27 Найти цитируемый пост)
Далжен быть просто addGroup, 


В принципе я так и думал группам просто имена давать, а в шаблоне разбираться, куда с каким именем лепить. Но это просто надстройка над тем ядром, которое я написал. Просто на бесконечном уровне абстракции надо намного больше времени для работающего варианта.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 12.9.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(dm9 @  11.9.2006,  12:27 Найти цитируемый пост)
То есть на уровне движка рулить "лево-право" считаю неправильным. Далжен быть просто addGroup, а рулиться эти группы должны в шаблонах (core.xslt or smth.) Потому что поменять местами право и лево -- это, согласись, дизайн, а не логика. А дизайн должен быть в шаблонах, чтобы потом не пришлось гоняться по всем кодам и менять право с левом.


Гы! Я понял, почему неразберишка вышла. Из за того, что я назвал группы left и right. Господи, да замените лево/право не синее/зелёное, или 1/2. Естественно, что в конечном итоге XSL решит куда, какую поставить и лево направо поставит, если юзер захочет. А пример на то он и пример, чтобы понятным быть.

Цитата(dm9 @  11.9.2006,  12:27 Найти цитируемый пост)
Я придерживаюсь подхода, при котором сначала загружается базовый шаблон, а потом уже он определяет, что делать дальше (обычно у меня он делает просто <xsl:apply-templates /> -- это аналог твоего поведения, но у меня это лечится, а у тебя нет).

Проблема подхода apply-templates в том, что уже ХМЛ в этом случае орпеделяет структуру выхода. Это не всегда надо. Не получится все элементы назвать по-разному, чотбы не дублировать инфу. А если у тебя дав одинакого названных элемента с разным содержанием, то придётся в  apply-templates передавать параметр, определяющий. Так какая разница получается тогда в apply-templates и call-template?

Мой подход больше похож на вызов функции. Какую надо, ту и вызываем. Да, теряется универсальность при которой бросиш кусок ХМЛ и шаблон тебе его отпарсит сам, но здесь встаёт то факт, что ХМЛ определяет положение элементов, а я хочу, чтобы это делал исключительно шаблон. 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
IZ@TOP
Дата 12.9.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Я тоже за call-templates. Однако мне кажется что AddGroup это не совсем то что нужно. Есть определенный набор шаблонов который определяет основной вид страницы и ее блоки, между тем модули генерируют XML и уже на выходе определяют какие шаблоны должны рулить содержимым и какие блоки должны присутствовать.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 12.9.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(IZ@TOP @  12.9.2006,  13:28 Найти цитируемый пост)
AddGroup 


Повторяю, AddGroup просто добавляет группу в CMS. Где она будет оторбражена (и будет ли отображена вообще) всё ещё решает шаблон естественно. Он может решать это в зависимости от ХМЛ. Это уже по вкусу.

Добавлено @ 15:35 
Цитата(sergej.z @  11.9.2006,  13:16 Найти цитируемый пост)
В принципе я так и думал группам просто имена давать, а в шаблоне разбираться, куда с каким именем лепить. Но это просто надстройка над тем ядром, которое я написал. Просто на бесконечном уровне абстракции надо намного больше времени для работающего варианта. 




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
IZ@TOP
Дата 12.9.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



sergej.z, понял))) В общем тут идет просто вызов модуля и все.

В принципе это уже все будет на уровне ядра. 
Которое, как я надеюсь, в эти выходные выложу для тестов.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 12.9.2006, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(IZ@TOP @  12.9.2006,  13:41 Найти цитируемый пост)
sergej.z, понял))) В общем тут идет просто вызов модуля и все.

В принципе это уже все будет на уровне ядра. 
Которое, как я надеюсь, в эти выходные выложу для тестов. 

Отлично! Хорошие новости!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
IZ@TOP
Дата 12.9.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Цитата(sergej.z @  12.9.2006,  16:50 Найти цитируемый пост)
Отлично! Хорошие новости! 

Раз это так здорово, я там два маленьких файлика кинул для затравки.
Это что-то вроде примера интерфейсности и абстрактности системных классов.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 12.9.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(dm9 @  11.9.2006,  12:27 Найти цитируемый пост)
Я придерживаюсь подхода, при котором сначала загружается базовый шаблон, а потом уже он определяет, что делать дальше

Тут кстати проблема с подгрузкой неопределённых ХСЛ шаблонов. А именно: Нельзя в коде ХСЛ подгрузить шаблон, определённый в ХМЛ или где нибудь ещё. Если бы это было возможным, многое стало бы легче. 
пример: <xsl:include src="$какая_то_переменная.xsl"> нельзя!
Я неsсколько недель над этим бился. ХСЛТ такого на позволяет. Единственно, где можно динамически определить имя шблона - в генерируемом ХМЛ . Один раз при загрузке. Поэтому я сделал подгрузку ХСЛ модуля в первую очередь, а он уже тянет вполне определённые ХСЛ (core, header, footer)

Добавлено @ 17:45 
Цитата(IZ@TOP @  12.9.2006,  15:24 Найти цитируемый пост)
Раз это так здорово, я там два маленьких файлика кинул для затравки.
Это что-то вроде примера интерфейсности и абстрактности системных классов.

Как только появится возможность, посмотрю (где то послезавтра вечером)


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
IZ@TOP
Дата 12.9.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



sergej.z, а что мешает делать import в шаблоне? 
К примеру включаемый XSLT шаблон имеет имя вроде
file-003154.41.5151.5615.1.xsl
При запросе пользователем там компануется XSLT шаблон на сервере, я так сам делал.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
smartov
Дата 12.9.2006, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



http://sergejzr.jino-net.ru/vcms/ мёртв smile

Добавлено @ 23:39 
Оп, прошу прощения, не мёртв! Но хочу обратить внимание что в Опере ничета не работает
PM MAIL   Вверх
IZ@TOP
Дата 13.9.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



smartov, опера тихонько курит в сторонке.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 13.9.2006, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(IZ@TOP @  12.9.2006,  16:00 Найти цитируемый пост)
sergej.z, а что мешает делать import в шаблоне? 
К примеру включаемый XSLT шаблон имеет имя вроде
file-003154.41.5151.5615.1.xsl
При запросе пользователем там компануется XSLT шаблон на сервере, я так сам делал. 

Компановать ХСЛ динамически конечно можно. Только с кэшированием надо всё правильно определить. В принципе неплохое решение. Хотя конечно с ХСЛ файлами было бы элегантнее, но если нам возможность не дают (кстати, кто нить знарт, почему?)...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Vingrad CMS | Следующая тема »


 




[ Время генерации скрипта: 0.2043 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.