При создании тем вам потребуется доступ к различным значениям и объектам, хранящимся в Mura CMS, для вывода на разметку вашей темы или на страницы примеров. Mura Scope — это быстрый и простой способ доступа к данным и объектам в Mura CMS. Сфера Mura не только позволяет получить доступ к данным на уровне страниц, но также позволяет получить доступ ко всем объектам и функциям! Давайте посмотрим на несколько ключевых вариантов использования Mura Scope.
Содержание Область
В учебнике Class Extensions мы добавили некоторые пользовательские атрибуты на страницу Book в Mura и вывели эти значения с помощью компонента. Мы использовали Mura Content Scope для доступа к контентному бину и получения требуемого атрибута. Базовый синтаксис для доступа к компоненту содержимого:
1
|
$.content(‘someAttribute’)
|
Мы можем использовать этот синтаксис для доступа к любой переменной, которую мы хотим от узла содержимого, включая любые пользовательские атрибуты, которые мы добавляем:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
<!— Page Title —>
$.content(‘title’)
<!— Summary —>
$.content(‘summary’)
<!— Credits/Author —>
$.content(‘credits’)
<!— Type (Page, Folder, Gallery, etc) —>
$.content(‘type’)
<!— Extended Attributes —>
$.content(‘myExtendedAttribute’)
|
Текущий пользовательский охват
Если ваш сайт разработан с учетом функциональности на основе членства, вы можете использовать область действия текущего пользователя для взаимодействия с текущим пользователем на сайте.
Определить, вошел ли пользователь в систему
1
2
3
4
5
|
<cfif $.currentUser().isLoggedIn()>
Hello, #$.currentUser(‘fname’)#
<cfelse>
<!— Display Login Form —>
</cfif>
|
Область конфигурации сайта
Эта область дает вам возможность доступа к глобальной информации о вашем сайте Mura CMS, в частности, к большинству значений, которые вы найдете в вашей конфигурации сайта> Изменить сайт в области администратора. Вы, наверное, уже видели, как это используется в теме html_head.cfm при динамическом связывании с вашими файлами CSS и JS:
1
|
<link rel=»stylesheet» href=»#$.siteConfig(‘themeAssetPath’)#/assets/bootstrap/css/bootstrap.css»>
|
Это говорит Mura, что независимо от того, как называется тема, найдите ее путь и найдите файл /assets/bootstrap/css/bootstrap.css . Это полезно, потому что предотвращает нарушение путей, если разработчик когда-либо решил изменить название темы на другое (например, название компании клиента) в процессе разработки. Например, если ваша тема ‘MuraBootstrap3’ (поставляется вместе с Mura), путь будет {siteID} / includes / themes / MuraBootstrap3 /
И если разработчик когда-либо изменил название темы на «CompanyABC», путь будет: {siteID} / includes / themes / CompanyABC /
Вы также можете использовать область «Конфигурация сайта» для доступа к имени сайта, так как оно введено администратором:
1
|
$.siteConfig(‘site’)
|
Это полезно для таких вещей, как теги заголовка или информация нижнего колонтитула для вашей темы.
Отображение объектов
В дополнение к извлечению переменных страницы и сайта, Mura Scope может также отображать все встроенные и пользовательские объекты в Mura.
Отображение формы
1
|
$.dspForm(‘My Form’)
|
Отображение компонента
Отображение компонента очень распространено в разработке тем. Это позволяет вам иметь сложную разметку в шаблонах макета и позволять редактировать только те элементы, которые вы хотите редактировать пользователям, через администратора.
1
2
3
|
<div class=’my-class’>
#$.dspComponent(‘Component Name’)#
</div>
|
Отображение канала
1
|
$.dspFeed(‘Feed Name’)
|
Пользовательские Методы
Как мы узнали из учебника по пользовательским методам, Mura CMS позволяет легко добавлять пользовательские функции в contentRenderer.cfc вашей темы и получать к ним доступ через область действия Mura. Итак, учитывая следующую функцию в вашей теме contentRenderer.cfc :
1
2
3
|
<cffunction name=»dspMySlider» output=»yes»>
<!— Custom Javascript Slider Markup —>
</cffunction>
|
Вы можете просто вызвать эту функцию с помощью Mura Scope:
1
|
$.dspMySlider()
|
Mura Scope — это мощный инструмент в Mura, который можно использовать для различных вариантов использования при разработке темы. Я рекомендую вам использовать его часто для создания надежных тем.