Помещения и макет в yii-структуре

Я новичок в Yii Framework и создаю CRM, который основан на модуле. Используя разные учебные пособия, я могу создать свою собственную тему, но теперь я застрял в одном месте.

В моей теме верхние <nav> и left <nav> остаются неизменными во всем приложении, пока пользователь не войдет в систему. Вот почему я сделал его частью моего main.php , но на странице входа нет кнопок для показать, просто простую форму входа с 2 текстовыми полями .

Как я могу реализовать эту форму в своем приложении с помощью пользовательских тем?

Я попытался определить макет в этом конкретном действии, но не удалось. Любая помощь будет оценена по достоинству.

Использование пользовательского макета для вашего вида – это правильный путь. Вы можете либо установить макет в действие контроллера, либо в виде.

 $this->layout = "//layouts/mylayout"; 

Обратите внимание, что макеты по умолчанию column1.php и column2.php также используют файл макета main.php .

Попробуйте это шаг за шагом:

  1. Создать новую тему

    Вы можете создать новую тему и добавить ее в каталог Application_Root / themes .

    Посмотрите на тему / классический каталог, чтобы получить представление о структуре каталога. Важным файлом (на данном этапе) является: – Application_Root / themes / views / layouts / main.php

  2. Настройте содержимое темы

    Скопируйте файлы css, image, js и т. Д. В правильный каталог и измените файл main.php по своему вкусу. Например, если ваш main.php говорит

    <link href = "css / mystyle.css" rel = "stylesheet">

    Затем у вас будет файл Application_Root / css / mystyle.css

  3. Создайте заполнитель содержимого.

    Где-то в вашем main.php будет заполнитель для динамического текста, который указан.

    <? php echo $ content; ?>

  4. Скажите yii использовать тему. Измените файл Application_Root / protected / config / main.php , добавив следующую строку непосредственно перед последней строкой (содержащей закрывающую скобку).

    'Тема' => 'surveyhub'

  5. Создайте заполнители макетов.

    Создайте сегмент HTML, который будет записан в часть содержимого $ main.php. Назовите его, например, one_column.php. Таким образом, путь к файлу будет Application_Root / themes / views / layouts / one_column.php. В этом файле, где вы хотите разместить динамический текст, создайте местозаполнитель.

    <? php echo $ content; ?>

  6. Скажите Yii, чтобы использовать макет.

    В файле Application_Root / protected / components / Controller.php добавьте или измените переменную макета для чтения:

    public $ layout = '// layouts / one_column.php';

  7. Обновите страницу