четверг, 31 декабря 2009 г.

Создание своей сборки Wordpress. Доработка модулей.

Редактирование файлов ядра, плагинов и шаблонов может преследовать различные цели. Тема доводки модулей довольно обширна и поэтому подробно на ней останавливаться я не буду. Перечислю только некоторые часто встречающиеся на практике задачи, которые требуют редактирования модулей.

Редактирование файлов ядра обычно бывает необходимо: 1. Для обеспечения совместимости с другими модулями (плагинами, шаблонами) 2. Для создания дополнительной функциональности 3. Для уменьшения потребления ресурсов 4. Для модификации отдельных страниц, обычно 404-ой страницы.

Редактирование шаблонов обычно бывает необходимо для: 1. Локализации (например, русификации). 2. Удаления ссылок на сторонние сайты. 3. Обеспечения совместимости с другими модулями. 4. Создания дополнительной функциональности

Редактирование шаблонов обычно бывает необходимо для: 1. Для обеспечения совместимости с другими модулями. 2. Локализации (например, русификации). 3. Удаления ссылок на сторонние сайты. 4. Удаления обращений к чужим сайтам (например, для проверки обновлений). 5. Создания дополнительной функциональности.

Если вам известны еще какие-нибудь типы задач, которые требуют модификации (редактирования) модулей Wordpress'а – отпишитесь в комментариях.

понедельник, 28 декабря 2009 г.

Создание своей сборки Wordpress. Подбор модулей.

НЕОБХОДИМЫЙ ФУНКЦИОНАЛ
Определение потребностей в функционале обычно осуществляется путем сравнения с аналогичными сайтами, пусть даже и на других CMS. Т. е. проектируемый интернет-магазин сравнивается с уже существующими интернет-магазинами, фотогалерея с уже существующими фотогалереями, персональный блог – с чужими блогами.

Хоть Wordpress и является универсальной системой управления контентом, на которой можно построить сайт практически любого назначения, всё же зачастую лучше предпочесть специализированные движки, спроектированные под узкие цели, нежели компоновать весь необходимый функционал из вордпрессовских модулей. Это может дать как выигрыш во времени для создания проекта, так и снижение нагрузки на хостинг в случае использования специализированного движка. Что касается необходимого функционала, так сказать «ассортимента возможностей», то на Wordpress'е можно реализовать любой набор функций и в этом отношении он от специализированных движков не отличается.

ЯДРО
Версия ядра подбирается обычно исходя из трех аспектов: ресурсоемкости, необходимого функционала и безопасности. Если безопасность не играет большой роли или обеспечивается плагинами, то в зависимости от требуемого функционала выбирают версию ядра с наименьшим номером, так как чем меньше номер версии, тем, обычно, и ниже нагрузка на хостинг. Учитывается также совместимость версии ядра с плагинами, но она проверятся уже при подборе плагинов и в случае необходимости используемая версия ядра повышается.

ПЛАГИНЫ

Набора плагинов должен быть минимальным. В набор должны входить только те плагины, которые будут использоваться. Чем больше плагинов, тем больше нагрузка на хостинг и тем больше вероятность программного конфликта как между плагинами, так и между плагинами и ядром. Размер сборки также увеличивается. При необходимости всегда можно подключить новые плагины, поэтому лишние плагины в сборке не желательны. Поиск плагинов осуществляется по их описанию, исходя их необходимых функций.

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

Именно на каком-то форуме я нашел ссылку на очень полезный плагин ClearDuplicatePosts. Этот плагин препятствует повторному опубликованию одинаковых постов, что полезно при автоматическом наполнении блога. Данный плагин помог мне решить проблему частого дублирования статей на Liex'е при их публикации через XML-RPC. Сайт автора – на французском языке! Найти этот плагин по описанию его функций через Гугл было бы практически невозможно.

