Изгледи и шаблони в YII2, InfoBlog #1
В този раздел ще разгледаме как да създадете нова страница със статичен текст.
Следвайте връзката http://localhost/index.php?r=site/about и ще бъдете отведени до статичната страница „Относно“.
Намерете този контролер и този метод. Контролерът се намира в frontend/controllers/SiteController.php, по подразбиране всички контролери се поставят в папката controllers/ със суфикса Controller (Защо е така?).
В контролера SiteController извикването на статична страница вече е внедрено чрез actionAbout() :
Методът връща статичен текст, който се състои от шаблон и изглед.
Изгледите са част от MVC архитектурата, те са кодът, който отговаря за представянето на данни на крайните потребители.
Шаблоните са специален тип изгледи, които са общи части на различни изгледи.
В този случай „about“ е изгледът, файлът се намира в директорията frontend/views/site/.
От съдържанието на файла about.php можете да разберете, че обектът $this е наличен - yii\web\View. Този обект е наличен във всички изгледи и шаблони. В този случай използваме неговото свойство, $this->title , което отговаря за заглавието на отворената страница. Това заглавие също се предава на "навигационния път" чрез
Опитайте да смените заглавието "За нас" на текста "За нас!" и отворете страницата.
Вижда се, че в менюто все още е останало „Относно“. За да коригирате това, трябва да направите промени в кода за това меню. Приспособлението yii\bootstrap\Nav действа като меню.
Уиджетите са градивни елементи за многократна употреба, използвани в изгледи за създаване на елементи на потребителския интерфейс.
Графичният модул на менюто е включен в шаблона, който е включен преди показване на изгледа за информация. За да определите кой шаблон се използва, трябва да се обърнете къмкъм текущия `SiteController и неговия метод render(), който извикваме в нашето действие actionAbout(). Методът render() осъществява достъп до свойството за оформление на текущия контролер, за да определи шаблона. Ако това свойство не е зададено на контролера, тогава се търси шаблонът за екземпляр на приложението. В този случай класът yii\web\Application, който се създава при стартиране на приложението, действа като екземпляр на приложението.
По принцип всичко обикновено се намира в директорията frontend/views/layouts във файла main.php. Понякога разработчиците на приложения променят тази ситуация, като променят конфигурацията на yii\web\Application или SiteController по свой вкус. Yii не ограничава никого в това. В момента ще се ограничим до това, което имаме по подразбиране.
И така, отворете frontend/views/layout/main.php и погледнете съдържанието. Това е шаблон, който се свързва с всеки изглед. Тези. всъщност това е основната HTML маркировка за всички страници на приложението. Уиджетът на менюто изглежда така
Намерете кода в тази джаджа
И просто сменете етикета на
Можете да опитате сами да промените всички останали елементи от менюто.
Както можете да видите, все още има "Моята фирма" и "Начало". Може вече да сте променили „Моята фирма“ на свой собствен текст, като просто го замените. Приложението има свойства, които са достъпни за конфигуриране. А именно „име на приложението“. Редно е да участвате в този случай. Нека го настроим.
За да направите това, трябва да отидете в настройките на приложението. Вече направихме това в урока, когато се запознахме с шаблона за разширено приложение. Само че този път няма да е common/config/main-local.php, а main.php в същата директория. И го променете на
Чрез промяна на 'language' => 'en', , основният език на приложението е променен. Наличните езици за приложението могат да бъдатнамерени във vendor/yiisoft/yii2/messages/ . Всички възможни съобщения, които са били на английски, ще станат български.
Свойство 'име' => „Моят сайт“, наличен като конструкция Yii::$app->name. Не е трудно да се досетите, че `Yii::$app->language ще върне ru. Тези. всяко свойство на приложението може да бъде достъпно по този начин.
Променете „Моята компания“ в основния шаблон на Yii::$app->name
и точно по-долу в долния колонтитул:
Искам повече статични страници!
Когато имате много статични страници "За нас", "Работно време", "Доставка" и т.н., не е много удобно да създавате метод в контролера всеки път:
За това вече е изпълнено едно действие за контрольори. Това е yii\web\ViewAction
Препоръчително е да се запознаете с API на класа ViewAction и да прочетете отново за отделните действия в контролерите.
Потърсете в SiteController метода за действия, който вече има:
Тагове: Изгледи и шаблони в YII2, изгледи и шаблони YII2