Верстка шаблону - Перші кроки - Документація
Основа шаблону сайту знаходиться за замовчуванням у файлі /themes/business/views/layouts/main.php. У цьому файлі визначаються мета-теги, шапка та підвал, підключаються стилі та скрипти, які застосовуються для всього сайту.
Якщо ви бажаєте змінити ім'я теми сайту, необхідно зробити це у конфігураційному файлі /protected/config/project.php
Для параметра theme ви можете встановити іншу назву, що відповідає назві вашої теми.
Будьте уважні, змінюючи назву теми в конфігураційному файлі, система буде очікувати на наявність однойменної папки в папці /themes .
Підключення css-файлів
Для підключення css-файлу в загальному випадку застосовується команда $this->registerCssFile('/themes/business/css/content.css'); . Єдиним параметром цієї команди є вказівка шляху до css-файлу, що підключається. При цьому передбачається, що css-файл буде в папці assets відповідного модуля. Наприклад, файл стилів для новин буде знаходитись по абсолютному шляху /themes/business/views/news/assets/news.css .
Підключення js-файлів
Для підключення js-файлу застосовується команда $this->registerScriptFile('/themes/business/js/js.js', CClientScript::POS_HEAD); . Крім першого параметра, що вказує на шлях до файлу, застосовується другий параметр, який вказує де сторінки буде підключатися ява-скрипт. Найбільш поширеними варіантами значень цього параметра є CClientScript::POS_HEAD – підключення ява-скрипта у шапці сторінки та CClientScript::POS_END – підключення у підвалі сторінки.
Якщо необхідно здійснити виконання ява-скрипт коду прямо в тілі сторінки без підключення js-файлу, застосовується команда $this->registerScript('alert(1);', CClientScript::POS_READY); . При цьому останнійпараметр CClientScript::POS_READY означає, що вказаний код буде виконано відразу після завантаження DOM-дерева сторінки, тобто. на подію document.ready().
Визначення місць для виведення віджетів
Передбачається, що у шаблоні сайту можуть бути визначені верстальником місця для виведення віджетів. Це необхідно в тих випадках, коли в подальшому житті сайту передбачається вмикати/вимикати або міняти місцями віджети. Наприклад, поставити віджет останніх новин вище віджету банерів у лівій колонці.
У системі управління ygin є графічний інтерфейс для редагування наборів та віджетів, що дозволяє адміністратору сайту змінювати порядок та місця виведення віджетів, включати та вимикати їх без допомоги програмістів.
Для визначення місця, де надалі виводитимуться віджети, використовується команда $this->widget('BlockWidget', array("place" => SiteModule::PLACE_BOTTOM)); . Параметр place визначає ідентифікатор місця. У системі заздалегідь підготовлені такі ідентифікатори місць, яких у більшості випадків достатньо для розуміння місця: PLACE_TOP, PLACE_BOTTOM, PLACE_FOOTER, PLACE_CONTENT, PLACE_CONTENT_TOP, PLACE_RIGHT, PLACE_LEFT. За потреби, цей список ідентифікаторів місць для віджетів може бути розширений або змінений.
Для різних груп сторінок сайту в системі керування ygin можуть бути визначені набори віджетів. Кожен набір віджетів зберігає інформацію про те, які віджети на яких місцях та в якій послідовності виводитимуться. Таким чином, верстальник готує місця для виведення віджетів у шаблоні сторінки, а адміністратор сайту вказує, що для даної сторінки сайту буде застосовуватися той чи інший набір віджетів за допомогою системи керування ygin. Докладніше механізм налаштування тавизначення набору віджетів розглядається в розділі документації Налаштування набору віджетів для адміністратора.
Виведення заголовка та контенту сторінки
У найпростішому випадку сторінка сайту є статичною, а її вміст визначається системою управління ygin через об'єкт Меню. Виведення заголовка сторінки здійснюється командою echo $this->caption; а висновок контенту echo $content; .
Виведення віджетів безпосередньо
Існують випадки, коли потрібно "зашити в код" місце для виведення віджету та не давати адміністратору сайту керувати цим через систему керування ygin. У таких випадках виведення віджету здійснюється командою $this->widget('Ім'яВіджету', array()); .
Приклад розмітки файл шаблону
Докладніше процес типової верстки сайтів розглянуто у статті "Верстка БЕМ".