Сегодня мы продолжим разработку игрового…
Сегодня мы продолжим разработку игрового сайта и напишем код необходимый для создания, удаления и изменения жанров. Но вначале два небольших объявления. 1) Я как-то упустил, что есть русский перевод документации Yii, причём очень качественный. 2) Я решил выложить весь исходный код этого сайта, думаю так будет проще экспериментировать. Все-таки копировать куски кода из блога неудобно. Инструкция по установке. 1) В архиве находятся: папка public_html (в ней только исходные файлы сайта, без самого фреймворка), файл dump. sql (с дампом базы) и файл с инструкциями. 2) Распакуйте папку public_html так, чтобы DOCUMENT_ROOT вашего сервера указывал на ее содержимое (при желании, саму папку можно переименовать). 3) Откройте файл index. php и укажите путь к фреймворку Yii (строка 4). 4) Откройте файл \protected\config\main. php и укажите параметры подключения к базе данных (строки 45-47). 5) Импортируйте базу данных (файл dump. sql), например, с помощью phpMyAdmin. 6) Можно работать 7) Адрес входа в админку http://sitename. local/index. php? r=dashboard Сразу хочу обратить ваше внимание, что это не окончательная версия сайта и, скорее всего, в ней есть баги и недоработки. Поэтому буду рад, если вы о них мне сообщите Возвращаемся к жанрам. Открываем окно консоли и выполняем команды >> yiic shell >> model Types ygs_types >> crud Types В результате будут созданы: 1) Класс модели \protected\models\Types. php 2) Класс контроллера \protected\controllers\TypesController. php 3) Папка с представлениями \protected\views\types\ По-умолчанию, контроллер содержит 6 методов, которые предназначены для формирования страниц. Это: actionShow (адрес types/show) – страница с выбранным жанром; actionCreate (адрес types/create) – форма создания нового жанра; actionUpdate (адрес types/update) – форма изменения жанра; actionDelete (адрес types/delete) – удаление жанра; actionList (адрес types/list) – список жанров; actionAdmin (адрес types/admin) – список жанров с кнопками «Изменить» и «Удалить». Тут я хочу обратить ваше внимание на один момент. Этот контроллер ничего не знает об играх. Поэтому на страницах show и list будут просто выведены отдельные жанры и их список, без игр. Этот список мы оформим в виде виджета и поместим в сайдбаре, а для вывода игр, которые относятся к выбранному жанру, по-моему, будет логичнее использовать контроллер GamesController, который мы рассмотрим в следующий раз. Я начинаю с жанров только потому, что они должны быть созданы до того как будет выполнен импорт игр из фида партнерки. Т. е. методы actionShow и actionList нам не нужны, поэтому закроем к ним доступ. Чтобы не удалять эти методы из контроллера, я просто закомментировал первый элемент массива в методе accessRules. В результате при попытке доступа к ним посетитель увидит страницу с 403-ей ошибкой «У вас недостаточно прав для доступа к запрошенной странице». Вносим небольшие изменения в методы actionCreate и actionUpdate. Нам нужно только изменить редирект. Посмотрите, например, на actionUpdate.