ТЕМА ОФОРМЛЕНИЯ
При подборе шаблона (иначе называются тема или скин) следует исходить из тематики сайта, нагрузки от этого шаблона на хостинг, необходимой функциональности. Обычно достаточно взять шаблон с посещаемого ресурса, сходной с вашим сайтом тематик.

ЯЗЫКОВЫЕ ФАЙЛЫ
Велосипед тут выдумывать не надо. Проще воспользоваться готовыми переводами (локализациями). Для русского языка наиболее популярны переводы от lecactus.ru . Там можно найти переводы как для движка с шаблонами, так и для некоторых плагинов. При локализации Wordpress'а своими силами надо не забывать использовать кодировку UTF-8 и специальные редакторы для файлов .po и .mo, например этот - poedit.net .

Создание своей сборки Wordpress. Общая часть.

Про создание сборок Wordpress написано достаточно много. Внесу и я свою лепту, свои три копейки.

Что такое сборка? Wordpress - это программное обеспечение, построенное по модульному принципу, то есть представляет некий механизм, который собирается из отдельных частей, прежде чем быть готовым к использованию.

Так вот, сборка это те отдельные части Wordpress’a (модули), которые конкретный пользователь сводит в единое целое для достижения определенного функционала.

Модули Wordpress'a - это:

  1. Ядро или движок. Совокупность скриптов, обеспечивающих базовую функциональность сайта. В чистом виде не встречается. В дистрибутив, скачиваемый с официального сайта, помимо ядра входит два шаблона, языковые файлы и пара плагинов.
  2. Плагины. Скрипты, обеспечивающие дополнительную функциональность сайту и управляемые непосредственно из ядра Wordpress’a.
  3. Языковые файлы. Набор файлов, обеспечивающих перевод элементов интерфейса сайта.
  4. Тема или шаблон. Набор файлов, в частности изображений, обеспечивающих определенный внешний вид сайта и определенную функциональность.

Помимо плагинов встречаются и другие скрипты для Wordpress’a, которые, однако, из админки Wordpress’a не управляются, а запускаются и управляются самостоятельно и независимо от Wordpress’a. Таких скриптов немного, модулями Wordpress’a они не являются и соответственно в состав сборок не входят.

Характерный пример такого скрипта – «времяменятель» от Холидайвера. При желании, конечно, любой такой скрипт можно переделать в плагин, так как разница между ними только в способе управления. Так, например, упомянутый «времяменятель» передлан в плагин и теперь управляется их админки Wordpress’a - Random Posts Dates .

Создание собственной сборки состоит примерно из следующих шагов:

  1. Определяются потребности в функционале сайта.
  2. Подбирается версия ядра, набор плагинов, тема (шаблон) и языковые файлы, реализующие необходимый функционал. Плагины и шаблон перемещаются в соответствующие папки ядра.
  3. При необходимости осуществляется доработка кода ядра, плагинов и шаблона под свои нужды.
  4. Производится предустановочная настройка сборки, т. е. определяется какие плагины, настройки ядра и какой шаблон будут работать сразу после установки Wordpress’a и не потребуют ручной активации.

суббота, 26 декабря 2009 г.

Пример XSS

Копался в интернете, попал на один англоязычный блог. Машинально проверил на наличие nofollow в комментариях. Этот тэг там был в виде rel="external nofollow". Однако один комментарий, на французском языке привлек мое внимание. Насколько позволили мои знания французского комментарий был о карточной игре баккара и соответственно ссылка вела на интернет казино. Посмотрел на ссылку, тэг nofollow отсутствовал, хотя в комментариях выше и ниже тэг nofollow был. Как уже удалось вставить ссылку без nofollow? В точности это неизвестно, но сама ссылка выглядела как

<a title="<br />" href="http://www.strategie-du-baccarat.fr/"> meilleure stratã©gie du jeu du baccarat</a>

Может кому-нибудь и пригодится. Если кто разберется как делать – чиркните в комментах.

Сам адрес страницы с данной ссылкой - customize your 404 page