Pull to refresh

Практический XSLT. Использование в качестве шаблонизатора

Reading time 10 min
Views 49K
XSLT *
В сети доступно масса документации по языку XSL. Данный раздел не претендует на роль документации по языку, а лишь кратко, по шагам объясняет, как создать свой XSLT-шаблон.

Описанная ниже схема успешно мною используется уже более 3 лет. По началу я к XSLT относился с большой опаской (особенно, когда разбирал чужие исходники), однако однажды поняв, что к чему, уже не представляю, как без него можно работать.
Читать дальше →
Total votes 67: ↑61 and ↓6 +55
Comments 100

Практический XSLT. Использование в качестве шаблонизатора. Часть 2

Reading time 7 min
Views 16K
XSLT *
В предыдущей статье мы разобрали основные аспекты построения шаблона с помощью XSLT. Однако, для полноценного шаблона нужно не только выводить меню сайта, но также и текстовый материал документа.
Читать дальше →
Total votes 30: ↑27 and ↓3 +24
Comments 37

xslt-преобразование на стороне клиента.

Reading time 2 min
Views 910
Lumber room
Я приверженец xml. Мне очень нравится подход к проектированию вэб-приложений при котором бизнесс-логика отделена от представления посредствам xml/xslt. Я не сторонник изобретения велосипедов (шаблонизаторов типа Smarty), и вообще, прикручивания рогов и педалей к лопате.

На днях задался целью выяснить каких успехов достигли разработчики браузеров на ниве client side xslt-преобразования. Потому как выполнять преобразование на сервере не интересно — жрутся рессурсы, расходуется канал (что особо важно для пользователей слабеньких каналов и мощных компьютеров). Да и вообще, преобразование на стороне клиента на мой взгляд просто правильнее. Задача отображения документа — есть задача браузера. Вот пусть он этим и занимается.
Читать дальше →
Total votes 4: ↑2 and ↓2 0
Comments 3

Vim как IDE для веб-разработки, и не только.

Reading time 12 min
Views 98K
VIM *
В данной статье рассматриваются мощные плагины, позволяющие повысить удобство разработки в VIM, а также даются ценные указания по их доработке и использованию. В том числе, используемых команд и горячих клавиш.

Рассмотрена настройка через конфигурационный файл vimrc и приведены ссылки на статьи с описанием отдельных моментов.

Кого-то VIM оттолкнет, показавшись поначалу слишком сложным или неудобным. Однако не стоит недооценивать его гибкость и возможность настройки себя, ведь из VIM можно буквально вылепить идеальный редактор/IDE, таким, каким вы представляете его себе.

Надеюсь, что эта статья поможет читателю убедиться в этом. Безусловно, она ориентирована, в первую очередь, на опытных пользователей Vim'а, но и новички смогут почерпнуть из нее немало полезного.

Я постарался писать как можно компактней, но без потери содержательной части, но статья все-равно вышла довольно объемной. Материал логически разбит на несколько разделов и совсем не обязательно читать его по порядку. Тем не менее, прочитать сведения по установке плагинов и настройке vimrc я рекомендую настоятельно.


Читать дальше →
Total votes 78: ↑75 and ↓3 +72
Comments 62

Делаем SharePoint Web Part используя xml/xsl

Reading time 6 min
Views 6.6K
SharePoint *
В этой статье я расскажу, как сделать SharePoint WebPart, используя блокнот используя только xml и xsl.

Про разработку web part-ов уже писалось ранее, там же писалось, зачем, собственно, они нужны: habrahabr.ru/blogs/sharepoint/57992

В данной статье мы создадим WebPart, который просто покажет какое-то сообщение. Сам по себе он не информативен и сомнителен, как пример, но задаче показать общий механизм вполне соответствует.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 7

Explay CMS 3.1

Reading time 4 min
Views 3.9K
CMS *
Explay CMSВсем доброго времени суток! Уже довольно давно, как мое увлечение создания движка для сайта стало занимать львиную долю свободного времени. А поскольку летом я был полностью предоставлен самому себе, то за компьютер садился как за работу :) При этом меня даже не останавливает отсутствие хоть сколько ощутимого дохода, это как зависимость. Надеясь, что кому-то я все-таки помогу, хочу поделиться результатом своей работы.

