Pull to refresh
24
Karma
0
Rating
Александр @Holden

User

Использование xslt-шаблонов в реальных проектах

PHP *XSLT *
В статье вы не найдёте сравнительных тестов шаблонизаторов. Зато найдёте информацию об использовании xslt в качестве шаблонизатора на реальных проектах. Рассмотрены возможности именованных шаблонов, использование шаблонов-функций, справочников.

1. Структура проекта


Обычно страница сайта состоит из нескольких общих блоков (меню, футер, ...) и контентной части, которую для общности будем называть основным блоком. Все эти блоки размещаются внутри некоторого индексного шаблона, который знает в каком месте какой блок отобразить: меню должно быть вверху, основной блок в центре, а футер внизу.

Получаем следующую структуру
/themes - здесь раполагаются все шаблоны
/themes/index/main.xsl - индексный шаблон
/themes/models/user.xsl - именованные шаблоны, которые относятся к модели пользователя
/themes/inc/functions.xsl - именованные шаблоны-функции
/themes/blocks/footer.xsl - шаблон футера
/themes/blocks/menu.xsl - шаблон меню
/themes/cabinet/main.xsl - шаблон основного блока главной страницы кабинета пользователя


Контроллер главной страницы кабинета пользователя работает следующим образом:
  1. получает данные для основного блока, обрабатывает их с помощью /themes/cabinet/main.xsl и результат (готовый html) помещает в итоговый xml
  2. аналогично обрабатывает данные для других блоков (меню, футер) и результат помещает в xml
  3. итоговый xml, в котором находятся данные всех блоков, обрабатывает с помощью индексного шаблона /themes/index/main.xsl и результат отдаёт пользователю в виде html.

Читать дальше →
Total votes 36: ↑25 and ↓11 +14
Views 31K
Comments 119

Решение проблем обработки XSLT на стороне клиента (часть 2)

XSLT *
В прошлой статье я описал как реализовать инклудинг и кеширование при обработке xsl-темплейтов на стороне клиента. Сегодня я раскажу с помощью каких инструментов можно проводить отладку xslt-преобразований на стороне клиента и о работе конструкции <xsl:value-of select=«xxx» disable-output-escaping=«yes»/> в firefox.

Отладка XSLT на клиенте


Во время обработки xsl-документов в браузере могут происходить различные ошибки:
1) сетевые ошибки — когда xml или xsl данные не были получены;
2) ошибки обработки шаблонов.
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 7.6K
Comments 11

Решение проблем обработки XSLT на стороне клиента

XSLT *
Вы уже используете XSLT в качестве шаблонизатора на сервере. Настал черёд перенести xsl-трансформацию на клиента. Можно, например, воспользоваться способом описанным в статье На клиенте! Получить XML! Получить XSL! Сделать XHTML! Марш!. Но это было бы слишком просто, потому что каждый браузер добавляет несколько своих нюансов при работе с XSLT.

Вопросы о способе загрузки xsl- и xml-файлов и их обработки в различных браузерах был рассмотрен в указанной выше статье. Рассмотрим другие вопросы:
1) инклудинг;
2) кеширование;

Все примеры опубликованы на этой странице ra-project.net/xsl_tests и работают в браузерах Opera, Chrome, IE6, Firefox, Safari.
Читать дальше →
Total votes 39: ↑33 and ↓6 +27
Views 6.5K
Comments 40

innerHTML в таблицах

JavaScript *
Известно, что в IE свойство innerHTML для таблиц является свойством только для чтения. support.microsoft.com/kb/239832

В итоге для изменения содержимого таблицы, нужно бегать по DOM. Что не всегда удобно, особенно если для каждой ячейки назначено какое-то событие.
Я надеялся, что в jquery эта ситуация исправлениа. Но нет. Код
$('#id_tr').html('<td><button onclick="my_f(new_id)">new action</button></td>');
тоже не работает должным образом.

Читать дальше →
Total votes 11: ↑7 and ↓4 +3
Views 4K
Comments 14

Тест PHP-функции preg_match

PHP *
Если PHP-функции preg_match в качестве исходной строки передать строку состоящую из 100000 (ста тысяч) или более силволов, то она вернёт неверный результат. Точнее результатом в этом случае всегда будет false.

Проверяется очень просто.
Читать дальше →
Total votes 59: ↑41 and ↓18 +23
Views 16K
Comments 42

Zend Studio for Eclipse 6.1.2

Lumber room
Вышел Zend Studio for Eclipse 6.1.2

Релиз включает в себя обновления:
— Eclipse Platorm обновлён до версии SR-2 (Eclipse 3.4.2)
— Eclipse Datatools platform — до последней версии SR-2 (1.6.2).
— Eclipse Web tools platform — также до версии SR-2 (3.0.4).
— Eclipse Target Management (RSE) — теперь SR-2 (3.0.3).
— PHPUnit — обновлён с версии 3.3.9 до 3.3.15
— Zend Framework — теперь использеутся версия 1.7.8, добавлена в качестве дополнительной опции библиотека Dojo 1.2
Оригинал: http://static.zend.com/topics/Zend-Studio-Release-Notes-v6-1-2.txt

Качаем отсюда: http://www.zend.com/en/products/studio/downloads
А вот прямые ссылки
Linux: http://downloads.zend.com/studio-eclipse/6.1.2/ZendStudioForEclipse-6.1.2.tar.gz (343 M)
Windows: http://downloads.zend.com/studio-eclipse/6.1.2/ZendStudioForEclipse-6.1.2.zip (326 M)
Mac: http://downloads.zend.com/studio-eclipse/6.1.2/ZendStudioForEclipse-6.1.2.dmg (314 M)
Total votes 11: ↑11 and ↓0 +11
Views 526
Comments 12

Теперь и Juick можно вставить куда угодно

Self Promo
UPD: Сервис переехал на новый домен juick.ra-project.net
UPD2 (07.11.2011): Проект на github github.com/Rabotyahoff/juick_status

По мотивам топика Твиттер теперь можно вставить куда угодно от Vass. В этом топике мне понравилась описываемая идея вставки последних сообщений с вашего твиттера в блоги и форумы в виде картинки.

Опробовав его, я решил поискать что-то подобное для сервиса микроблогинга juick, но ничего не нашёл.
Поэтому написал такой же сервис и для juick'а.

Сервис доступен по адресу juick.webapplication.ru.
Выглядит это так:

жуйк RA

Ссылка на ваше последнее сообщение в жуйке будет выглядеть следующим образом
juick.webapplication.ru/{ваш логин}.png
или
juick.webapplication.ru/{ваш логин}.gif
или
juick.webapplication.ru/{ваш логин}.jpg
Всё зависит от того, какой формат изображения вам больше всего нравится.

Для вставки в форум можно использовать такой bb-код:
[url=http://juick.com/{ваш логин}/][img]http://juick.webapplication.ru/{ваш логин}.png[/img][/url]
Total votes 53: ↑45 and ↓8 +37
Views 627
Comments 31

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity