Статьи Новости Контакты

24.04.2007
Анатолий Крысов

SilverStripe — качество и open source

обзор SilverStripe CMS

SilverStripe CMS

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

SilverStripe — это продукт, который с самых первых минут знакомства подкупает своим отношением к конечному пользователю. Чтобы понять, о чем именно идет речь, достаточно взглянуть на официальный веб-сайт проекта: авторы системы стараются сразу объяснить интересующимся, какие задачи их детище может решать, а какие — нет. Аналогичное наблюдение можно сделать, ознакомившись с документацией к продукту: во-первых, все подается в максимально прозрачной форме, а во-вторых, материалы неплохо (не идеально, но неплохо) структурированы. Единственное замечание в плане доступной информации о SilverStripe — это ее не слишком большое количество (особенно на более продвинутом уровне, чем банальное редактирование страниц), но это, скорее всего, вопрос времени и желания разработчиков.

Общие сведения

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

SilverStripe имеет хороший и понятный интерфейс

Разумеется, начинать изучение системы управления контентом следует с ее главных характеристик. В случае с SilverStripe они выглядят следующим образом:

  • интуитивная и user friendly часть продукта, предназначенная для администрирования веб-сайта;
  • структура решения, полностью соответствующая архитектуре Model-View-Controller;
  • одинаково высокий уровень стабильности для ресурсов с одной страницей и с миллионом страниц;
  • адекватная скорость работы на стороне администратора, обеспечиваемая использованием AJAX;
  • соответствие большинству современных веб-стандартов;
  • изначально заложенная модульность позволяет создавать необходимые расширения, если требуется, максимально быстро;
  • рендеринг страниц в SilverStripe строится вокруг шаблонов, причем в плане их создания у дизайнера практически нет никаких ограничений (вещь, встречающаяся сегодня довольно редко, но все же имеющая место);
  • кроссплатформенность;
  • простота установки и администрирования.

SilverStripe CMS

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

К слову, как раз своими интерфейсом и подходом к взаимодействию с конечным пользователем продукта разработчики SilverStripe особенно гордятся и именно в этом контексте сравнивают свой продукт с рядом других бесплатных CMS (Mambo, Joomla, Typo3). Однако на данный момент можно насчитать значительное количество систем управления контентом с аналогичными характеристиками: к примеру, MODxCMS, где также используются AJAX и подход desktop-like.

Часть модулей для SilverStripe — коммерческие

Что касается структуры SilverStripe, то она выглядит так:

  • Core CMS — система администрирования, WYSIWYG-редактор для работы с контентом, versioning- и workflow-функциональность, инструменты работы с иерархией страниц веб-сайта;
  • Forum Module — механизмы работы с форумами в системе схожи с механизмами работы с обычными страницами, форумы могут быть как публичными, так и приватными, предусмотрена минимально необходимая функциональность для администрирования пользователей, поддержка аватаров;
  • Blogging Module — c SilverStripe мы можем создавать неограниченное число блогов в рамках одного веб-сайта, предусмотрена поддержка RSS и подписок по электронной почте;
  • Event Management Module — возможность создавать в рамках веб-сайта календари с событиями, отправлять пользователям напоминания и приглашения на то или иное событие, плюс процесс сбора регистраций полностью автоматизирован;
  • E-commerce Module — создание каталогов продукции любых объемов, функциональность для добавления "корзины покупателя", поддержка различных видов оплаты, автоматический подсчет доставки.

SilverStripe CMS

Заканчивая эту часть статьи, остается добавить пару слов об еще одном любопытном факте: с одной стороны, SilverStripe является продуктом с открытым кодом, но, с другой стороны, последние два модуля из списка распространяются на коммерческой основе. В принципе понять разработчиков описываемой системы управления контентом можно, ведь и Event Management Module, и E-commerce Module носят весьма специфический и четкий бизнес-ориентированный характер. Однако такая половинчатость концепции все же немного удивляет.

Практика

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

Если говорить в общих чертах, то любой шаблон в SilverStripe состоит из обычного HTML-кода плюс набор специальных указателей, согласно которым движок выбирает, какой контент где необходимо показывать. Все шаблоны имеют имя TemplateName.ss и лежат в папке sitename/templates. Если открыть базовый шаблон SilverStripe под названием Page.ss, то там мы увидим три специальных указателя: <% base_tag %>, $Content и $SilverStripeNavigator.

