SEO  -   СТАТЬИ
СтатьиОсновы систем управления сайтом (CMS) → SilverStripe — качество и open source.

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

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

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

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

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

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

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

SilverStripe CMS

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

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

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

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

SilverStripe CMS

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

Практика

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

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

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

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 — это, конечно, не самая лучшая система управления контентом с открытым кодом, доступная на сегодняшний день, но ее неплохих возможностей в комплексе с продуманной внутренней механикой должно хватить для широкого спектра различных веб-проектов.

Если Вы заметили какие-либо неточности или ошибки в размещенной информации, просим сообщить о них администрации. SIGMA Logistics