Category Archives: Programming

Новое в PHP 5.4 — трейты (traits)

Вкратце: трейт (аналог mixin в Ruby) — возможность в классе использовать функционал нескольких классов в обход традиционного наследования (по-моему, костыль, чтобы не реализовывать множественное наследование). Всё сводится к новой инструкции use внутри класса, при этом класс, функциональность которого нужно подмешивать. объявляется инструкцией trait.

Подробнее: New to PHP 5.4: Traits

Паттерны проектирования на PHP

http://css.dzone.com/books/practical-php-patterns

Использование Twitter-API в PHP

Есть такая библиотека — twitter-async (лицензия — свободное распространение и использование). Из неё нужно включить в проект файлы EpiCurl EpiOAuth EpiSequence EpiTwitter Далее на twitter.com нужно завести приложение. После успешной регистрации Twitter выдаст полезные данные для oAuth-авторизации, нужны из них два: Consumer key и Consumer secret — это авторизационные данные приложения, их нужно сохранить где-нибудь, …

Read more

Локализация javascript в django

Продолжение записи Интернационализация и локализация django. Для перевода яваскрипта нужно В urls.py добавить урл для подгрузки функций интернационализации

словарь packages должен содержать один из пакетов, указанных в INSTALLED_APPS. Добавить в шаблон подгрузку это скрипта

В нужных местах воспользоваться функциями gettext, ngettext или interpolate Создаём файл с переводами для js командой

Добавляем перевод …

Read more

Интернационализация и локализация django

На примере русского языка.

Factory-метод модели Django

Никак не мог придумать, как озаглавить статью). Просто есть две вещи, которые хотел упомянуть. Создаём метод класса, возвращающий модели класса, который может вернуть и только указанные поля всех удовлетворяющих условиям моделей.

Здесь нужно выделить два важных момента:

Здесь создаётся фильтр моделей, созданных конкретным пользователем или не относящимся ни к какому пользователю. Подробнее о …

Read more

jQuery — обработка событий с использованием Namespaced Events

Часто события навешиваются на элементы так:

А когда нужно снять обработчик события с элемента, то делается это так:

При этом слетят все обработчики события click с элемента. Можно снимать только конкретный обработчик, но это не очень удобно. Гораздо удобнее группировать обработчики в неймспэйсы по функциональности, а потом снимать обработчики всего неймспэйса:

При …

Read more

Передача параметров с сервера к jQuery. Продвинутый способ.

Старый способ передачи параметров с сервер-сайда на клиент-сайд для jQuery обычно выглядел так:

Потом в скрипте можно было обращаться к свойствам DOM-элемента

Есть более интересный способ, использующий jQuery data:

В скрипте можно обратиться к этим свойствам так:

Сброс очереди анимации на элементе в jquery

Если нужно срочно прекратить анимацию (к примеру, как результат выполнения ajax-запроса), а она всё продолжается, то нужно сделать так:

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

Вложенные формсеты в Django

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

Read more