Тематизация и компоновка в рамках yii
Я новичок в Yii-фреймворке и создаю CRM на основе модулей. Используя различные учебные пособия, я могу создать свою собственную тему, но теперь я застрял в одном месте.
В моей теме верхний <nav>
и левый <nav>
остаются одинаковыми на протяжении всего приложения, пока пользователь не войдет в систему. Вот почему я сделал это частью своего main.php , но на странице входа в систему нет кнопок для отображения, просто простая форма входа с 2 текстовыми полями .
Как я могу внедрить эту форму в мое приложение с помощью пользовательских тем?
Я попытался определить макет в этом конкретном действии, но не преуспел. Любая помощь будет признательна.
2 answers
Использование пользовательского макета для вашего представления - правильный путь. Вы можете либо установить макет в действии контроллера, либо в представлении.
$this->layout = "//layouts/mylayout";
Обратите внимание, что макеты по умолчанию column1.php и column2.php также используйте main.php файл макета.
Попробуйте выполнить это шаг за шагом:
-
Создать новую тему
Вы можете создать новую тему и добавить ее в каталог Корень приложения/темы.
Посмотрите на каталог темы/классика, чтобы получить представление о структуре каталога. Важным файлом (на данном этапе) является :- Application_Root/themes/views/layouts/main.php
-
Настройте содержимое своей темы
Скопируйте файлы css, изображения, js и т. Д. В правильное каталог и измените main.php файл по вашему вкусу. Например, если ваш main.php говорит
Тогда у вас будет файл Корневой каталог приложения/css/mystyle.css
-
Создайте заполнитель содержимого.
Где-то в вашем main.php , будет заполнитель для динамического текста, который указан.
-
Скажите yii, чтобы он использовал тему. Измените файл Application_Root/protected/config/main.php добавив следующую строку непосредственно перед последней строкой (содержащей закрывающую скобку).
'тема'=>'surveyhub'
-
Создайте заполнители макета.
Создайте сегмент HTML, который будет записан в часть $contents main.php . Назовите это, например one_column.php . Таким образом, путь к файлу будет Application_Root/themes/views/layouts/one_column.php В этом файле, где вы хотите, чтобы динамический для размещения текста создайте заполнитель.
-
Скажите Yii, чтобы он использовал макет.
В файле Application_Root/protected/components/Controller.php , добавьте или измените переменную компоновки следующим образом:
Публичный $макет='//layouts/one_column.php ';
Обновите страницу