Динамическое добавление элементов к форме

При разработке модуля Inner poll возникла задача динамического добавления элементов к форме. С помощью библиотеки jQuery эта задача решается в два счета.

Для начала пишем функцию:

function addInput() {
    /* default-id — скрытый элемент формы, из которого берется id для первого создаваемого элемента */
    var id = document.getElementById("default-id").value;
    id++;
    /* в форму с именем testform добавляем новый элемент */
    $("form[name=testform]").append('<div id="div-' + id + '"><input name="input-' + id + '" id="input-' + id + '" value="' + id + '"><a href="javascript:{}" onclick="removeInput(\'' + id + '\')">Удалить</a></div>');
    /* увеличиваем счетчик элементов */
    document.getElementById("default-id").value = id;
}

Затем создаем форму:

<form name="testform" action="test.php" method="POST">
      <input type="hidden" id="default-id" value="0">
      <input type="submit" value="Отправить!">
</form>
<a href="javascript:{}" onclick="addInput()">Добавить текстовое поле</a><br>

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

Тестирование модуля "Inner poll"

Разработал очередной модуль для шестого Друпала. Inner poll — модуль позволяющий прикреплять опросы к любому документу (в стандартной поставке Друпала опрос является отдельным типом документа).

Читать дальше ➠

Получение заголовков (HTTP-headers) страницы при помощи Java-script

В журнале Smashing Magazine наткнулся на скрипт (плагин для jQuery), позволяющий автоматически рядом с ссылками указывать размер файла, на который указывает эта ссылка. Оказалось, что этот скрипт в своей работе использует полезный сервис, под названием json-head, который на входе принимает любой URL, а на выходе в формате JSON отдает заголовки, которые получил от сервера.

Анализируя эти заголовки можно на стороне клиента придумать много полезных фишек, кроме указания размера документа, на который ведет ссылка, можно, например, подсвечивать ссылки на недавно обновленные страницы (заголовок “Last-Modified”) или нерабочие ссылки (анализ переменной “status_code”).

Все те же действия можно проделывать и не используя сторонние сервисы, но в таком случае опрос удаленных серверов и анализ заголовков придется реализовать на стороне своего сервера, со всеми вытекающими отсюда достоинствами (независимость от сторонних сервисов и того, включена на стороне клиента поддержка Java-script или нет) и недостатками (в случае большого количества запросов забанят ip вашего сервера, а не ip сервера http://json-head.appspot.com ну и необходимость разработки собственного решения).

Кстати, с помощью этого сервиса, совершенно случайно выяснил, что Гугл работает с использованием веб-сервера собственной разработки — gws, по данным из Википедии на этом ПО работает 9,3% всех сайтов в интернете, то есть Гугл — это и есть почти 10% интернета!

Читать дальше ➠

Запустил на сайте новый небольшой сервис "тИЦ и PR одной кнопкой"

Запустил в тестовом режиме небольшой сервис под названием “тИЦ и PR одной кнопкой”, с помощью которого любой желающий может получить кнопку, содержащую информацию о рейтинге своего сайта в двух самых популярных в рунете SEO-пузомерках — Google PR и Яндекс тИЦ. Доступен сервис в виде блока (в правой колонке этого сайта) и в виде отдельной страницы.

Сервис автоматически проверяет рейтинги сайтов занесенных в базу данных и, при их изменении, создает новую кнопку-картинку. Кроме того, сервис ведет статистику изменения PR и тИЦ, что позволяет оценить динамику роста популярности сайта.

Киви не умеют летать?

kiwi

Киви (бескры?лы) — нелетающие бескилевые птицы. Тело у киви грушевидной формы, с маленькой головой и короткой шеей. Весят от 1,4 до 4 кг. Киви свойственна наибольшая редукция крыльев среди птиц: они всего 5 см в длину и почти незаметны среди оперения. Тело птицы равномерно покрыто мягкими, серыми или светло-бурыми перьями, больше похожими на шерсть. Хвост отсутствует. Ноги четырёхпалые, короткие, но очень сильные, с острыми когтями; их вес составляет примерно ? веса тела. Скелет не пневматичен, кости тяжёлые.

Оригинальный мультик:

Оригинальный клип на песню Gary Jules “Mad World”:

Автоматическая "газетная" верстка (верстка в несколько колонок)

Наткнулся на еще один очень интересный плагин Columnizer для библиотеки jQuery, который позволяет автоматически форматировать текст в “газетном” стиле, то есть разбивать его на несколько колонок.

Читать дальше ➠

Перетаскивание строк таблицы. Table drag and drop — плагин для jQuery

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

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

Читать дальше ➠

Рассуждение на тему «Сколько стоит сайт?»

Что такое сайт?

Прежде чем принять решение о разработке сайта необходимо понять одну важную вещь. Сайт — это инструмент. Инструмент, позволяющий достичь поставленную цель. В девяноста процентах случаев такой целью является привлечение клиентов к существующему бизнесу (услуге, товару). Для достижения цели инструмент должен исправно работать в руках грамотного специалиста.

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

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

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

Теоретически, все приведенные выше профессии могут быть объединены в лице одного человека, но такому исполнителю придется работать по 25 часов в сутки, чтобы выполнять заказы в разумные сроки, по этому для исполнения работ правильнее выбирать или компании, или состоявшиеся группы фрилансеров, в которых есть специалисты под каждую из выполняемых задач. Кроме того, в случае если разработкой проекта занимается один человек, велика вероятность того что сроки разработки будут сорваны из-за болезни/отпуска/плохого настроения исполнителя.

Читать дальше ➠

Drupal for Firebug

Firebug

Многие веб-разработчики пользуются Firebug‘ом — замечательным расширением браузера Firefox, которое позволяет легко и быстро проводить отладку css и html-кода.

Буквально на днях, 28 августа, вышел в свет новый продукт, расширяющий возможности Firebug’a, который придется по вкусу Drupal-специалистам — модуль Drupal For Firebug. После установки этого модуля, а также дополнительного расширения для Firefox разработчики получают доступ к очень удобной консоли, в которой выводится:

  • отладочная информация, которую программисты могут добавлять в свои модули при помощи функции firep($item, $optional_title);
  • лог SQL-запросов (в случае если включен и настроен модуль devel);
  • информация о параметрах всех форм;
  • информация о текущем пользователе;
  • информация об открытом документе (ноде);
  • информация о представлениях (Views);
  • а также расширение дает возможность исполнять php-код. Drupal for Firebug Модуль доступен как для пятого, так и для шестого Друпала. Рекомендую всем разработчикам, использующим Друпал.