Май 29

В одном из моих проектов мне понадобился простой javascript календарь. Но из существующих jQuery плагинов, только один “почти” соответствовал мои требованиям. Решил написать свой плагин - проба пера calendarLite plugin.

Особенности calendarLite:

  • календарь предназначен для постоянного отображения на странице (не так как разные date picker)
  • навигация по месяцам при помощи кнопок “Вперед” и “Назад”
  • гибкая настройка (возможные опции смотрите ниже)

Использование

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

Установка формата ссылки

Можно задавать формат ссылки (для anchor), например для такого рода ссылок: http://snowcore.net/events/29-05-2009
Это можно сделать при помощи linkFormat опции

Возможные ‘linkFormat’ опции

  • {%dd} - дата с предшествующим нулем
  • {%d} - дата без нуля
  • {%mm} - месяц с предшествующим нулем
  • {%m} - месяц без нуля
  • {%yy} - год (два знака)
  • {%yyyy} - полный год (четыре знака)
            
            $('#cLinkFormat').calendarLite({
                linkFormat: 'http://snowcore.net/events/{%dd}-{%mm}-{%yyyy}'
            });
            
        

Задание собственной функции-обработчика (callback)

Для клика на ячейке можно задавать свои обработчики.
Callback функция принимает одно значение - выдранная дата.
onSelect опция позволяет сделать это
Дополнительная опция dateFormat дает возможность установить формат даты, которая будет передаваться callback функции.
Значение по умолчанию для dateFormat: ‘{%dd}.{%mm}.{%yyyy}’

            
            $('#cCallback').calendarLite({
                dateFormat: '{%yyyy}-{%m}-{%d}',
                onSelect: function(date) {
                    alert(date);
                    return false;
                }
            });
            
        

Настройка внешнего вида

Используя другие опции (и стили) можно настроить внешний вид календаря:

  • showYear - если установлено в true, то вверху показывается год
  • prevArrow иnextArrow - символы для кнопок ‘Предыдущий’ и ‘Следующий’
  • months и days - имена месяцев и дней (для мультиязычности)
            
            $('#cStyle').calendarLite({
                showYear: true,
                prevArrow: '←',
                nextArrow: '→',
                months: ['January', 'February', 'March', 'April', 'May', 'June',
                         'July', 'August', 'September', 'October', 'November', 'December'],
                days: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']
            });
            
        


Страница проекта на сайте plugins.jquery.com: calendarLite plugin

Скачать плагин можно здесь: calendarLite

Еще один интересный jQuery плагин: модальное окно jQuery

Май 25

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

Таблица umlauts и спец.символов

Символ HTML entity
ä ä
ö ö
ü ü
Ä Ä
Ö Ö
Ü Ü
ß ß
è è
é é
û û

Или все символы строкой: äöüÄÖÜßèéû

Теперь нам не страшны никакие немецкие регулярные выражения :D

Май 21

Zend Framework предоставляет ряд помощников (Helpers), которые используются во view скриптах. К ним относятся, например: хелперы для создания разных HTML элементов, для построения ссылок, для экранирования вывода (escape) и другое. Но иногда возникает необходимость в создании  собственного (custom) view helper. Рассмотрим рекомендации по этому поводу.

Helper представляет собой класс, который должен соблюдать некоторые требования:

  • Имя класса должно заканчиваться именем хелпера
  • Helper должен иметь public метод, имя которого совпадает с именем хелпера
  • Метод не должен использовать echo или print функции - необходимо возвращать значение
  • Необязательная рекомендация: разработчики Zend Framework советуют наследоваьб свой view helper класс от Zend_View_Helper_Abstract или имплементировать интерфейс Zend_View_Helper_Interface (в следующих релизах ZF планируется упростить набор правил для создания custom view helper, которые приведены выше)

Что ж, попробуем написать свой помощник вида.

В Smarty есть модификатор, который отрезает часть текста - truncate. Его можно использовать, например при выводе анонса новостей. Создадим и мы helper, который реализует данный функционал.

  • Создаем класс, который находится по такому пути: library/Custom/View/Helper/Truncate.php (используется классическая структура директорий Zend Framework)
<?php
class Custom_View_Helper_Truncate extends Zend_View_Helper_Abstract
{
    public function truncate($string, $length = 50, $postfix = ‘…’)
    {
        $truncated = trim($string);
        $length = (int)$length;
        if (!$string) {
            return $truncated;
        }
        $fullLength = iconv_strlen($truncated, ‘UTF-8′);
        if ($fullLength > $length) {
            $truncated = trim(iconv_substr($truncated, 0, $length, ‘UTF-8′)) . $postfix;
        }
        return $truncated;   
    }
}
  • Добавляем путь к view хелперам в нашем bootstrap файле
<?php
$layout = Zend_Layout::startMvc(array(‘layoutPath’ => ‘../application/layouts’));
$layout->getView()->addHelperPath(‘Custom/View/Helper’, ‘Custom_View_Helper’);
?>

После этого наш хелпер готов к употреблению ))) В скрипте вида используем его так:

<?php
$this->truncate($this->someBigString, 100);
?>

P.S.: данный helper корректно работает с любой кодировкой (iconv рулит, но можно и заменить на multibyte string functions)

Май 15

Не мог сдержаться, чтоб не написать это в блог:

У конкурсі “Україна очима москалів” переміг пан Василь зі Львова, який виклав очима москалів триметрове слово “Україна”.

« Previous Entries