dirty-on-steroids
dirty-on-steroids copied to clipboard
A set of user javascript powered features for dirty.ru. All credit goes to Stasik0, BearOff, crea7or, lamo4ok and NickJr.
Модульный сервис-пак, инструкция по применению
Написание плагина
Плагины к сервис-паку - объекты со следующим интерфейсом:
type - тип плагина, используется для определения, в какую вкладку определять конфигурафионные контролы данного плагина name - название плагина, используется для именования контрола с резервированным именем active, если такой есть author - строка, определяющая автора, используется для поддержания ЧСВ config - объект с конфигурационными данными плагина. Интерфейс, позволяющий управлять данными, создается ядром. run - функция инициализации плагина, пускаемая ядром
Чтобы включить плагин в состав сервис-пака, необходимо вызвать метод d3.addModule(), передав в качестве параметра объект плагина.
Пример смотри в файле extra/browser.js
Описание конфигурационных данных.
Конфигурационные данные представляют собою объект шаблона {название_переменной:{свойства_переменной}}. Свойства переменной: type - обязательное свойство, означает тип контрола для управления этой переменной. Поддерживаются text, checkbox, radio, select value - начальное значение переменной по умолчанию caption - метка контрола переменной. Если caption отсутствует, в качестве метки используется имя переменной options - массив значений для контролов типа radio и select
Пример смотри в файле extra/test.js
Сервисы, предоставляемые ядром.
d3.user.name - имя пользователя. null, если пользователь не залогинен d3.user.id - id пользователя. null, если пользователь не залогинен d3.setStyle(element,style) - установка CSS свойств для элемента d3.newElement(tagName,parms) - создание нового элемента и опциональня установка атрибутов, элементов стиля и свойства innerHTML d3.newDiv(parms) - вызов d3.newElement с параметром tagName='div' d3.get - объект с методами взятия элементов страницы d3. Пока реализованы logoutLink() и leftNavigation(). Будет развиваться. d3.json.encode(value) - кодирование объекта в json d3.json.decode(json) - декодирование json d3.addModule(module) - добавление модуля (плагина) в сервис-пак d3.window - оригинальный объект window d3.document - оригинальный объект document d3.xpath.get(selector,context) - поиск по документу или указанному элементу при помощи XPath. Возвращает XPathResult, тип результата - ORDERED_NODE_SNAPSHOT_TYPE d3.xpath.each(selector,function(node,nodeIndex){},context) - поиск при помощи XPath и применение к найденным узлам указанной функции. Функция получает в качестве параметров найденный элемент, индекс элемента и может вернуть false, если хочет прервать выполнение цикла для оставшихся результатов. d3.content.posts - массив постов на странице. Пустой, если постов нет. d3.content.comments - массив комментариев на странице. Пустой, если комментариев нет. d3.content.onNewComment(function(comment){}) - добавление обработчика нового комментария. d3.getLocalStorageItem(name, defaultValue) - достаёт name параметр из LocalStorage, если name==null возвращает defaultValue.
Интерфейсы постов и комментариев offset - отступ контейнера с начала страницы height - высота контейнера getContent() - взять контейнер содержимого getContentText() - взять содержимое в виде текста ratingContainer() - взять контейнер рейтинга ratingValue() - взять значение рейтинга как число. Для постов и комментариев со скрытым рейтингом - значение будет null.