Yii PHP framework: создаём игровой сайт. Часть 10. Панель управления.

7 февраля, 2010
yii game site dashboard

Сегодня мы займёмся панелью управления сайта. Часть этой панели мы уже сделали.

В третьей части (Аутентификация) мы создали контроллер DashboardController и переместили в него методы actionLogin и actionLogin.

Теперь нам нужно добавить методы для управления играми, пользователями и жанрами. По большому счёту, нужные методы у нас есть, они были автоматически созданы утилитой yiic, но часть методов нужно переделывать. Например, методы управления жанрами нам вполне подходят, т.к. ничего кроме обычных CRUD операций с жанрами нам делать не нужно. Но при редактировании игр нам нужны дополнительные возможности.

Для каждой игры нужно показать полный перечень жанров с чекбоксами, чтобы пользователь мог его отредактировать. Кроме того, нужен список скриншотов, и возможность удаления неподходящих.

В первую очередь создадим отдельный макет для страниц админки.
Читать дальше »

Опубликовано в PHP, Web разработка, Yii | Комментарии (2) »

Yii PHP framework: создаём игровой сайт. Часть 9. Поиск ошибок.

4 февраля, 2010
yii game site bugs

В этой части цикла мы рассмотрим некоторые возможности, которые предоставляет нам Yii фреймворк для отладки приложения.

Сразу хочу предупредить, эта статья не претендует на полноту. Я расскажу только от тех инструментах, которые использовал при разработке игрового сайта. Более подробную информацию можно найти в разделе Журналирование и Обработка ошибок.

Включаем режим отладки
Читать дальше »

Опубликовано в MySQL, PHP, Web разработка, Yii | Комментарии (5) »

Конференция по Zend Framework

1 февраля, 2010
конференция по Zend Framework

В конце марта 2010 г. в Санкт-Петербурге пройдет первая в России конференция по Zend Framework. На данный момент открыта предварительная регистрация. Событие знаковое во всех отношениях.

Во-первых, приятно осознавать, что у нас начинают проводить конференции, посвященные не только языку в целом, а и специализированным фреймворкам.

Во-вторых, планируется, что конференция будет бесплатной. Сейчас организаторы проводят переговоры со спонсорами. На мой взгляд это может стать началом отличной традиции :)

В-третьих, мне очень понравилось отношение организаторов к своей работе. Докладчиками будут лучшие разработчики нашего сообщества, а также один из создателей самого фреймворка.

На этой странице вы можете познакомиться с полным перечнем докладов и обсудить их.

Теперь важный момент.

Для того, чтобы событие состоялось, организатором необходимо оценить количество участников. Поэтому убедительная просьба ко всем заинтересованным лицам:
Регистрируйтесь!

И, пока есть возможность, оставляйте свои пожелания и высказывайте мнение о темах докладов. Окончательная дата конференции ещё не назначена, поэтому вполне возможно, что организаторы смогут их учесть.

Опубликовано в PHP, Разное | Комментарии (10) »

Yii PHP framework: создаём игровой сайт. Часть 8. Создаём виджеты.

30 января, 2010
yii_game_site_widgets

В этой части мы поговорим о том, какие средства предоставляет Yii для создания виджетов. Если верить википедии, виджет (widget) – это "контент модуль, который встраивается в веб-страницу или браузер" (вообще, это не совсем точно, в википедии есть несколько определений).

Правда здесь может возникнуть небольшая путаница в терминологии. Дело в том, что некоторые CMS (WordPress, например) используют термин виджет для обозначения особых плагинов, которые предназначены для отображения блоков с информацией в сайдбаре. Но сейчас нас интересует Yii PHP framework, поэтому мы будем считать виджетами объекты, которые наследуют класс CWidget.

Обычно виджеты используют для отображения какого-нибудь контента, который не зависит от основного содержимого страницы. Например, это может быть форма входа, перечень жанров игр, блок со случайными скриншотами, ссылки на страницы архива и т.п.

Для нас важно, что CWidget имеет особенность. Он является потомком класса CComponent, и, следовательно, является компонентом.

Рассмотрим, как создаются компоненты в фреймворке Yii.
Читать дальше »

Опубликовано в MySQL, PHP, Web разработка, Yii | Комментариев нет »

Yii PHP framework: создаём игровой сайт. Часть 7. Работа с JavaScript и страницы игр.

26 января, 2010
yii game site javascript

Сегодня мы разберем каким образом реализована поддержка JS библиотек в фреймворке Yii и создадим страницы с подробным описанием игр.

Прежде всего, пару слов о том, как будут использоваться JS библиотеки в данном примере. Для каждой игры есть несколько заранее подготовленных скриншотов, которые нам нужно показать на страницы с подробным описанием игры. Сами картинки находятся на сайте партнерки, а в нашей базе данных сохранены ссылки на них, но это не принципиально. Для нас главное правильно создать теги img.

Разместить на странице игры полноразмерные скриншоты не получится, т.к. они слишком большие, поэтому мы покажем их миниатюры. А при клике на любую из миниатюр будет открываться галерея с полноразмерными скриншотами. Для создания галереи используем библиотеку jQuery и плагин jQuery Lightbox.

