Posts Tagged with php

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

function widget()
function update()
function form()


Виджет CAutoComplete. Принцип создания поля довольно прост. На странице нужно поместить обычное текстовое поле и назначить событию onKeyUp обработчик, который будет отправлять AJAX запросы серверу. В этих запросах нужно передавать введённый посетителем текст. Сервер ищет совпадения с этим текстом в БД и возвращает результат браузеру. JavaScript обработчик создаёт список с вариантами, полученными от сервера, и показывает его под полем.

Pешение «в лоб»

$ids = array(1, 2, 3);
$dataProvider=new CActiveDataProvider('User',array(
    'criteria'=>array(
        'condition'=>'id IN ('.implode(',', $ids).')',
    )
));
 
$this->render('admin',array(
    'model'=>$dataProvider,
));

Говнокод выглядит не очень красиво; если массив $ids окажется пустым, возникнет ошибка; полученные значения нужно проверить. Далее решение с помощью библиотеки Yii.

B Yii включили в репозиторий packagist.org, теперь можно использовать один менеджер зависимостей Composer для обновления и фреймворка, и дополнительных библиотек.

Если надо импортирвоать в БД средстввами рнр

  • CMS Open Real Estate
  • EximusCommerce
  • Cобрать магазин из расширений: Nested Sets, EAV, Shopping Cart.
  • Определяем, чтобы дата в формате mm/dd/yyyy была в будущем
  • Валидируем время в формате g:i a (10:05 am)
  • Валидируем чтобы дата окончания была больше начальной даты (endDate > startDate)
  • Пароль должен содержать хотя бы 1 заглавную букву и хотя бы 1 цифру
  • Пароль должен содержать хотя бы 1 заглавную букву и хотя бы 1 цифру
  • Пароль должен содержать хотя бы 1 заглавную букву и хотя бы 1 цифру
  • Исключение валидации для определенных сценариев
  • Исключение валидации для определенных сценариев
  • Уникальность с условием
  • Работа с внешними ключами

Разберем создание диалоговых окон yii на примере формы обратной связи.

Bыбрать из базы сгрупированные данные по дню и сложить значение одного поля. Оказалось что привычным мне классом CDbCriteria() этого не сделать - нужно использовать DAO

CHtml::link()
CHtml::button()
CHtml::textField()
CHtml::listData()
CHtml::dropDownList()