В прошлой статье про рефакторинг я обещал рассмотреть такой прием рефакторинга, как «Группировка кода в отдельную функцию», но я решил немного повременить с этим, чтобы рассмотреть несколько более мелких приемов, необходимых зачастую перед проведением группировки кода в отдельную функцию.
А сегодня мы поговорим о такой элементарной вещи, как избавление от функции, тело которой настолько понятно, что отражает имя этой функции. Речь идет преимущественно о функциях, состоящих из одной строки.
Читать далее »
Окт 22, 2008 | Автор :
Novice | 1 Комментарий
В одном из постов про DoJo один из посетителей этого блога попросил привести пример того, как вытаскивать порядок сортировки элементов с помощью расширения Dojo – DnD, т.е. drag’n’drop. Сегодня попытаюсь об этом рассказать.
Данный модуль DoJo позволяет перемещать элементы вверх/вниз в списке не перезагружая самой страницы, на которой расположен этот список.
Читать далее »
Окт 18, 2008 | Автор :
Novice | 5 Комментариев
Сегодня немного отвлечемся от рефакторинга в пользу AJAX на Dojo. А конкретнее – напишем скрипт голосования, используя Dojo.
Наш скрипт будет спрашивать у посетителя, нравится ли ему блог. На это есть два варианта ответа – да и нет. После выбора варианта ответа и нажатия кнопки «Проголосовать» скрипт вместо формы голосования покажет его результаты. А при нажатии кнопки «Показать результаты» в форме голосования скрипт также на месте этой формы покажет результаты голосования. При этом для простоты результаты будем хранить в файле.
Вообще, наш скрипт голосования будет состоять из 2-х частей: клиентская и серверная. Клиентская часть (index.php) будет отвечать за взаимодействие с пользователем, а серверная (vote.php) – за считывание и запись результатов голосования.
Поехали:
Читать далее »
Окт 08, 2008 | Автор :
Novice | 5 Комментариев
Продолжаю тему Google AJAX API. На этот раз мы будем работать с поиском от google. Google AJAX API позволяет взаимодействовать с поиском Google, не заходя на сайт google.com.
Работа с Google AJAX Search API, как и со всеми другими API, будет осуществляться через специальные js-классы. Эти классы будут асинхронно отправлять на google строку поиска и возвращать результаты поиска в формате JSON. Такой подход позволяет легко интегрировать поиск от google в любой веб-сайт.
Кроме формата JSON для поиска можно использовать стандартные элементы управления от google. Приведу сразу пример использования этого класса.
Читать далее »
Сен 11, 2008 | Автор :
Novice | 7 Комментариев
В предыдущей статье про DoJo мы рассмотрели механизмы взаимодействия с php-скриптом на основе Ajax. Но там не была рассмотрена важная особенность – возможность делать submit любой существующей формы на страничке.
А зачем нам делать submit формы? Можно же просто сформировать некоторый GET-запрос вроде этого:
main.php?action=add&what=address&value=123
Дело в том, что у передачи формы скрипту есть преимущества по сравнению с простым GET-методом:
- сложно закодировать что угодно с помощью URL и передать скрипту (например, двоичные данные)
- нельзя передать динамично изменяющиеся параметры (из текстового поля например)
- нельзя передать файл (input type=file)
Сейчас мы с Вами научимся передавать форму нашему php-скрипту с помощью DoJo. Поставим перед собой цель: загрузить файл на сервер и при этом передать его короткое текстовое описание, которое сохраним в текстовом файле. При этом скрипт должен нам вернуть 1, если все ок (файл принят и сохранен), иначе – 0.
Читать далее »
Сен 03, 2008 | Автор :
Novice | 10 Комментариев
Сегодня мы рассмотрим, как пользоваться механизмами для работы с Ajax в Dojo. Про Ajax я уже писал в другой статье, но то было для библиотеки jQuery. Но все равно советую прочитать сначала ее, прежде чем продолжать чтение дальше. Иначе некоторые моменты могут быть непонятными.
Ajax в Dojo реализован через так называемый XMLHttpRequest. Первым делом рассмотрим самый простой случай: когда скрипт на php вернет нам какой-то html-код, а мы этот код присвоим какому-нибудь элементу на странице. Причем сделаем это без перезагрузки страницы (на то и Ajax
). Формат этого простого случая называется AHAH.
Сделаем так, чтобы при нажатии кнопки мы узнали о номере версии PHP.
Для этого напишем очень простой скрипт, который будет просто возвращать номер версии PHP: <? echo phpversion(); ?>. И поместим этот код в файл version.php.
Читать далее »
Авг 29, 2008 | Автор :
Novice | 16 Комментариев
Все кто когда-то писал различного рода CMS от полноценных до простых скриптов галерей, сталкивались с проблемой создания уменьшенных копий изображений или thumbnail`ов на php (в народе известны как “превьюшки”).
Картинки на входе (которые надо уменьшить) могут быть с различными соотношениями между длинной и шириной, а на клиентской стороне скрипта (то, что видит посетитель сайта), задаются фиксированные размеры области вывода. Наша задача заключается в том, чтобы создать из первого – второе с помощью php.
Тут следует упомянуть еще один момент, который будет непосредственно рассмотрен в этот статье. На самом деле способов создания thumbnail`ов на php существует два (еще подскажете еще один, буду признателен):
- Изменение масштаба изображения (сжатие размеров).
- Выделение области, которая будет выводиться.
С первым все понятно, так как это самый популярный прием. Второй же случай встречается реже и не является автоматическим (нужно чтобы человек выделил область, из которой будет делаться превьюшка).
Читать далее »
Авг 28, 2008 | Автор :
Novice | 15 Комментариев