Тематизация и компоновка в рамках yii


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

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

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

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

Author: felipe.zkn, 2012-04-25

2 answers

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

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

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

 13
Author: schmunk, 2012-04-25 11:17:04

Попробуйте выполнить это шаг за шагом:

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

    Вы можете создать новую тему и добавить ее в каталог Корень приложения/темы.

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

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

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

    Тогда у вас будет файл Корневой каталог приложения/css/mystyle.css

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

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

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

    'тема'=>'surveyhub'

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

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

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

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

    Публичный $макет='//layouts/one_column.php ';

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

 7
Author: crafter, 2012-04-29 09:21:47