Современная, быстрая и удобная система управления сайтом

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

Центр помощиКомментарии: 0Просмотров: 9381

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

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

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

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

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

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

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