Категории: Web разработка

Отложенная публикация постов в WordPress с помощью XML-RPC

Владимир | | PHP, Web разработка, WordPress.

Я думаю, многие блоггеры пользуются возможностью отложенной публикации постов в WP. Действительно, функция очень удобная, т.к. позволяет публиковать новые материалы через более-менее равномерные промежутки времени. К тому же для ее использования делать практически ничего не нужно, достаточно просто указать в админке WordPress дату публикации.

Но недавно у меня возникла задача публиковать посты через XML-RPC и, сразу же обнаружилось несколько не совсем очевидных нюансов, которые касаются указания даты. О них я и хочу сегодня рассказать.
Читать дальше

RedBean PHP ORM – за и против

Владимир | | MySQL, PHP, Web разработка.

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

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

Прежде всего, пару слов о ORM (англ. Object-relational mapping, русск. Объектно-реляционная проекция) вообще.

Основное назначение таких библиотек – преобразование объектов, которые используются в программах, в записи реляционных баз данных и обратно.

Дело в том, что все данные в БД хранятся в таблицах (аналог двумерных массивов), а объекты могут быть организованы в сложные иерархии (например, объект типа «Post» может содержать массив объектов типа «Comment»). И для того, чтобы сохранить такую структуру в БД нужно использовать несколько таблиц с дополнительными полями, которые устанавливают связи между записями.

Все это увеличивает сложность SQL запросов и время разработки.

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

Вернемся к RedBean.
Читать дальше

Передача параметров в JavaScript файлы

Владимир | | HTML, JavaScript, PHP, Web разработка.

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

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

Прежде всего, объясню, в чем заключается проблема. Обычно в конфигурационных файлах серверных (PHP) скриптов хранится множество настроек. И к некоторым из них нужно получить доступ из JavaScript. Если все эти параметры собраны в одном месте (конфигурационном файле или БД), то значительно упростится поддержку приложения.

Существует два широко распространенных решения этой задачи.
Читать дальше

Circle Tasks 2: новая версия моего ToDo скрипта

Владимир | | Web разработка, Разное.

Приветствую всех читателей!

На днях я закончил работу над второй версией ToDo скрипта и теперь хочу о нёй рассказать 😉 И, самое главное, почитать ваши отзывы.

Т.к. после релиза первой версии прошло уже больше месяца, я кратко напомню, о чем идет речь.

Думаю, представить себе простейший ToDo список могут все. Это просто перечень дел с отметками «выполнено / не выполнено».

Но существует множество вариантов усовершенствования такого списка. Например, можно придумать различные состояния для задач и обозначить их какими-нибудь символами. Такой подход значительно упрощает работу с большими списками, т.к. вы можете сортировать и фильтровать задачи по различным критериями (состояние, дата).

Для этого скрипта я использовал одну из таких систем обозначений. Её разработал Sigurdur Armannsson. Подробно её описание вы найдете в предыдущей статье.

Сейчас речь пойдет именно об изменениях по сравнению с предыдущей версией.
Читать дальше

Боремся с Magic Quotes

Владимир | | Hosting, htaccess, PHP, Web разработка.

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

Проблема оказалась мелкой и я все быстро исправил, но эта ситуация напомнила мне о законе подлости. Как только забываешь о тестировании – скрипты сразу перестают работать. Не зависимо от того, насколько они простые. 😉

В данном случае дело было во включенных Magic Quotes (волшебных кавычках, хорошее название, появляются как по волшебству там, где не надо 🙂 ).

Вообще-то, использование Magic Quotes не рекомендуемая практика.

В соответствующем разделе PHP manual ясно об этом сказано.

Warning

This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

Предупреждение

Эта возможность считается устаревшей начиная с PHP 5.3.0 и будет удалена начиная с PHP 6.0.0. Рассчитывать на эту возможность крайне не рекомендуется.

Кратко поясню смысл этой функции. Она перехватывает данные, которые получает скрипт (массивы $_POST, $_GET и т.д.) и экранирует в них специальные символы.

Была разработана для защиты от хакерских атак вроде SQL Injection.

Но на практике от нее больше проблем, чем пользы.
Читать дальше

Исправляем недостатки IE6

Владимир | | CSS, HTML, JavaScript, Web дизайн, Web разработка.

Думаю, все кто когда-нибудь занимался версткой сайтов, знает о том насколько хорошо IE6 поддерживает разные полезные возможности 😉

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

И на сегодняшний день игнорировать людей, которые используют устаревшую версию Internet Explorer нельзя.

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

Сегодня я расскажу о двух проблемах, которые можно решить практически без усилий с вашей стороны. Это поддержка :hover селекторов и прозрачных png изображений.
Читать дальше

Локализация клиентской части web приложений

Владимир | | Ajax, JavaScript, PHP, Web разработка.

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

Прежде всего, определимся с задачей.

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

И если наше приложение не использует JavaScript, то можно считать задачу решенной.

Но на сегодняшний день JS используется все чаще и в основном для создания интерфейса, содержащего множество надписей, сообщений и т.п.

Кроме того, в идеале мы должны указывать язык интерфейса только один раз, на стороне сервера. Например, во время регистрации пользователь указывает наиболее удобный для него язык, и мы сохраняем его в базе.

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

Теперь рассмотрим решение.
Читать дальше

jqGrid — поиск данных

Владимир | | Ajax, HTML, JavaScript, PHP, Web разработка.

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

Я довольно давно обещал рассказать о функции поиска в плагине jqGrid и сегодня выполняю обещание.

Для тех, кто сразу хочет посмотреть, как это работает, я сделал демонстрационную страничку

Demo

и, конечно, можно скачать архив с примером

Source

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

Сразу хочу отметить, что эта статья — продолжение предыдущих двух частей (jQuery Grid Plugin — «продвинутое» решение для создания таблиц и jqGrid: редактирование табличных данных с помощью inline редакторов). Поэтому если вы впервые слышите о jqGrid — очень советую почитать хотя бы первую часть.
Читать дальше

PHP скрипт: ToDo с картинками

Владимир | | Ajax, CodeIgniter, CSS, htaccess, HTML, JavaScript, MySQL, PHP, Web разработка.

Уделяете ли вы внимание организации своей работы?
Много ли у вас «мелких» дел, о которых вы регулярно забываете?

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

Хуже всего, когда нужно сделать много «мелких» дел, которые не занимают много времени, но обязательно должны быть выполнены вовремя… и держать в голове их все просто невозможно.

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

Я решил не оставаться в стороне и сделал собственный вариант такого ToDo списка, естественно, с некоторыми дополнительными возможностями.

Кстати, скрипт называется SimpleTasks.

Главная особенность – возможность указывать состояние выполнения задач. При этом используется специальная система обозначений.
Читать дальше

jqGrid – создание дополнительных кнопок

Владимир | | Ajax, JavaScript, Web разработка.

Пишу этот пост, т.к. недавно столкнулся с проблемой при использовании jqGrid. Об этом плагине для jQuery я уже рассказывал (часть 1, часть 2), поэтому повторяться нет смысла, скажу только, что, на мой взгляд, он представляет собой одно из лучших JS решений для работы с большими таблицами.

А проблема возникла, в общем-то, тривиальная – не достаточно подробная документация.

Дело было так. Один из читателей этого блога (Виктор Волков) попросил меня помочь добавить дополнительные кнопки в навигационную панель jqGrid. Я естественно отправил ему ссылку на соответствующую страницу справки 🙂 … Но при этом я не знал, что если скопировать код от туда, то работать он не будет.

Хотя их демонстрационные примеры с дополнительными кнопками прекрасно работают.
Читать дальше