Explay CMS — это система управления социальными сетями или блого-социальными сообществами. Она по-прежнему совершенно бесплатна и распространяется под лицензией GNU GPL 3 версии. Напомню основные характеристики:
  • Коллективные блоги
  • Фотоальбомы
  • Дружеские связи и новости друзей
  • Комментарии
  • Рейтинги
  • Внутренняя почта
  • Система обновлений
Подробнее о характеристиках можно узнать на официальном сайте

Версия 3.1 является эволюционным продолжением версии 3.0. По ходу разработки были исправлены все известные баги и доработаны основные функции. В новой версии CMS приобрела полноценную панель администратора, которая дает возможность реализовать основную функцию, заявленную мной при релизе 3.0, — управление полями публикаций, пользователей и вообще всего-всего.
Читать дальше →
Total votes 62: ↑45 and ↓17 +28
Comments 36

PhpStorm 4: результат с первой попытки!

Reading time 1 min
Views 31K
JetBrains corporate blog Website development *PHP *
Сделайте еще шаг к идеальной продуктивности ;)

image

Представляем вниманию хабрасообщества PhpStorm 4.0:

  • Полная поддержка PHP 5.4
  • Встроенный Code coverage для PHPUnit
  • Новые PHP code inspections
  • Сообщения PHP Code Sniffer прямо в редакторе
  • Встроенный Drupal-стиль
  • Лучшая в индустрии поддержка JavaScript (включая ECMAScript Harmony)

Читать дальше →
Total votes 102: ↑90 and ↓12 +78
Comments 225

Yate: Яндекс.Почта перешла на новый шаблонизатор

Reading time 5 min
Views 63K
Яндекс corporate blog Website development *
imageНекоторое время назад мы писали, что в Яндекс.Почте появился новый интерфейс, в котором используется шаблонизация данных в браузере. Немногие крупные сервисы отваживались на это, но мы и сейчас считаем такое решение наиболее удачным. Оно не только ускорило работу интерфейса, но и позволяет экономить трафик пользователя и эффективнее расходовать процессорное время серверов.

Тогда в качестве шаблонизатора мы использовали XSL, а данные передавали в формате XML. Переведя проект на новый интерфейс, мы начали искать другие способы ускорения работы интерфейса Яндекс.Почты.

Недавно мы перевели всю Почту на JS-шаблонизатор и JSON-данные.
И вот как это проходило
Total votes 173: ↑159 and ↓14 +145
Comments 185

Zen Reports и %XML.Writer для генерации отчётов Excel в Caché

Reading time 25 min
Views 5.9K
InterSystems corporate blog XML *
Как известно MS Excel последних версий поддерживает описание структуры документа в формате xml. Это обстоятельство позволяет создавать отчеты в Excel с помощью генерации xml-файлов. В СУБД Caché существует несколько способов создания xml. В этой статье будут рассмотрены два, возможно наиболее удобных, способа эффективной программной генерации отчетов в MS Excel: с помощью Zen Reports и с использованием класса %XML.Writer.
Читать дальше →
Total votes 1: ↑1 and ↓0 +1
Comments 0

Разработка документации при помощи DocBook

Reading time 8 min
Views 41K
XML *
Sandbox


Так уж сложилось, что в наших проектах ведение технической документации полностью лежит на плечах разработчиков, по принципу: внес изменения в код проекта — актуализировал документацию. Сама документация представляла собой набор Word’овских документов, которая хранилась вместе с исходным кодом под VCS. Данный подход к организации разработки существовал долгое время, но пару лет назад мы решили озаботиться возможностью ведения документации проекта отличными от MS Office средствами.
Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 33

PHPStamp — честная генерация DOCX документов из шаблона

Reading time 2 min
Views 26K
Website development *PHP *XSLT *
Sandbox
Это еще одна попытка реализовать стабильный, полноценный шаблонизатор офисных документов, основанных на XML, пользуясь стандартными для PHP средствами DOMDocument и XSL.

Задача состояла именно в генерации шаблона для многократного использования, который не придется править вручную или прибегать к сторонним программам для его доработки.
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 15

Документирование программ

