Yii фреймворк: создание кнопок с помощью CButtonColumn

Тему этого поста подсказал мне читатель по имени Alex, за что ему большое спасибо.
Речь о компонентах zii, которые, начиная с версии 1.1, входят в состав фреймворка, и активно используются утилитой yiic при генерации кода.
К сожалению, документация по этим компонентам есть только в виде API (комментарии к исходникам) и её явно недостаточно.
Ситуация следующая. Если вас полностью устраивает код, который генерирует yiic – никаких проблем. Но вот что-то изменить или добавить какие-нибудь возможности уже сложнее.
Читать дальше »
Опубликовано в Ajax, JavaScript, PHP, Web разработка, Yii | Комментарии (6) »
Новые компоненты фреймворка Yii: CDetailView

Знаете, чем больше я работаю с фрейворком Yii, тем больше он мне нравится. Конечно, он далеко не идеальный, но активно развивается. Правда это развитие идёт не совсем плавно, а скорее рывками, и при этом остаются пробелы. Самый большой из них – документация. Я имею в виду «Полное руководство», информация в API полная.
Не поймите неправильно, то, что я написал в предыдущем абзаце – это даже не замечание разработчикам. Просто фреймворк позволяет решить одни и те же задачи разными способами, и новые классы появляются довольно часто. И для обновления документации, думаю, нужна специальная команда редакторов.
Но это всё общие рассуждения, а я собираюсь рассказать о вполне конкретной вещи – виджете CDetailView.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (15) »
Изменения в Yii 1.1: CActiveDataProvider

Я всё-таки решил продолжить обсуждение фреймворка Yii. Но на этот раз затяжных циклов я не планирую
, просто хочу рассказать о некоторых нововведениях в версиии 1.1.
Как вы, наверное, знаете, версия 1.1 довольно сильно отличается от 1.0.х. Есть и инструкция по переходу на новую версию.
Но есть момент, который может вызвать вопросы у тех, кто начинает знакомство с фреймворком с версии 1.1. Речь о классе CActiveDataProvider. Как несложно догадаться по названию, он предназначен для работы с базой данных. И если вы создадите сайт с помощью консольной утилиты yiic, то этот класс будет использован в методах actionIndex и actionAdmin контроллеров.
Класс очень удобный и позволяет сократить объём кода. Проблема в том, что документация немного отстаёт от жизни. В разделе о работе с базой данных подробно рассказывается об использовании классов CActiveRecord, CDbCriteria и других, но информация о CActiveDataProvider есть только в API.
Итак, что представляет собой этот класс.
Читать дальше »
Опубликовано в MySQL, PHP, Web разработка, Yii | Комментарии (8) »
Yii PHP framework: создаём игровой сайт. Часть 11. Человекопонятные URL.

В предыдущих частях мы практически доделали наш игровой сайт. Он в рабочем состоянии, но некоторые вещи выглядят не лучшим образом, и, прежде всего, это касается вида URL страниц.
По-умолчанию, Yii фреймоворк использует следующую схему для формирования адреса страниц:
-
http://имя_сайта.домен/index.php?r=контроллер/действие&параметр1=значение1…
Т.е. адрес формируется из GET параметров. В них передаётся вся информация, необходимая фреймворку для определения того, какую именно страницу нужно сформировать.
Все отлично, но в таком виде адрес очень плохо читается. Желательно было бы его сократить и использовать запись без GET параметров. Фреймворк позволяет нам сделать это, не изменяя код приложения. Нужно только указать соответствующие правила в файле конфигурации приложения (protected/config/main.php).
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (10) »
Yii PHP framework: создаём игровой сайт. Часть 10. Панель управления.

Сегодня мы займёмся панелью управления сайта. Часть этой панели мы уже сделали.
В третьей части (Аутентификация) мы создали контроллер DashboardController и переместили в него методы actionLogin и actionLogin.
Теперь нам нужно добавить методы для управления играми, пользователями и жанрами. По большому счёту, нужные методы у нас есть, они были автоматически созданы утилитой yiic, но часть методов нужно переделывать. Например, методы управления жанрами нам вполне подходят, т.к. ничего кроме обычных CRUD операций с жанрами нам делать не нужно. Но при редактировании игр нам нужны дополнительные возможности.
Для каждой игры нужно показать полный перечень жанров с чекбоксами, чтобы пользователь мог его отредактировать. Кроме того, нужен список скриншотов, и возможность удаления неподходящих.
В первую очередь создадим отдельный макет для страниц админки.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (16) »
Yii PHP framework: создаём игровой сайт. Часть 9. Поиск ошибок.