jQuery идет в комплекте с фреймворком, а Lightbox нужно скачать.

Теперь разберём принцип подключения.
Читать дальше »

Опубликовано в PHP, Web разработка, Yii | Комментарии (4) »

Yii PHP framework: создаём игровой сайт. Часть 6. Формируем страницы игр и жанров.

23 января, 2010
yii_game_site_mvc

Приветствую всех! Сегодня мы продолжим разработку игрового сайта на основе фреймворка Yii.

Напомню, на чём мы остановились в прошлый раз. У нас создан контроллер для работы с играми GamesController, модель Games и стандартные представления (находятся в папке views/games). Кроме того, мы написали метод импорта игр actionImport.

Раз импортировать игры в базу мы можем, напишем методы для их отображения на сайте. Всего нам нужно создать три типа страниц:

1) с общим перечнем игр (главная);

2) с перечнем игр определенного жанра;

3) с выбранной игрой.

Первые два типа страниц мы реализуем с помощью одного метода – actionList. Дело в том, что страница с играми определенного жанра ничем не отличается от страницы с общим перечнем игр. Просто при поиске игр в базе мы используем один дополнительный параметр – код жанра.

Теперь взгляните на сам метод.
Читать дальше »

Опубликовано в PHP, Web разработка, Yii | Комментариев нет »

Yii PHP framework: создаём игровой сайт. Часть 5. Импорт игр.

16 января, 2010
import games

Сегодня мы продолжим создание игрового сайта с помощью Yii PHP framework. Наши задачи: заполнить базу данных информацией об играх (её мы берем из партнерки GameBoss) и, заодно, немного разобраться с библиотекой Yii для работы с базой данных.

Алгоритм импорта довольно прост.

1) Читаем из базы список жанров. Они должны быть созданы заранее, иначе мы не сможем правильно создать записи в таблице ygs_games_types.

2) Получаем список игр, которые уже сохранены в БД (нам нужны их id).

3) Получаем данные от GameBoss. Они приходят в xml формате.

4) Для каждой игры, полученной от GameBoss, проверяем, существует ли она в базе, и, если нет, сохраняем.

5) Создаём записи в связанных таблицах ygs_games_types и ygs_screenshots.

6) Показываем страницу с кнопкой «Импрорт».

Прежде чем писать метод импорта, создадим модель, контроллер и представления для работы с играми.

>> yiic shell
model Games ygs_games
crud Games

Теперь можно добавить метод actionImport в контроллер GamesController.
Читать дальше »

Опубликовано в PHP, Web разработка, Yii | Комментарии (6) »

Yii PHP framework: создаём игровой сайт. Часть 4. Работа с жанрами игр.

12 января, 2010
yii game site

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

Но вначале два небольших объявления.

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

Сразу хочу обратить ваше внимание, что это не окончательная версия сайта и, скорее всего, в ней есть баги и недоработки. Поэтому буду рад, если вы о них мне сообщите ;)

Возвращаемся к жанрам.

Открываем окно консоли и выполняем команды
Читать дальше »

Опубликовано в PHP, Web разработка, Yii | Комментарии (6) »

Yii PHP framework: создаём игровой сайт. Часть 3. Аутентификация.

9 января, 2010
yii_game_site_auth

Приветствую всех! Эта статья – продолжение цикла о создании игрового сайта с использованием PHP фреймворка Yii.

Сегодня мы займемся ограничением доступа к административной части сайта. У вас может возникнуть вполне закономерный вопрос: «Почему именно ею? Ведь в предыдущих частях мы только создали базу данных, на сайте нет ни одной рабочей страницы.»

Всё правильно, но Yii имеет некоторые особенности. Код, который генерирует консольная утилита при создании контроллеров, автоматически использует встроенную библиотеку авторизации. Кроме того, в стандартном приложении, которое мы в прошлый раз создали командой yiic webapp есть все необходимые компоненты для аутентификации и авторизации пользователей.

От нас требуется только связать этот код с нашей базой данных. Т.е. кода нам нужно написать совсем немного.
Читать дальше »

Опубликовано в PHP, Web разработка, Yii | Комментарии (12) »

Yii PHP framework: создаём игровой сайт. Часть 2. База данных и установка фреймворка.

7 января, 2010
yii game site db

Как и обещал, продолжаю цикл статей о создании сайта на базе фреймворка Yii. Сегодня мы поговорим об архитектуре базы данных и разберем установку фреймворка.

Начнем с базы данных.

Как вы, наверное, помните наш сайт будет использовать данные из игровой партнерки GameBoss.ru. Эти данные можно получить несколькими способами, но в нашем случае удобнее всего XML фид.

Естественно, просто скопировать данные из фида не получится (позже мы напишем специальный метод для этой цели), а сейчас нам нужно разработать структуру базы.

Получить XML фид можно по адресу

  1. http://gameboss.ru/x2.php?partner=38370&limit=1000&genre=127&short=1&full=1&image=1

где partner=ваш_партнерский_id (его вы получаете при регистрации в партнерке)

Взгляните на скриншот фида.
Читать дальше »

Опубликовано в PHP, Web разработка, Yii | Комментарии (9) »