Центр помощи

Подписаться на эту рубрику по RSS

Помощь по MaxSite CMS

Условия отображения виджета

Суббота, 4 октября 2008 г.
Рубрика: Центр помощи -> Общие вопросы
Просмотров: 8902

Иногда возникает задача отображать виджет не на каждой странице сайта, а на каких-то выбранных. Например с учетом типа данных (home, page, category и т.д.). «Классический вариант» перекладывает решение на сам виджет. Ну например для отображения только на страницах рубрик нужно вводить условие is_type('category').

Читать далее »

Плагин «Tabs»

Четверг, 18 сентября 2008 г.
Рубрика: Центр помощи -> Плагины
Метки:
Просмотров: 4623

Сделал плагин для табов. Сами по себе эти табы не проблема, тем более, что они уже стандартно входят в jQuery UI (он в комплекте MaxSite CMS). Но мне хотелось сделать так, чтобы эти табы можно было настраивать как обычный виджет.

Проблема в том, что содержимое таба это какая-то php-функция. Можно конечно просто выводить какой-то статический текст, но мне такой вариант не интересен. Насколько я знаю, даже в некоторых WordPress-шаблонах данная проблема решена «в лоб»: функции для табов явно прописаны в шаблоне или виджете. То есть например поменять порядок или сами функции можно только изменив исходный php-код. Мне такой подход не нравится, поэтому я придумал другую схему.

Узнать, чего я там понапридумывал...

Виджет «События»

Понедельник, 11 августа 2008 г.
Рубрика: Центр помощи -> Плагины
Просмотров: 3994

Виджет «События» позволяет организовать вывод каких-либо событий в сайдбаре. Настройка виджета очень проста. Каждое событие должно располагаться в одном абзаце.

Каждое событие формируется в виде:

yyyy-mm-dd | до | после | текст события
То есть указывается дата события, сколько дней отображать ДО наступления указанной даты, сколько дней отображать ПОСЛЕ. Ну и сам текст события. В тексте можно использовать HTML.

Установка виджета. Просто скопируйте из архива каталог с файлами в каталог плагинов (maxsite/plugins). После этого активируйте его админ-панели. Сама настройка в «Сайдбары и виджеты».

Плагин «Избранное»

Вторник, 24 июня 2008 г.
Рубрика: Центр помощи -> Плагины
Просмотров: 3271

Сегодня я таки смог сделать то, что так долго не удавалось. Еще для WordPress я когда-то придумал подобный виджет. Работает он просто: нужно указать номера записей и они будут выведены в виде списка.

Данный виджет удобно использовать для создания произвольных списков любых записей. Так вот, проблема в том, что довольно сложно придумать как объединить в одном виджете вывод не только записей, но и рубрик, архивов и т.д. То есть любых страниц сайта. Указывая номер, система должна каким-то образом определить тип, потому что номера ID могут принадлежать и записям, и рубрикам, и другим данным.

Многократно пытался придумать что-то подобное для WordPress, но так и не получалось.

Тут еще трудность в том, что нужно определять текущую страницу и отмечать элемент списка например с помощью class="current-page", для подсветки. В WordPress'е для этого служат раздельные функции is_page, is_single и т.п. То есть ситуация получается довольно запутанная. В итоге, для подобных задач я использовал свой виджет «Ушки», где вручную прописывал HTML и не морочил голову.

Для одного сайта на MaxSite CMS мне потребовался аналогичный виджет «Избранное» и поначалу я кинулся делать как на WordPress. Потом вспомнил, что для редиректа я написал функцию mso_current_url, которая возвращает адрес текущей страницы, относительно сайта. И тут-то меня и осенило. smile

Совершенно не обязательно указывать номера записей или рубрик, и как-то указывать их тип. Вместо этого достаточно указать путь страницы относительно сайта и название ссылки вот так:

 / | Главная
page/about | О компании
category/news | Новости
page/price | Услуги
Как видите, всё совсем просто - тут и тип, и ссылка, и название. Вариации абсолютно любые и поэтому можно выстраивать какие угодно списки. smile

Плагин перелинковки страниц

Вторник, 17 июня 2008 г.
Рубрика: Центр помощи -> Плагины
Просмотров: 3995

В качестве эксперимента сделал плагин, который выполняет перелинковку страниц. Алгоритм не очень сложный.

Создается массив всех заголовков. После этого он разбивается на слова и удаляются все короткие (до 4 символов). При выводе текстов происходит поиск слов из заголовков, и если есть, то ставится ссылка на соответствующую запись.

Добавил еще одну «вкусность» - плагин, который преобразует тэги 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.