В этой части цикла мы рассмотрим некоторые возможности, которые предоставляет нам Yii фреймворк для отладки приложения.
Сразу хочу предупредить, эта статья не претендует на полноту. Я расскажу только от тех инструментах, которые использовал при разработке игрового сайта. Более подробную информацию можно найти в разделе Журналирование и Обработка ошибок.
Включаем режим отладки
Читать дальше »
Опубликовано в MySQL, PHP, Web разработка, Yii | Комментарии (7) »
Yii PHP framework: создаём игровой сайт. Часть 8. Создаём виджеты.

В этой части мы поговорим о том, какие средства предоставляет Yii для создания виджетов. Если верить википедии, виджет (widget) – это "контент модуль, который встраивается в веб-страницу или браузер" (вообще, это не совсем точно, в википедии есть несколько определений).
Правда здесь может возникнуть небольшая путаница в терминологии. Дело в том, что некоторые CMS (WordPress, например) используют термин виджет для обозначения особых плагинов, которые предназначены для отображения блоков с информацией в сайдбаре. Но сейчас нас интересует Yii PHP framework, поэтому мы будем считать виджетами объекты, которые наследуют класс CWidget.
Обычно виджеты используют для отображения какого-нибудь контента, который не зависит от основного содержимого страницы. Например, это может быть форма входа, перечень жанров игр, блок со случайными скриншотами, ссылки на страницы архива и т.п.
Для нас важно, что CWidget имеет особенность. Он является потомком класса CComponent, и, следовательно, является компонентом.
Рассмотрим, как создаются компоненты в фреймворке Yii.
Читать дальше »
Опубликовано в MySQL, PHP, Web разработка, Yii | Комментарии (2) »
Yii PHP framework: создаём игровой сайт. Часть 7. Работа с JavaScript и страницы игр.

Сегодня мы разберем каким образом реализована поддержка JS библиотек в фреймворке Yii и создадим страницы с подробным описанием игр.
Прежде всего, пару слов о том, как будут использоваться JS библиотеки в данном примере. Для каждой игры есть несколько заранее подготовленных скриншотов, которые нам нужно показать на страницы с подробным описанием игры. Сами картинки находятся на сайте партнерки, а в нашей базе данных сохранены ссылки на них, но это не принципиально. Для нас главное правильно создать теги img.
Разместить на странице игры полноразмерные скриншоты не получится, т.к. они слишком большие, поэтому мы покажем их миниатюры. А при клике на любую из миниатюр будет открываться галерея с полноразмерными скриншотами. Для создания галереи используем библиотеку jQuery и плагин jQuery Lightbox.
jQuery идет в комплекте с фреймворком, а Lightbox нужно скачать.
Теперь разберём принцип подключения.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (5) »
Yii PHP framework: создаём игровой сайт. Часть 6. Формируем страницы игр и жанров.

Приветствую всех! Сегодня мы продолжим разработку игрового сайта на основе фреймворка Yii.
Напомню, на чём мы остановились в прошлый раз. У нас создан контроллер для работы с играми GamesController, модель Games и стандартные представления (находятся в папке views/games). Кроме того, мы написали метод импорта игр actionImport.
Раз импортировать игры в базу мы можем, напишем методы для их отображения на сайте. Всего нам нужно создать три типа страниц:
1) с общим перечнем игр (главная);
2) с перечнем игр определенного жанра;
3) с выбранной игрой.
Первые два типа страниц мы реализуем с помощью одного метода – actionList. Дело в том, что страница с играми определенного жанра ничем не отличается от страницы с общим перечнем игр. Просто при поиске игр в базе мы используем один дополнительный параметр – код жанра.
Теперь взгляните на сам метод.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментариев нет »
Yii PHP framework: создаём игровой сайт. Часть 5. Импорт игр.

Сегодня мы продолжим создание игрового сайта с помощью 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 | Комментарии (7) »





