|
|
|
dm9 |
|
|||
Дмитрий Копытин Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Да спасёт тебя Великий Ctrl+Shift+F в Зенде Сергей. Основным недостатком данного подхода считаю блочность. Ты базировался на PHP-Nuke? Да, он болеет этим, и это плохо. addRightGroup -- скажи, а если колонок не две, а три? А если на главной странице 4 колонки, а внутри 2? А если контентный блок есть ещё в шапке (а он обычно есть -- хотя бы баннер)? То есть на уровне движка рулить "лево-право" считаю неправильным. Далжен быть просто addGroup, а рулиться эти группы должны в шаблонах (core.xslt or smth.) Потому что поменять местами право и лево -- это, согласись, дизайн, а не логика. А дизайн должен быть в шаблонах, чтобы потом не пришлось гоняться по всем кодам и менять право с левом. Потом. Всегда считал неверным пляску от action'a. Я придерживаюсь подхода, при котором сначала загружается базовый шаблон, а потом уже он определяет, что делать дальше (обычно у меня он делает просто <xsl:apply-templates /> -- это аналог твоего поведения, но у меня это лечится, а у тебя нет). И нет такого понятия, как "xslt текущей страницы" или т. п. А у тебя есть шаблон, который зависит от текущего экшена. Честно, не скажу, почему твой подход мне не нравится. Чисто интуитивно -- теряется универсальность. Но сидел думал час, так и не смог придумать примера -- всё же обычно основной контентный блок ровно один, а остальное замечательно вписывается в core.xslt. Придумаю -- скажу P. S. В concat(concat( , вроде, нет необходимости -- эта ф-ция понимает сколько угодно параметров? |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
dm9, дельные вещи говоришь.
|
|||
|
||||
sergejzr |
|
||||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
И с чего вы взяли, что этото пример определяет поведение будующей CMS? Я слепил пару блоков для наглядности, чтобы показать как их можно будет подгружать и отображать в XML/XSL, а совсем не собирался направление задавать. Про сам движёк ПХП я даже не думал. Ещё раз Пример показывает, как можно осуществить модульность + локализацию на XML/XSL (с того топика и ссылается), а совсем не диктует, где что будет находиться и как грузятся модули (тем более, что они автоматом из БД должны грузится в зависимости от настроек.) Универсальность не теряется, наоборот повышается модульность. Написал ПХП генерящий ХМЛ + ХСЛ шаблон для него. Вот и готовый модуль.
Разве concat не 2 параметра понимает? В С, ПХП, Мускул это вроде та. Добавлено @ 14:53 Гы Это конечно прикольно было бы получить готовое ядро CMS из 100 строк. Нет уж Основная работа впереди.
От чего нибудь всегда надо плясать. Универсально "для всего" один шаблон написать не получится, сколькими ты его функциями не пичкай. Универсальность хороша там, где не важны конкретные особенности. И универсальность всегда обратно пропорциональна скорости выполнения и времени написания. Чем конкретнее модуль, тем лучше его и делать конкретнее. |
||||
|
|||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Почитал про concat. Действительно, удобно. Надо будет переделать.
В принципе я так и думал группам просто имена давать, а в шаблоне разбираться, куда с каким именем лепить. Но это просто надстройка над тем ядром, которое я написал. Просто на бесконечном уровне абстракции надо намного больше времени для работающего варианта. |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Гы! Я понял, почему неразберишка вышла. Из за того, что я назвал группы left и right. Господи, да замените лево/право не синее/зелёное, или 1/2. Естественно, что в конечном итоге XSL решит куда, какую поставить и лево направо поставит, если юзер захочет. А пример на то он и пример, чтобы понятным быть. Проблема подхода apply-templates в том, что уже ХМЛ в этом случае орпеделяет структуру выхода. Это не всегда надо. Не получится все элементы назвать по-разному, чотбы не дублировать инфу. А если у тебя дав одинакого названных элемента с разным содержанием, то придётся в apply-templates передавать параметр, определяющий. Так какая разница получается тогда в apply-templates и call-template? Мой подход больше похож на вызов функции. Какую надо, ту и вызываем. Да, теряется универсальность при которой бросиш кусок ХМЛ и шаблон тебе его отпарсит сам, но здесь встаёт то факт, что ХМЛ определяет положение элементов, а я хочу, чтобы это делал исключительно шаблон. |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Я тоже за call-templates. Однако мне кажется что AddGroup это не совсем то что нужно. Есть определенный набор шаблонов который определяет основной вид страницы и ее блоки, между тем модули генерируют XML и уже на выходе определяют какие шаблоны должны рулить содержимым и какие блоки должны присутствовать.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Повторяю, AddGroup просто добавляет группу в CMS. Где она будет оторбражена (и будет ли отображена вообще) всё ещё решает шаблон естественно. Он может решать это в зависимости от ХМЛ. Это уже по вкусу. Добавлено @ 15:35 |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
sergej.z, понял))) В общем тут идет просто вызов модуля и все.
В принципе это уже все будет на уровне ядра. Которое, как я надеюсь, в эти выходные выложу для тестов. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
||||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Раз это так здорово, я там два маленьких файлика кинул для затравки. Это что-то вроде примера интерфейсности и абстрактности системных классов. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
sergejzr |
|
||||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Тут кстати проблема с подгрузкой неопределённых ХСЛ шаблонов. А именно: Нельзя в коде ХСЛ подгрузить шаблон, определённый в ХМЛ или где нибудь ещё. Если бы это было возможным, многое стало бы легче. пример: <xsl:include src="$какая_то_переменная.xsl"> нельзя! Я неsсколько недель над этим бился. ХСЛТ такого на позволяет. Единственно, где можно динамически определить имя шблона - в генерируемом ХМЛ . Один раз при загрузке. Поэтому я сделал подгрузку ХСЛ модуля в первую очередь, а он уже тянет вполне определённые ХСЛ (core, header, footer) Добавлено @ 17:45
Как только появится возможность, посмотрю (где то послезавтра вечером) |
||||
|
|||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
sergej.z, а что мешает делать import в шаблоне?
К примеру включаемый XSLT шаблон имеет имя вроде file-003154.41.5151.5615.1.xsl При запросе пользователем там компануется XSLT шаблон на сервере, я так сам делал. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
smartov |
|
|||
свой собственный Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: нет Всего: 259 |
http://sergejzr.jino-net.ru/vcms/ мёртв
Добавлено @ 23:39 Оп, прошу прощения, не мёртв! Но хочу обратить внимание что в Опере ничета не работает |
|||
|
||||
IZ@TOP |
|
|||
Панда-бир! Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
smartov, опера тихонько курит в сторонке.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Компановать ХСЛ динамически конечно можно. Только с кэшированием надо всё правильно определить. В принципе неплохое решение. Хотя конечно с ХСЛ файлами было бы элегантнее, но если нам возможность не дают (кстати, кто нить знарт, почему?)... |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Vingrad CMS | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |