заказать сайт

CMS Made Simple контроль Sidebar в админпанели

В этой статье показан способ позволить вашим клиентам контролировать, какие элементы появляются в боковой панели и на какой странице, с возможностью их перетаскивания и сортировки, используя только глобальные блоки Content и AdvancedContent.

заказать сайт КиевШаблонизатор Smarty является одним из ингредиентов, который делает CMSMS действительно настраиваемым. Часто мы должны изменить наши боковые панели в зависимости от того на какой странице мы находимся. Например, на нашей странице Блог, мы бы не хотели, чтобы наши последние записи в блоге показывались на боковой панели и хотим заменить их еще чем-то. Smarty предоставляет отличный способ контролировать этот процесс:
{if $page_alias == 'blog'}
  {* Show another sidebar element *}
{else}
  {* Show the Blog sidebar element *}
{/if}
Существует очень простой способ, чтобы ваши клиенты могли нажать на флажки и переупорядочить их.

Установка блоков по умолчанию

Давайте создадим глобальные блоки под названием "sidebar_order ', которые содержат список в нашей боковой панели элементов. Они будут содержать только краткие имена, которые описывают их функции. 

blog,calendar,login

 Модуль AdvancedContent

На мой взгляд модуль AdvancedContent является одним из лучших модулей. Регулярное {literal}{content} позволяет определить несколько блоков контента, но {AdvancedContent}{/literal} позволяет нам представить мультиселекторные флажки для редактора страницы и определить пресеты для них. Мы собираемся использовать этот модуль для определения мультиселекторных флажков чтобы веб-мастер сам решал какие элементы боковой панели могут быть представлены и на какой странице. Для начала вам необходимо установить модуль AdvancedContent.
 
Затем давайте создадим наш 'sidebar_element' AdvancedContentBlock. Вставьте следующий тег в шаблон, сразу после тега <body>:
{content block='sidebar_elements' block_type='select_multiple' label='Sidebar Elements' assign='sidebar_elements' items=":::global_content name=sidebar_order:::" default=":::global_content name=sidebar_order:::" delimiter=',' page_tab='options' smarty='true' sortable_items='true'}
Обратите внимание, что мы используем {literal}{content} вместо {AdvancedContent}{/literal}. Это мы делаем по некоторым причинам, последней версии CMSMS не нравится параметр "sortable_items", и вы получите ошибку, когда будете использовать его. Но поскольку ваша страница из AdvanceContent типа контента, это все равно будет работать.
 
 
Давайте разберем по частям вышепредставленный код, чтобы понять что мы делаем:
 
block='sidebar_elements' - Это внутреннее имя блока содержимого в базе данных.
block_type='select_multiple' - Это тип. Обычно 'select_multiple' дает множественный выбор в окне списка.
label='Sidebar Elements' - Название для редактра страниц
assign='sidebar_elements' - Вебмастер определил переменную Smarty с этим именем
items=":::global_content name=sidebar_order:::" - Список предметов на выбор. У нас есть список в Глобальном Контент Блоке (items="blog,calendar,login")
default=":::global_content name=sidebar_order:::" - Это указывает на то, какие из предметов мы хотим выбрать по умолчанию. (default="blog,calendar,login")
delimiter=',' - Разделитель. Обычно '|' является разделителем по умолчанию, но мы используем запятую.
page_tab='options' - Мы не хотим это использовать на главной вкладке, так как не будем иметь частые изменения. Положите его в нижней части вкладки "Настройки". Дайте ему новое имя, и это создаст новую вкладку для него.
smarty='true' - Указывает на то, что "элементы" "по умолчанию" имеет Smarty
sortable_items='true' - Мы хотим, чтобы этот список имел сортировку. Он изменяет множественного выбора флажков в списке, с возможностями перетаскивания.
 

Шаблон

Теперь мы составим все это вместе. В шаблоне, напишем Smarty код где обычно должна быть боковая панель:

{assign var='sidebar_elements' value=','|explode:$sidebar_elements}
{foreach from=$sidebar_elements item='element'}
 
  {if $element == 'blog'}
    {* Latest Blog sidebar stuff goes here *}
  {/if}
 
  {if $element == 'calendar'}
    {* Upcoming Events sidebar stuff goes here *}
  {/if}
 
  {if $element == 'login'}
    {* The Login box goes here *}
  {/if}
 
{/foreach}

Использование

Теперь давайте посмотрим на его работу. Нажмите редактировать (или создать) страницу. Нажмите на «Опции», перейдите к нижней части, отметьте какие элементы вы хотите для этой страницы. Если вы хотите изменить порядок, перетащите стрелки и отпустите элемент, где вы хотите. Нажмите на Сохранить, и все готово! 

Создание сайтов

Автор: 

P.S.  Если вы ищете где заказать сайт в Москве, вы можете с таким же успехом заказать сайт в Киеве. Также, если вам надо заказать продвижение сайтов в Москве или Киеве вы можете смело звонить нам по телефону.

Оценка: 
Средняя: 5 (17 оценки)

Поделиться

О Нас

Предлагаем заказать сайт или заказать интернет магазин любой степени сложности. Создание сайтов в нашей студии предполагает постоянную фокусировку на том что в дальнейшем ресурс должен занимать достойное место в поисковой выдаче Google, Yandex. Если вас интересует разработка сайтов под ключ, то всегда помните что функционал и органическая поисковая оптимизация зависит на 90% от платформы, на которой построен интернет-магазин.