Очень люблю XSLT за полное разделение контента с шаблоном. И вот обнаружли что в друпале нет поддержки XSLT. Более того, часть HTML кода генерится не в theme/* ... а в модулях самой админки... Ужос...
Не у кого не было мыслей перенесения этой замечательной админки на использование xsl шаблонов.
Комментарии
Ладно. А какие тогда cms вы можете мне порекомендовать, которые изначально построены с использованием XSLT
http://www.yandex.ru/yandsearch?text=XSLT+CMS
Исчю .. стараюсь нашел вот xaraya и e107 думал может рекомендации дадите по ним...
и ваще какое то в зарайе странное xsl
начинается с xar: они что типа свои теги определили... мне это нафиг не надо вообще
вроде [url=http://bricolage.cc/]bricolage[/url] умеет
...SAPID, Popoon и Flux CMS (на основе Popoon). Возможно Вам понравится.
Среди коммерческих CMS можно выделить UlterSuite. Там все основные шаблоны написаны на xslt. Только шаблоны, задающие модульную сетку страницы, сделаны без xslt, так как он там не очень нужен.
Из всего посмотренного понравилось bitflux а еще нашел symphony21 ($49) ... но у обоих, практически нет модулей, поддержки и какой либо культурной документации... возникает ощущени, что эти cms слишком новые.
С друпалом все хорошо. Вот теперь пришла идея. Возможно ли написать движок для шаблонов для xslt. Кажется возможно.
Ага - мне он тоже в своё время понравился, но когда стал вопрос о кастомизации и модулях, тут он и "отвалился"... Мне он тоже показался сырым ещё (это было год назад).
"Возможно всё"... Вопрос "зачем"? Вы сами видели, что
Не придётся ли эти модули переписывать?
Пожалуйста, не подумайте, что я тут на флейм нарываюсь, просто мне интересно Ваше мнение (я сам этим очень сильно интересовался некоторое время тому назад...). И обратите, кстати, внимание на то, что Дрюпал генерит (во всяком случае стандартные модули!) корректный XHTML, а стало быть - XML. Если есть желание напустить на него XSL-транслятор - это можно и так сделать...
И ещё вопрос: Вы смотрели в сторону движка на основе TAL?. TAL это не XSLT, конечно, но что-то похожее.
а хм... что такое XSLT? и чем оно лучше всего остального (и чего остального)? я понимаю, что яндекс рулит, но может кто может просто и доходчиво пояснить? читать многостраничные документы по этому поводу - нет желания...
=== (http://xmlhack.ru/articles/02/02/08/xsltbook.html) ===
...
XSLT - это расширяемый язык стилей для преобразований (от англ. eXtensible Stylesheet Language for Transformations), который используется для описания преобразований структуры документов. XSLT позволяет трансформировать одни документы в другие, пользуясь простыми наборами правил преобразования.
...
=== (http://www.elbib.ru/index.phtml?page=elbib/rus/journal/2003/part5/LL) ===
...
XSLT -- это язык преобразований XML-документов в другой формат, часто с целью представления. Выходными форматами обычно являются XML или HTML.
...
===
Т.е. XML - это данные, XSLT - это инструкции (язык программирования), описывающие, что с этими данными делать.
Прелесть этого всего заключается в стандартизации и (это вытекает из первой "прелести") в том, что таким образом достигается очень хорошая сепарация (разделение) самих данных и представления этих данных.
Это кратенько...
спасибо, то есть, получается базы данных не нужны? или я неправильно понял? помню, что SAPID вроде без базы данных работает, на одном xml, это так? и получается, что Php тоже не нужен?
Нужна БД или нет - на это XSLT не влияет. В SAPID просто реализовано так... Там XML-файлы выступают в роли БД, это всё равно, как написать, например, гостевуху на Perl и использовать текстовые файлы для хранения сообщений...
Т.е. SAPID - это один из возможных вариантов реализации. С таким же успехом, можно было бы хранить данные и в БД.
Про ненужность PHP: в схеме с использованием XML/XSLT PHP часто выступает в роли "клея": т.е. трансляция XML->HTML идёт с использованием XSLT, но получить XML и натравить на него XSL-транслятор - это задача PHP (или другой серверной технологии, типа ASP, JSP, Perl, ...).
Я конечно не знаю насчет поддержки XSLT друпалом, но вот друпаловский модуль import html, который я смотрел на предмет переноса из статики, - его поддерживает например.
SAPID вроде интересная система, но плохое у неё сообщество, его практически и нет... это и странно... и модулей мало...
ага ясно... то есть, вместо xml можно использовать базу данных, а XSLT - это аналог PHP Template в Друпале?
Э-э-э... вместо XML можно использовать БД, только для XSLT всё-равно придётся его (XML) сформировать. Вынуть из БД данные, сформирвать XML и скормить это дело XSLT. Просто в SAPID эта цепочка несколько укорочена.
Ну да - где-то около того. В Дрюпале template engine (любой, не только PHPTemplate) призван выполянть задачу подготовки данных к отображению ("сырые данные" -> HTML или другой формат...) и эта задача очень похожа на один из вариантов применения XSLT (XML -> Output format, например, HTML). Где-то так...
ну так что мешает, например, сделать XSLT Template, если надо?
ага, значит, по идее, данные в SAPID быстрее отображаются (если базы данных нет)? хотя сам по себе XML, говорят, тормознутая вещь...
Да ничего не мешает. Просто надо будет от модулей получать нечто, делать их него XML и скармливать XSLT. Ну и иметь ввиду, что некоторые модули всё же отдают не "сырые данные", а (X)HTML.
Ну если БД нет - это не значит что автоматом всё быстрее работает По скорости SAPID - ничего сказать не могу.
XML - не может быть тормозным по определению - это всего лишь (текстовый) формат данных. А вот парсеры и XSL-трансляторы - да - бывают достаточно требовательными к ресурсам. Но тут я год уже не следил за темой, может всё же народ продвинулся в этом вопросе...
ясно, спасибо за расширенные пояснения... хоть понял, что это такое, на самом деле, как я понимаю xml лучше всего подходит для таких вещей как импорт/экспорт контента, форматирование разное и быстрое переформатирование, в этом он вроде бы очень удобен...
За время дискусии, полазил по исходному коду друпала и в принципе пришел к выводам, что поднять XSL шаблоны не так уж и сложно. Даже с тем что некоторые модули возвращают кроме данных разметку, тоже не сложно справиться.
Я правильно понимаю, что XSLT-преобразование выполняется на стороне клиента, а не сервера?
Если так, то не все клиенты (со старыми браузерами) смогут смотреть сайт.
XSLT-преобразование может выполняться как на клиенте, так и на сервере.
Пожалуйста!
Про импорт/экспорт - да - он для этого хорошо подходит. А вот про "форматирование" - я не особо понял. Что Вы имели ввиду? Разметка внутри XML-документя ни коим образом не влияет на представление самого документа, она лишь структурирует данные. Или Вы не об этом?
я имел ввиду, что удобно в другие форматы переводить...
[b] [/b]
http://www.webmascon.com/topics/technologies/5a.asp
http://www.codenet.ru/webmast/xml/XML-XSL-Forms.php
[b] [/b]
а вообще опен офис его использует - формат опен офисовских файлов это зазипованный зип с xml файлами - можете на их примере посмотреть как это все удобно.
[b] [/b]
только мне не понятно - xml/xsl в вэбе это его потом php парсит и html выдает - или оно идет в броузер и там собирается?
[b] [/b]
Я об этом говорил выше: можно настроить обе схемы. Можно готовить на сервере и отдавать готовый HTML (или, скажем, WML), а можно готовить на сервере только XML и отдавать клиенту XSLT + XML, что б он (клиент) сам занимался формированием того HTML-ля...
В каждом из этих случаев мы получаем свой набор плюсов и минусов. Например, во втором случае, мы "в плюс" получаем (1) уменьшение нагрузки на сервер (генерация выходного файла происходит на клиенте) и (2) уменьшение кол-ва передаваемых данных (т.к. XSLT могут кэшироваться на клиенте, подобно тому, как сейчас это происходит с CSS-файлами). Но и требует этот вариант большего от клиентского ПО...
Что-то я разошёлся...
Если интересно, можно обсуждение продолжить в отдельной теме.
Зачем в отдельной? Эта вполне подходит - XSLT
Я это к тому, что изначально тема касалась применения XSLT в рамках Друпала, а теперь она перерастает в более общую и обширную...
По нашему мнению, для полного счастья в Drupal, как раз не хватает нормального разделения представления и содержания на уровне xml / xslt.
Вариантов решения здесь много. Хотелось бы сохранить совместимость, без необходимости перерабатывать всё самим в одиночку, поэтому реализация абсолютно нового theme engine не целесообразна. Хотя…
До частностей, вроде вызова xslt преобразования из page.tpl.php опускаться не хочется.
Как наш собственный опыт, так и опыт разработчиков flux cms (bitflux) подсказывает, что одним xslt при построении модульной системы отображения обойтись трудно, нужен еще слой над xslt.
Видимо первым результатом будет модификация phptemplate.engine, и xml предоставляющий доступ к сгенерированным данным
Ок! Добьётесь Вы этого разделения путём введения "ещё одного" уровня обработки данных (было: БД->PHP->XHTML, станет БД->PHP->XML->XHTML). Вопрос: зачем?
Такое разделение оправдано в больших проектах со множеством компонентов и/или взаимодействующих приложений третьих фирм. В случае же с Дрюпалом это несколько неоправданная трата ресурсов на доп. уровень абстракции. IMHO, конечно.
Какая цель стоит пред Вами? Зачем Вы хотите разделить Данные и Предстваление таким образом?
Конечно меня здесь закритикуют, просто случайно попал на дискуссию.
У меня был опыт создания сайта xml + xslt в 2002г.
Вот приведу пару замечаний
Если есть просто на сайте xml + xslt то на момент 2002 г. не все броузеры это корректно отображали,
пришлось с помощью sablotron склеивать xml + xslt в один html файл.
Техология xml и xslt в принципе плохо подходит для создания презентационных веб-сайтов.
Полностью согласен, что хорошо когда данные отделены от HTML, так дорогие товарищи, это все намного
проще можно сделать средствами PHP
У меня сайты имеют две директории, к примеру dat и html
в dat хранится PHP скрипт, на основе которого формируется массив с данными (полученными с mysql),
которые нужно отобразить
в html хранится HTML код, в который вставляются данные массива сформированного при выполнение скрипта из дирекории dat
Уверяю Вас, это намного проще и быстрее чем изучать XML, так и есть шкурка выделки не стоит!
Да и вообще, если не нужен форум на сайте или опросник, то грамотнее и быстрее FCKEDITOR и вручную создать
таблицу куда будет скидываться его содержимое.
Если фирме нужен сайт, о ее деятельности, то забудьте о друпале, xml и др модных штучках,
FCKEDITOR + php + mysql и движок сайта с интерфесом для администратора готов будет через 12 часов.
Люди на фирме только спасибо Вам скажут, поскольку административный интерфейс вашего сайта будет
намного проще и понятнее друпала.
Мода вопрос времени и пользоваться технологией, если она вам не идёт все равно что с кривыми ногами в мини-юбку.
Все хорошо к месту.
В данном случае это будет ещё один уровень абстракции. Если же проект действительно работает в разнородной среде где куча приложений выгружают-загружают данный то можно использовать XSLT, для преобразований.
К тому же броузерам должно быть вообще параллельно, поскольку преобразование можно делать на сервере и клиент увидит уже распарсенный HTML...
незнаю что вы тут такой кипеш подняли, я сделал свой движок сайта на XML + XSLT (http://feeleen.ru) - всё очень удобно и просто. Работает тоже достаточно быстро, причем можно еще настроить кеширование.
В общем моё мнение такое: используйте те инструменты, которые прежде всего удобны вам и позволяют решить поставленные задачи.
Почему только для .NET?
Такие ограничения в таком много полярном мире
Кстати как у тебя раскраска листингов сделана?
а кто сказал, что .NET - это ограничения? ))
ЗЫ. листинги - не помню уже, то ли копипаст из студии (с форматированием), то ли какая-то он-лайн раскраска кода на каком-то сайте, не помню уже точно, много всего перепробовал...
но скорее первое
Отчасти и для товарища B.X я написал статью скомментариями в исходном коде, о том, как используя XML и XSLT импортировать данные в drupal. В данном случае сценарий преобразования XSLT определяет, как будет получен набор инструкций для БД, чтобы создать структуру данных, и вписать ее в рамки схемы базы данных drupal.
с xslt есть cms:
umi.cms (http://umi-cms.ru/) и ekvixcms (http://www.ekvixgroup.com)
А в чем их существенные преимущества? Сложно с такими гостями... Пришел ляпнул не к месту и исчез...
А тут что за админка используется? Понравилось, хочу такую
Мне кажется что технология ради технологии смысла не имеет, админка для админа - зачем её усложнять?