Плагины
Подписаться на эту рубрику по RSS
Виджет «События» (events.zip 6 ок. 3Кб) позволяет организовать вывод каких-либо событий в сайдбаре. Настройка виджета очень проста. Каждое событие должно располагаться в одном абзаце.
Каждое событие формируется в виде:
- yyyy-mm-dd | до | после | текст события
То есть указывается дата события, сколько дней отображать ДО наступления указанной даты, сколько дней отображать ПОСЛЕ. Ну и сам текст события. В тексте можно использовать HTML.
Установка виджета. Просто скопируйте из архива каталог с файлами в каталог плагинов (maxsite/plugins). После этого активируйте его админ-панели. Сама настройка в «Сайдбары и виджеты».
Сегодня я таки смог сделать то, что так долго не удавалось. Еще для WordPress я когда-то придумал подобный виджет. Работает он просто: нужно указать номера записей и они будут выведены в виде списка.
Данный виджет удобно использовать для создания произвольных списков любых записей. Так вот, проблема в том, что довольно сложно придумать как объединить в одном виджете вывод не только записей, но и рубрик, архивов и т.д. То есть любых страниц сайта. Указывая номер, система должна каким-то образом определить тип, потому что номера ID могут принадлежать и записям, и рубрикам, и другим данным.
Многократно пытался придумать что-то подобное для WordPress, но так и не получалось.
Тут еще трудность в том, что нужно определять текущую страницу и отмечать элемент списка например с помощью class="current-page", для подсветки. В WordPress'е для этого служат раздельные функции is_page, is_single и т.п. То есть ситуация получается довольно запутанная. В итоге, для подобных задач я использовал свой виджет «Ушки», где вручную прописывал HTML и не морочил голову.
Для одного сайта на MaxSite CMS мне потребовался аналогичный виджет «Избранное» и поначалу я кинулся делать как на WordPress. Потом вспомнил, что для редиректа я написал функцию mso_current_url, которая возвращает адрес текущей страницы, относительно сайта. И тут-то меня и осенило. ![]()
Совершенно не обязательно указывать номера записей или рубрик, и как-то указывать их тип. Вместо этого достаточно указать путь страницы относительно сайта и название ссылки вот так:
- / | Главная
- page/about | О компании
- category/news | Новости
- page/price | Услуги
Как видите, всё совсем просто - тут и тип, и ссылка, и название. Вариации абсолютно любые и поэтому можно выстраивать какие угодно списки. ![]()
Этот виджет я включу в версию 0.16, так что скоро вы сможете его попробовать в действии.
В качестве эксперимента сделал плагин, который выполняет перелинковку страниц. Алгоритм не очень сложный.
Создается массив всех заголовков. После этого он разбивается на слова и удаляются все короткие (до 4 символов). При выводе текстов происходит поиск слов из заголовков, и если есть, то ставится ссылка на соответствующую запись.
Работает средней паршивости по двум одной причинам. Первая - из-за того, что preg_replace не умееет работать с юникодом (ненавижу юникод!!!), пришлось исхитриться и выполнять кодирование в/из windows-1251. Это плохое решение, но зато быстрее, чем менять алгоритм замен.
Вторая - как-то это не очень выглядит. Если для сплогов и говносайтов, то вполне сойдет, а для нормального блога, видимо придется как-то вывод делать по-другому. Как вариант выводить список похожих записей. В общем у кого есть идеи, поделитесь.
ps Такие ссылки выделил серым.
Плагин для оформления преформатированного текста
Рубрика: MaxSite CMS | ПлагиныДата: 10/06/2008 16:17:48
Добавил еще одну «вкусность» - плагин, который преобразует тэги PRE и CODE в нумерованный список.
Вот пример работы:
- function mso_check_post($args = array())
- {
- if ($_POST)
- {
- $check = true;
- foreach ($args as $key=>$field)
- {
- if (!isset($_POST[$field]))
- { // нет значения - выходим
- $check = false;
- break;
- }
- }
- if (!$check) return false;
- else return $_POST;
- }
- else return false;
- }
Преимущества такого способа в том, что нумерация строк происходит автоматически. Правда, для того, чтобы шаблон отображал списки как положено, необходимо в стили (css) добавить несколько строчек (они в комплекте).
Еще этот шаблон выполняет подсветку (выделяет полужирным) ключевые слова PHP.
Для того, чтобы расширить функциональность системы, используются плагины. Что такое плагины, я думаю, объяснять не нужно. Установка плагина сводится к нескольким простым действиям:
- Скопировать файлы в каталог плагинов
- В админ-панели активировать его
Некоторые плагины требуется явно прописывать в шаблоне, поэтому есть смысл почитать описание его разработчика.
Технически плагины представляют собой обычные php-файлы, которые подключаются в момент инициализации системы. По этой причине плагином можно сделать практически любой сторонний php-скрипт. Всё, что требуется для его модернизации - это указать правильное именование функций (см. правила).
Учитывая свой опыт создания плагинов для WordPress (где существует изрядный бардак), я решил разработать несколько несложных правил, которых должны придерживаться все разработчики плагинов. А для того, чтобы облегчить сей труд, в комплекте с дистрибутивом будет поставляться несколько заготовок для новых плагинов.