Reading time 9 min
Views 35K
Website development *HTML *
Sandbox
На определенном этапе развития программной системы неизбежно возникает задача разработки пользовательской документации. И тут возникает технический вопрос выбора форматов и инструментов разработки документации.
Читать дальше →
Total votes 21: ↑15 and ↓6 +9
Comments 19

Java XML API: выбираем правильно. StAX: работаем с удовольствием

Reading time 5 min
Views 55K
Programming *Java *XML *API *
Tutorial
Здравствуйте!
Несмотря на снижение популярности формата XML с начала 2000х, он прочно занял свои ниши. Я сталкивался с обработкой XML ~ в 60% проектов и посвятил ей занятие своей стажировки Masterjava. Наиболее частые его применения: XHTML, SOAP, различные конфигурации (например Tomcat, SoapUI, IntelliJ IDEA, Spring XML конфигурация), импорт-экспорт данных.

В Java есть несколько API для работы с XML и для разработчика важно понимать, какое из API требуется выбрать в каждой конкретной ситуации. В этой статье я кратко перечислю все Java XML API, их назначение и примеры использования, и подробнее остановлюсь на работе с достаточно редкой, но в ряде случаев единственно верной технологией StAX. Предполагается что с элементами XML вы уже знакомы.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 8

Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK). Enterprise Tactics. Часть 5

Reading time 46 min
Views 7.2K
Information Security *

Обход защиты (Defense Evasion)


Ссылки на все части:
Часть 1. Получение первоначального доступа (Initial Access)
Часть 2. Выполнение (Execution)
Часть 3. Закрепление (Persistence)
Часть 4. Повышение привилегий (Privilege Escalation)
Часть 5. Обход защиты (Defense Evasion)
Часть 6. Получение учетных данных (Credential Access)
Часть 7. Обнаружение (Discovery)
Часть 8. Боковое перемещение (Lateral Movement)
Часть 9. Сбор данных (Collection)
Часть 10 Эксфильтрация или утечка данных (Exfiltration)
Часть 11. Командование и управление (Command and Control)

В разделе «Обход защиты» описываются техники, с помощью которых злоумышленник может скрыть вредоносную активность и предотвратить своё обнаружение средствами защиты. Различные вариации техник из других разделов цепочки атаки, которые помогают преодолеть специфические средства защиты и превентивные меры, предпринятые защищающейся стороной, включены в техники обхода защиты. В свою очередь, техники обхода защиты применяются во всех фазах атаки.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 1

Межпланетная файловая система — Простой блог в IPFS при помощи XSLT

Reading time 13 min
Views 5.2K
XML *XSLT *IPFS *

Существует проблема: У сайта в IPFS нет возможности использовать серверные скрипты для формирования страницы. Если использовать генерацию страниц перед загрузкой то добавив новый пункт меню в каждую страницу мы изменим хеш этих страниц. Так что всю сборку страниц нужно производить силами браузера.


Обычно формируют содержание страниц при помощи JavaScript. Это знакомая технология но у неё есть свои недостатки.


Я буду использовать XSLT. Это древняя технология шаблонов которая давно встроена в браузеры но мало кто ей пользуется. Возможно потому что шаблоны заставляют писать много текста и из за путаницы с пространствами имён и множества ошибок без внятного объяснения. Также не смотря на то что есть уже XSLT 3.0 в браузерах по прежнему доступен только XSLT 1.0.


XSLT работает так:


  1. Пользователь открывает в браузере XML документ.
  2. В заголовке XML документ содержит ссылку на XSLT шаблон.
    <?xml-stylesheet href="xslt/запись.xslt" type="text/xsl" ?>
  3. Шаблон в браузере на основе XML документа и других данных формирует xHTML документ.
  4. Браузер отображает полученный xHTML документ.

Привязав множество страниц к одному шаблону можно менять отображаемый xHTML документ не меняя XML документы. Таким образом при смене дизайна не будет меняться хеш XML документов а значит старые их копии будут источниками для новых в IPFS.


Для поисковиков в данном способе тоже есть плюсы. Они ограничиваются обработкой XML документа получая только уникальный контент страницы без элементов навигации и остальных блоков которые повторяются на каждой странице.


image

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 8