Они значат следующее:

  • <% base_tag %> — этот указатель просто меняется на base element веб-сайта;
  • $Content — вместо этого указателя движок подставляет контент той страницы, которая открыта пользователем в настоящий момент;
  • $SilverStripeNavigator — последний указатель из Page.ss сообщает движку системы, куда необходимо разместить небольшую панель администрирования, которая обеспечивает быстрый переход с сайта непосредственно в систему и обратно, этакий аналог окошка QuickEdit из MODxCMS, но только без использования AJAX.

SilverStripe CMS

Разумеется, с помощью этих трех указателей мы никогда не сможем создать по-настоящему динамичный и современный веб-сайт. К примеру, нам наверняка понадобятся указатели $Title (вставляет заголовок страницы) и $MetaTags (вставляет мета-теги веб-сайта). Но еще важнее — добавить меню, причем у одного отдельно взятого ресурса навигация может быть как простой (несколько ссылок), так и более комплексной, и в SilverStripe с этим вопросом довольно легко разобраться. Код для базового меню выглядит примерно следующим образом:

<ul  id="Menu1">  
    <%  control  Menu(1)  %>  
        <li><a  href="#">$MenuTitle</a></li>  
    <%  end_control  %>  
</ul>

Кроме того, мы можем сообщить движку системы, что во время рендеринга он должен подставлять в меню еще и ссылки, и названия страницы для атрибута title плюс подсвечивать ссылку, если открыта страница, на которую она ведет.

<li  class="$LinkingMode">  
    <a  href="$Link"  title="Страница  &quot;$Title&quot;">$MenuTitle</a>  
</li>

Создавать шаблоны в SilverStripe легко

Понятное дело, что меню на нашем веб-сайте может иметь несколько уровней в зависимости от структуры контента. Удобнее всего добавлять такое меню в шаблон при помощи логических указателей.

<%  if  Menu(2)  %>  
    <ul  id="Menu2">  
        <%  control  Menu(2)  %>  
            <li  class="$LinkingMode">  
                <a  href="$Link"  title="Страница  &quot;$Title&quot;">$MenuTitle</a>  
            </li>  
        <%  end_control  %>  
    </ul>  
<%  end_if  %>

Еще один важный момент, связанный с настройкой внешнего вида веб-сайта в SilverStripe, — это типы страниц, ведь в рамках одного ресурса в большинстве случаев требуется иметь не один, а несколько шаблонов для рендеринга контента. В описываемой системе управления контентом для этих целей и существуют типы страниц: каждой странице мы можем присвоить определенный тип, а каждому типу — свой уникальный шаблон. Файлы с описанием типов имеют имя TypeName.php и хранятся в папке sitename/code.

SilverStripe CMS

К примеру, создадим описание главной страницы в файле под названием MainPage.php. Минимально необходимый для корректной работы код будет выглядеть примерно так.

<?php  
/**  
  *  Описание  главной  страницы  
  */  
    
class  MainPage  extends  Page  {  
    static  $db  =  array(  
    );  
    static  $has_one  =  array(  
    );  
  
}  
    
class  MainPage_Controller  extends  Page_Controller  {  
  
}  
?>

Естественно, что помимо привязки шаблона в описание типа страницы мы можем добавить какую-то логику или что-то еще. А в заключение материала отметим, что SilverStripe — это, конечно, не самая лучшая система управления контентом с открытым кодом, доступная на сегодняшний день, но ее неплохих возможностей в комплексе с продуманной внутренней механикой должно хватить для широкого спектра различных веб-проектов.

Ссылки по теме




Скоро на сайте

  • Wordpress

    Серия статей о плагинах к движку WordPrress
  • AJAX

    Проекты и продукты, ориентированные на AJAX
  • Новые сервисы Google

    Обзор новых сервисов Google
 

Copyright © 2003—2018 Все права защищены

При использовании материалов сайта ссылка на hostinfo.ru обязательна

  • хостинг от .masterhost
  • Rambler's Top100