Версия: 6.x
burger close
Настройка параметров страницы приложения

В ReadyScript предусмотрен SingleTon класс RS::Application::Application, который агрегирует следующие параметры текущей страницы:

  • Мета-теги
  • Хлебные крошки
  • подключаемые js скрипты
  • подключаемые css скрипты
  • произвольные js переменные
  • HTTP заголовки

Через экземпляр данного класса происходит централизованное добавление JS и CSS файлов:

->addJs('jquery.form.js') //Добавит скрипт "/templates/ТЕМА_ОФОРМЛЕНИЯ/resource/js/jquery.form.js"
->addJs('jquery.form.js', null, BP_COMMON) //Добавит скрипт "/resource/js/jquery.form.js"
->addJs('jquery.form.js', null, BP_ROOT); //Добавит скрипт "jquery.form.js"
->addCss('style.css') //Добавит скрипт "/templates/ТЕМА_ОФОРМЛЕНИЯ/resource/css/style.css"
->addCss('style.css', null, BP_COMMON) //Добавит скрипт "/resource/css/style.css"
->addCss('style.css', null, BP_ROOT); //Добавит скрипт "style.css"

Не совсем корректно добавлять JS, CSS файлы в PHP. Это необходимо делать в шаблонах с помощью конструкции addjs, addcss.

{addjs file="jquery.form.js"}
{addjs file="jquery.form.js" basepath="common"}
{addjs file="jquery.form.js" basepath="root"}
{addcss file="jquery.form.js"}
{addcss file="style.css" basepath="common"}
{addcss file="style.css" basepath="root"}

Дополнить заголовок секцией можно с помощью следующей конструкции в любом участке PHP кода:

->addSection('Ноутбуки')
->addSection('Asus UX32');
echo \RS\Application\Application::getInstance()->title->get(); //Выведет Asus UX32 :: Ноутбуки

Добавить к странице meta-теги позволит следующая конструкция:

// Добавит мета тег: <meta name="keywords" content="Ноутбуки, Asus, UX32, еще" >
->addKeywords('Ноутбуки, Asus, UX32')
->addKeywords('еще');
// Добавит мета тег: < meta name="description" content="Отличный ноутбук, еще" >
->addDescriptions('Отличный ноутбук')
->addDescriptions('еще');
//Добавит произвольный мета тег: < meta property="og:type" content="company" >
\RS\Application\Application::getInstance()->meta->add(array('property' => 'og:type', 'content' => 'company'));

Хлебные крошки добавляются следующей конструкцией:

->addBreadCrumb('Главная', '/')
->addBreadCrumb('Ноутбуки', '/notebook/')
->addBreadCrumb('Asus UX32'); //Будет не кликабельным

Заголовки и cookie для отправки браузеру устанавливаются так:

->addCookie('key', 'value')
->addHeader('X-creator', 'ReadyScript');

Параметры страницы чаще всего устанавливаются в контроллере, поэтому в контроллере есть свойство RS::Controller::AbstractController::app, которое содержит объект RS::Application::Application.

Пример установки "хлебных крошек" внутри контроллера.

namespace ModuleName\Controller\Front;
class NewsView extends \RS\Controller\Front
{
function actionIndex()
{
$this->app->breadcrumbs
->addBreadCrumb('новости')
->addBreadCrumb('название новости');
//...
}
}