понедельник, 21 декабря 2009 г.

Новый плагин sfDoctrineGuardPlugin

Автор плагина sfDoctrineGuardPlugin, Jonathan Wage, пишет, что все, кто использует этот плагин, должны переключиться на новый депозиторий, чтобы использовать новую, стабильную, версию. Также он сообщает, что начинает работать над следующей версией sfDoctrineGuardPlugin, которая будет оснащена функциональностью восстановления пароля, регистрации и т. д. Эта версия не будет совместима со старыми (текущими в настоящий момент) версиями.

На вопрос "Будет ли новый плагин поддерживать расширение новыми полями, вместо текущего Profile?" автор отвечает, что в этом нет никакой необходимости, и он по-прежнему считает, что создание связи User->Profile - наилучшее решение этой задачи. Народ с ним не согласен (и в гугл-группе, и в русском симфония-чате). Он говорит, что единственное, что он сделает в этом направлении - добавит first_name, last_name и email.

Также в новой версии будет интеграция LDAP.

- Джон, успеешь ли ты сделать плагин до 25 декабря? Это был бы крутой подарок на Рождество!
- Sorry, Оливер, но никак не успею.

суббота, 19 декабря 2009 г.

Товар, товара, товаров

Не смущает надпись
Товаров в каталоге: 2.
?

воскресенье, 13 декабря 2009 г.

Валидатор для проверки чет-нечет

При вводе, например, размера одежды в российском стандарте (42,44,46,...) нужно проверить, чтобы число было четным (или, в каком-то другом случае, оно должно быть нечетным). Для проверки пользуемся валидатором NumberEvenOdd, который наследуется от обычного sfValidatorNumber.

Пишем под textarea ограничение по числу символов

Задача: под textarea написать "Осталось 87 символов" и динамически обновлять это поле по мере набора текста.



Самой сложной задачей оказалось найти подходящий плагин jQuery. Многие, например, maxlength.js имеют неприятное свойство "блокирования" клавиатуры, когда лимит достигнут. То есть ни del, ни backspace, ни tab не работают, текст больше поправить нельзя. Также добрые три четверти плагинов не предоставляют должной свободы в конфигурировании строки "Осталось 10 символов". Во многих она просто захардкодена.

Привет, Beeline! На твоем сайте в форме отправки SMS та же фигня. Смени плагин ;)

Устраняем эффект "прыгания" при использовании jCrop

При использовании jCrop есть эффект "прыгания", когда при активации Crop'a и начале выделения изображение принимает фокус, и от этого страница неприятно прыгает (прокручивается). Избавляемся от этого эффекта, комментируя строку в функции watchKeys()

$keymgr.focus();

В файле jquery.Jcrop.js

среда, 9 декабря 2009 г.

Как отметить звездочкой обязательные поля в формах?

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

Виджет для jquery.datepicker

Делаем виджет для ввода даты с помощью jQuery.datepicker

Как извлечь все i18n-фразы из определенной папки?

По умолчанию i18n:extract вытаскивает фразы только из папки проекта, и не трогает, например, папку с плагинами. Если надо вытащить i18n-фразы из произвольных папок, надо править

symfony/lib/i18n/extract/sfI18nApplicationExtract.class.php

метод extract(). Просто добавляется своя папка по аналогии с двумя имеющимися.

Заменяем Zend_Mail на Swift в плагине sfDoctrineApply

Мне не понравилось, что для работы с sfApply потребовалось подключать кусок Zend Framefork, а именно Zend_Mail. Авторы sfApply сообщают, что не хотят иметь дела с родным для symfony SwiftMailer, потому что он внезапно поменял API, и оно стало несовместимым с предыдущими версиями. Поскольку меня мало заботит совместимость с предыдущими версиями, я решил заменить почтовик в этом плагине.