Yii PHP фреймворк: создаем поле с автозаполнением

Приветствую всех!
Сегодня я покажу небольшой пример использования виджета CAutoComplete из фреймворка Yii. Как несложно догадаться, он создаёт текстовое поле, под которым может появляться список с вариантами подстановок.
Принцип создания такого поля довольно прост. На странице нужно поместить обычное текстовое поле и назначить событию onKeyUp обработчик, который будет отправлять AJAX запросы серверу. В этих запросах нужно передавать введённый посетителем текст. Сервер ищет совпадения с этим текстом в БД и возвращает результат браузеру. JavaScript обработчик создаёт список с вариантами, полученными от сервера, и показывает его под полем.
Как видите, алгоритм несложный, но рутинной работы много.
Теперь, давайте разберёмся, что сделает за вас виджет, а что придётся делать вам.
Читать дальше »
Опубликовано в MySQL, PHP, Web разработка, Yii | Комментарии (22) »
Yii PHP framework: связанные таблицы и limit

Давно я собирался написать этот пост, практически сразу после выхода цикла о создании игрового сайта, но как-то всё время откладывал.
В новых версиях фреймворка Yii (1.1.х) немного изменился принцип использования встроенной библиотеки для работы с базой данных, точнее она стала по-другому формировать SQL запросы при использовании связанных таблиц.
Речь идет об этом изменении.
Читать дальше »
Опубликовано в MySQL, PHP, Web разработка, Yii | Комментарии (25) »
XML-RPC и Yii фреймворк

Последнее время фреймворк Yii набирает популярность. В основном благодаря интенсивному развитию и неплохому набору встроенных библиотек. Поэтому для меня было, немного удивительно, что в дистрибутиве не обнаружилось библиотеки для работы с XML-RPC.
Но, как оказалось, этот недостаток несложно исправить. Рассмотрим небольшой пример, получение нескольких записей из блога на движке WordPress с помощью XML-RPC запроса.
Шаг 1. Загружаем библиотеку для работы с XML-RPC.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (34) »
Использование jqGrid вместе с Yii фреймворком

Приветствую всех!
В этой статье речь пойдёт о том как использовать Yii PHP framework и плагин к jQuery под названием jqGrid. Я не буду повторяться и рассказывать о том, что из себя представляют Yii и jqGrid и зачем они нужны. Вы легко найдёте все мои заметки на эту тему с помощью поиска по блогу
(кстати, все статьи о Yii вынесены в отдельный раздел).
Когда я проводил этот эксперимент, меня интересовали два момента:
1) подключение jgGrid;
2) преобразование данных, полученных с помощью CActiveDataProvider в формат понятный для jgGrid.
С первым пунктом всё более-менее понятно. jqGrid представляет собой набор JS и CSS файлов, которые нужно подключить к странице.
Читать дальше »
Опубликовано в Ajax, JavaScript, PHP, Web разработка, Yii | Комментарии (25) »
Yii PHP framework: Запускаем Curl из консоли

Сегодня я продолжу рассказывать об использовании фреймворка Yii. На этот раз речь пойдёт о создании консольных приложений. Их удобно запускать с помощью планировщика, поэтому чаще всего они используются выполнения действий вроде отправки отчетов на eMail, получения данных и т.п. Вашу фантазию тут никто не ограничивает
Главное отличие от обычного web приложения в том, что фреймворк не будет выполнять действий, связанных с формированием страницы, а просто выполнит ваш скрипт. При этом у вас остаётся доступ ко всем возможностям фреймоворка, что значительно упрощает работу.
Рассмотрим небольшой пример. Допустим, нам нужно периодически проверять содержимое какой-нибудь web страницы, и записывать его в базу.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (9) »
Yii фреймворк: создание кнопок с помощью CButtonColumn

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

Знаете, чем больше я работаю с фрейворком Yii, тем больше он мне нравится. Конечно, он далеко не идеальный, но активно развивается. Правда это развитие идёт не совсем плавно, а скорее рывками, и при этом остаются пробелы. Самый большой из них – документация. Я имею в виду «Полное руководство», информация в API полная.
Не поймите неправильно, то, что я написал в предыдущем абзаце – это даже не замечание разработчикам. Просто фреймворк позволяет решить одни и те же задачи разными способами, и новые классы появляются довольно часто. И для обновления документации, думаю, нужна специальная команда редакторов.
Но это всё общие рассуждения, а я собираюсь рассказать о вполне конкретной вещи – виджете CDetailView.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (35) »
Изменения в 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 | Комментарии (26) »
Yii PHP framework: создаём игровой сайт. Часть 11. Человекопонятные URL.

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

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





