XSLT

Главные вкладки

Аватар пользователя Гость Гость (не проверено) 24 августа 2006 в 13:06

Очень люблю XSLT за полное разделение контента с шаблоном. И вот обнаружли что в друпале нет поддержки XSLT. Более того, часть HTML кода генерится не в theme/* ... а в модулях самой админки... Ужос...

Не у кого не было мыслей перенесения этой замечательной админки на использование xsl шаблонов.

Лучший ответ

Аватар пользователя buga buga (не проверено) 15 января 2008 в 1:43

А тут что за админка используется? Понравилось, хочу такую

Комментарии

Аватар пользователя Гость Гость (не проверено) 24 августа 2006 в 18:33

Ладно. А какие тогда cms вы можете мне порекомендовать, которые изначально построены с использованием XSLT

Аватар пользователя Гость Гость (не проверено) 24 августа 2006 в 18:57

Исчю .. стараюсь нашел вот xaraya и e107 думал может рекомендации дадите по ним...
и ваще какое то в зарайе странное xsl

начинается с xar: они что типа свои теги определили... мне это нафиг не надо вообще

Аватар пользователя Сергей К Сергей К (не проверено) 29 августа 2006 в 11:33

Среди коммерческих CMS можно выделить UlterSuite. Там все основные шаблоны написаны на xslt. Только шаблоны, задающие модульную сетку страницы, сделаны без xslt, так как он там не очень нужен.

Аватар пользователя Гость Гость (не проверено) 30 августа 2006 в 16:16

Из всего посмотренного понравилось bitflux а еще нашел symphony21 ($49) ... но у обоих, практически нет модулей, поддержки и какой либо культурной документации... возникает ощущени, что эти cms слишком новые.

С друпалом все хорошо. Вот теперь пришла идея. Возможно ли написать движок для шаблонов для xslt. Кажется возможно.

Аватар пользователя rgb rgb 1 сентября 2006 в 15:57

Гость wrote:
Из всего посмотренного понравилось bitflux

Ага - мне он тоже в своё время понравился, но когда стал вопрос о кастомизации и модулях, тут он и "отвалился"... Мне он тоже показался сырым ещё (это было год назад).

Гость wrote:
Возможно ли написать движок для шаблонов для xslt. Кажется возможно.

"Возможно всё"... Вопрос "зачем"? Вы сами видели, что

Гость wrote:
часть HTML кода генерится не в theme/* … а в модулях самой админки…

Не придётся ли эти модули переписывать?

Пожалуйста, не подумайте, что я тут на флейм нарываюсь, просто мне интересно Ваше мнение (я сам этим очень сильно интересовался некоторое время тому назад...). И обратите, кстати, внимание на то, что Дрюпал генерит (во всяком случае стандартные модули!) корректный XHTML, а стало быть - XML. Если есть желание напустить на него XSL-транслятор - это можно и так сделать...

И ещё вопрос: Вы смотрели в сторону движка на основе TAL?. TAL это не XSLT, конечно, но что-то похожее.

Аватар пользователя B.X B.X 1 сентября 2006 в 16:07

а хм... что такое XSLT? и чем оно лучше всего остального (и чего остального)? я понимаю, что яндекс рулит, но может кто может просто и доходчиво пояснить? читать многостраничные документы по этому поводу - нет желания...

Аватар пользователя rgb rgb 1 сентября 2006 в 16:41

=== (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 - это инструкции (язык программирования), описывающие, что с этими данными делать.

Прелесть этого всего заключается в стандартизации и (это вытекает из первой "прелести") в том, что таким образом достигается очень хорошая сепарация (разделение) самих данных и представления этих данных.

Это кратенько...

Аватар пользователя B.X B.X 1 сентября 2006 в 16:47

спасибо, то есть, получается базы данных не нужны? или я неправильно понял? помню, что SAPID вроде без базы данных работает, на одном xml, это так? и получается, что Php тоже не нужен?

Аватар пользователя rgb rgb 1 сентября 2006 в 17:17

B.X wrote:
получается базы данных не нужны?

Нужна БД или нет - на это XSLT не влияет. В SAPID просто реализовано так... Там XML-файлы выступают в роли БД, это всё равно, как написать, например, гостевуху на Perl и использовать текстовые файлы для хранения сообщений...

Т.е. SAPID - это один из возможных вариантов реализации. С таким же успехом, можно было бы хранить данные и в БД.

Про ненужность PHP: в схеме с использованием XML/XSLT PHP часто выступает в роли "клея": т.е. трансляция XML->HTML идёт с использованием XSLT, но получить XML и натравить на него XSL-транслятор - это задача PHP (или другой серверной технологии, типа ASP, JSP, Perl, ...).

Аватар пользователя Onza Onza 1 сентября 2006 в 16:48

Я конечно не знаю насчет поддержки XSLT друпалом, но вот друпаловский модуль import html, который я смотрел на предмет переноса из статики, - его поддерживает например.

Аватар пользователя rgb rgb 1 сентября 2006 в 17:37

B.X wrote:
то есть, вместо xml можно использовать базу данных,

Э-э-э... вместо XML можно использовать БД, только для XSLT всё-равно придётся его (XML) сформировать. Вынуть из БД данные, сформирвать XML и скормить это дело XSLT. Просто в SAPID эта цепочка несколько укорочена.

B.X wrote:
а XSLT - это аналог PHP Template в Друпале?

Ну да - где-то около того. В Дрюпале template engine (любой, не только PHPTemplate) призван выполянть задачу подготовки данных к отображению ("сырые данные" -> HTML или другой формат...) и эта задача очень похожа на один из вариантов применения XSLT (XML -> Output format, например, HTML). Где-то так...

Аватар пользователя B.X B.X 1 сентября 2006 в 17:40

ну так что мешает, например, сделать XSLT Template, если надо?
ага, значит, по идее, данные в SAPID быстрее отображаются (если базы данных нет)? хотя сам по себе XML, говорят, тормознутая вещь...

Аватар пользователя rgb rgb 1 сентября 2006 в 18:05

Quote:
ну так что мешает, например, сделать XSLT Template, если надо?

Да ничего не мешает. Просто надо будет от модулей получать нечто, делать их него XML и скармливать XSLT. Ну и иметь ввиду, что некоторые модули всё же отдают не "сырые данные", а (X)HTML.

Quote:
о идее, данные в SAPID быстрее отображаются (если базы данных нет)? хотя сам по себе XML, говорят, тормознутая вещь…

Ну если БД нет - это не значит что автоматом всё быстрее работает Smile По скорости SAPID - ничего сказать не могу.

XML - не может быть тормозным по определению - это всего лишь (текстовый) формат данных. А вот парсеры и XSL-трансляторы - да - бывают достаточно требовательными к ресурсам. Но тут я год уже не следил за темой, может всё же народ продвинулся в этом вопросе...

Аватар пользователя B.X B.X 1 сентября 2006 в 19:06

ясно, спасибо за расширенные пояснения... хоть понял, что это такое, на самом деле, как я понимаю xml лучше всего подходит для таких вещей как импорт/экспорт контента, форматирование разное и быстрое переформатирование, в этом он вроде бы очень удобен...

Аватар пользователя Гость Гость (не проверено) 1 сентября 2006 в 19:35

За время дискусии, полазил по исходному коду друпала и в принципе пришел к выводам, что поднять XSL шаблоны не так уж и сложно. Даже с тем что некоторые модули возвращают кроме данных разметку, тоже не сложно справиться.

Аватар пользователя inc inc 2 сентября 2006 в 20:34

Я правильно понимаю, что XSLT-преобразование выполняется на стороне клиента, а не сервера?
Если так, то не все клиенты (со старыми браузерами) смогут смотреть сайт.

Аватар пользователя rgb rgb 3 сентября 2006 в 1:44

B.X wrote:
ясно, спасибо за расширенные пояснения…

Пожалуйста! Smile

B.X wrote:
как я понимаю xml лучше всего подходит для таких вещей как импорт/экспорт контента, форматирование разное и быстрое переформатирование, в этом он вроде бы очень удобен…

Про импорт/экспорт - да - он для этого хорошо подходит. А вот про "форматирование" - я не особо понял. Что Вы имели ввиду? Разметка внутри XML-документя ни коим образом не влияет на представление самого документа, она лишь структурирует данные. Или Вы не об этом?

Аватар пользователя kiev1 kiev1 3 сентября 2006 в 13:48

[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]

Аватар пользователя rgb rgb 3 сентября 2006 в 14:59

kiev1 wrote:
только мне не понятно - xml/xsl в вэбе это его потом php парсит и html выдает - или оно идет в броузер и там собирается?

Я об этом говорил выше: можно настроить обе схемы. Можно готовить на сервере и отдавать готовый HTML (или, скажем, WML), а можно готовить на сервере только XML и отдавать клиенту XSLT + XML, что б он (клиент) сам занимался формированием того HTML-ля...

В каждом из этих случаев мы получаем свой набор плюсов и минусов. Например, во втором случае, мы "в плюс" получаем (1) уменьшение нагрузки на сервер (генерация выходного файла происходит на клиенте) и (2) уменьшение кол-ва передаваемых данных (т.к. XSLT могут кэшироваться на клиенте, подобно тому, как сейчас это происходит с CSS-файлами). Но и требует этот вариант большего от клиентского ПО...

Что-то я разошёлся... Smile

Если интересно, можно обсуждение продолжить в отдельной теме.

Аватар пользователя rgb rgb 4 сентября 2006 в 10:10

Dan wrote:
Эта вполне подходит - XSLT

Я это к тому, что изначально тема касалась применения XSLT в рамках Друпала, а теперь она перерастает в более общую и обширную...

Аватар пользователя Vitaliy Vitaliy (не проверено) 12 сентября 2006 в 22:31

По нашему мнению, для полного счастья в Drupal, как раз не хватает нормального разделения представления и содержания на уровне xml / xslt.

Вариантов решения здесь много. Хотелось бы сохранить совместимость, без необходимости перерабатывать всё самим в одиночку, поэтому реализация абсолютно нового theme engine не целесообразна. Хотя…

До частностей, вроде вызова xslt преобразования из page.tpl.php опускаться не хочется.

Как наш собственный опыт, так и опыт разработчиков flux cms (bitflux) подсказывает, что одним xslt при построении модульной системы отображения обойтись трудно, нужен еще слой над xslt.

Видимо первым результатом будет модификация phptemplate.engine, и xml предоставляющий доступ к сгенерированным данным

Аватар пользователя rgb rgb 13 сентября 2006 в 8:16

Quote:
По нашему мнению, для полного счастья в Drupal, как раз не хватает нормального разделения представления и содержания на уровне xml / xslt.

Ок! Добьётесь Вы этого разделения путём введения "ещё одного" уровня обработки данных (было: БД->PHP->XHTML, станет БД->PHP->XML->XHTML). Вопрос: зачем?

Такое разделение оправдано в больших проектах со множеством компонентов и/или взаимодействующих приложений третьих фирм. В случае же с Дрюпалом это несколько неоправданная трата ресурсов на доп. уровень абстракции. IMHO, конечно.

Какая цель стоит пред Вами? Зачем Вы хотите разделить Данные и Предстваление таким образом?

Аватар пользователя spin76 spin76 10 апреля 2007 в 16:37

Конечно меня здесь закритикуют, просто случайно попал на дискуссию.

У меня был опыт создания сайта 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 часов.

Люди на фирме только спасибо Вам скажут, поскольку административный интерфейс вашего сайта будет
намного проще и понятнее друпала.

Аватар пользователя PVasili PVasili 10 апреля 2007 в 17:26

Мода вопрос времени и пользоваться технологией, если она вам не идёт все равно что с кривыми ногами в мини-юбку.
Все хорошо к месту.
В данном случае это будет ещё один уровень абстракции. Если же проект действительно работает в разнородной среде где куча приложений выгружают-загружают данный то можно использовать XSLT, для преобразований.
К тому же броузерам должно быть вообще параллельно, поскольку преобразование можно делать на сервере и клиент увидит уже распарсенный HTML...

Аватар пользователя Гость Гость (не проверено) 21 июня 2007 в 18:10

незнаю что вы тут такой кипеш подняли, я сделал свой движок сайта на XML + XSLT (http://feeleen.ru) - всё очень удобно и просто. Работает тоже достаточно быстро, причем можно еще настроить кеширование.

В общем моё мнение такое: используйте те инструменты, которые прежде всего удобны вам и позволяют решить поставленные задачи.

Аватар пользователя Гость Гость (не проверено) 8 июля 2007 в 15:55

а кто сказал, что .NET - это ограничения? ))

ЗЫ. листинги - не помню уже, то ли копипаст из студии (с форматированием), то ли какая-то он-лайн раскраска кода на каком-то сайте, не помню уже точно, много всего перепробовал...
но скорее первое

Аватар пользователя Scramble Scramble 18 сентября 2007 в 22:35

Отчасти и для товарища B.X я написал статью скомментариями в исходном коде, о том, как используя XML и XSLT импортировать данные в drupal. В данном случае сценарий преобразования XSLT определяет, как будет получен набор инструкций для БД, чтобы создать структуру данных, и вписать ее в рамки схемы базы данных drupal.