Phing: backup и сохранение в Subversion базы данных

29 июня, 2009
phing mysql subversion

В этой заметке я хочу показать несложный пример использования Phing для создания резервных копий базы данных (MySQL) и их отправки в репозиторий Subversion.

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

Примечание. Если вы слышите слово Phing впервые, то, думаю, вам будет интересно почитать статью Программирование на PHP. Избавляемся от рутинных операций с помощью Phing, а может быть и весь раздел Phing этого блога ;)

Возвращаемся к нашей задаче.

Для создания резервной копии базы можно использовать утилиту mysqldump. В её параметрах нужно указать имя пользователя базы, его пароль и название базы. Дополнительно нужно задать имя файла в который мы сохраняем дамп.

Например, так
Читать дальше »

Опубликовано в MySQL, Phing, Subversion | Комментарии (28) »

Откат базы данных и проблема с кодировками

23 июня, 2009
db_restore

Сегодня я хочу рассказать об одних граблях на которые сам недавно наступил.

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

А ситуация была такая. Я написал статью «jqGrid: редактирование табличных данных с помощью inline редакторов» и сделал демонстрационную страничку.

Для того, чтобы таблица не была пустой, я сделал дамп моей локальной базы и через phpMyAdmin залил его в базу на сервере.

При этом никаких проблем с кодировками не возникало вообще. Т.е. у меня везде была указана utf-8, она и использовалась.

Тут возникает обычная проблема.
Читать дальше »

Опубликовано в MySQL | Комментарии (11) »

Динамическая загрузка картинок для анонсов с помощью Ajax, jQuery и PHP

20 июня, 2009
ajax_image_load

Идею этого эффекта я нагло стырил позаимствовал на сайте jomsocial. Там есть блоки (под кнопкой Learn More) с анонсами. При наведении мышки на эти блоки к ним добавляется картинка.

Реализовать такой эффект можно разными способами. Например, можно теги картинок вставить прямо в страницу и прятать/показывать их с помощью JavaScript.

Основное достоинство такого варианта – отсутствие задержек при появлении картинок (если конечно вы подождали пока страница полностью загрузится).

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

Поэтому я решил привести пример своей реализации этого эффекта.

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

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

Говорят, что одна картинка стоит тысячи слов, поэтому я сделал демонстрационную страничку для этого примера.
Читать дальше »

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

jqGrid: редактирование табличных данных с помощью inline редакторов

13 июня, 2009
jqgrid

В одной из прошлых статей (jQuery Grid Plugin - "продвинутое" решение для создания таблиц) я рассказывал об использовании jqGrid для создания таблиц.

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

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

Прежде всего, напомню, что данные хранятся на стороне сервера (в базе данных) и плагин к ним непосредственного доступа не имеет. Он может только вызвать серверный (PHP) скрипт и передать ему новые значения.

Редактировать записи в таблице можно 2 способами.
Читать дальше »

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

WampServer: как я обновлял MySQL

5 июня, 2009
mysql_config

Эта история началась с того, что на днях я решил обновить софт для web разработки (apache + php + mysql). И для этого скачал последнюю версию wampserver'а.

Примечание. Почитать об этом дистрибутиве для web разработки можно в статье Инструменты web разработчика. WAMPSERVER 2 – только новый софт.

В принципе, отличия в номерах версий серверов были не большие и я думал, что никаких проблем не возникнет. Но, как оказалось, я ошибся. Серьезных проблем, конечно, не было, но "поиграться" с конфигами пришлось.
Читать дальше »

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

Как найти спамера в твиттере 2

1 июня, 2009
twitter spam

Что-то последнее время не дает мне покоя twitter :)

Сервис очень интересный и предоставляет интересные возможности как для общения, так и для рассылки спама. Т.к. я рассылкой спама не занимаюсь, то меня больше интересуют методы борьбы со спамерами в твиттере. В одном из предыдущих постов я уже рассказывал о способе поиска «специалистов по продвижению», но за это время возникло ещё несколько идей, которыми я и хочу поделиться.

Идея очень простая - подсчет ответов пользователю.

Обратите внимание, не тех ответов, которые пользователь сам написал, а тех, которые написали ему.

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

Дальше возникает тонкий момент. При каком количестве ответов нужно считать пользователя спамером?
Читать дальше »

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

Создаём виджет для хранения заметок. Часть 2.

29 мая, 2009
notes widget

В этой статье мы продолжаем разработку виджета для работы с короткими заметками. Если вы не читали предыдущую часть, то очень советую бегло её просмотреть. В ней мы подробно описаны постановка задачи и реализована серверная часть виджета, т.е. весь PHP код.

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

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

Поэтому основную часть клиентской части у нас будет занимать JavaScript код. А чтобы его сократить мы используем библиотеку jQuery с несколькими плагинами.

Кстати, есть демонстрационная страничка с этим виджетом.

демонстрационный пример

И, как и обещал, выкладываю архив с исходниками.

архив с исходным кодом

Прежде всего, рассмотрим разметку страницы (index.html).
Читать дальше »

Опубликовано в Ajax, CSS, HTML, JavaScript, Web разработка | Комментарии (5) »

Создаём виджет для хранения заметок. Часть 1.

27 мая, 2009
notes widget

Приветствую всех!

В этой статье я хочу показать пример создания собственного виджета, с помощью которого можно будет создавать короткие заметки и просматривать их. Виджет будет свободно перемещаться по странице и, конечно, будет возможность редактировать и удалять заметки.

Код виджета не сложный, но требует использования сразу нескольких технологий: PHP и MySQL на стороне сервера, HTML, CSS, JavaScript – на стороне клиента, поэтому я разбил статью на 2 части. В первой мы рассмотрим серверную часть кода, во второй – клиентскую.

Чтобы лучше понять, что мы получим в результате, взгляните на демонстрационную страничку

демонстрационный пример

Если задача ясна, приступим к делу.

Начнем с базы данных.
Читать дальше »

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

jQuery Grid Plugin - "продвинутое" решение для создания таблиц

22 мая, 2009
jqgrid

Сегодня речь пойдет о плагине для jQuery, предназначенном для отображения табличных данных. Я наткнулся на него практически случайно. Просто раньше я и не задумывался о том, что может существовать настолько мощное решение для таблиц. Ведь в большинстве случаев данные можно показать с помощью обычной html таблицы.

jQuery Grid Plugin имеет смысл использовать если нужно работать с большими таблицами. Дело в том, что плагин существенно упрощает разбивку данных на страницы. Т.е. автоматически создается панель с кнопками перелистывания страниц, а новые данные подгружаются с помощью AJAX. Кроме того, плагин имеет кучу дополнительных функций и несколько тем оформления.

От вас требуется настроить плагин и передавать ему данные. Звучит не сложно, но как всегда есть нюансы.

Чтобы не ходить вокруг да около, давайте рассмотрим небольшой пример.
Читать дальше »

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

Стикер. Создаем плагин для jQuery.

16 мая, 2009
jquery sticker

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

Итак, задача такая. Нам нужно создать стикер, который пользователь сможет свободно перемещать по странице. Но если пользователь оставит стикер около края страницы, то он должен плавно "прилипнуть" к этому краю. Сам стикер может представлять собой что угодно, для этого примера я использовал обычный div с картинкой.

Чтобы лучше объяснить принцип работы, я сделал демонстрационную страничку. По-умолчанию стикер находится около левого края окна, но вы можете переместить его в любую часть страницы. Если вы оставите его за пределами текста (над белым полем), то он плавно прижмется к краю страницы.

демонстрационный пример
архив с исходным кодом

Теперь перейдем к реализации.
Читать дальше »

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