Разработка
jSlider Form API на Drupal.Org
Примерно год назад сделал модуль интеграции плагина jSlider в Form API шестого Друпала, назвал, соответственно, jSlider Form API. Сделал, да и выложил на домовую страницу, чтоб каждый мог воспользоваться.
А сегодня для этого модуля очень хорошие новости: благодаря Евгению Масловскому у jSlider Form API появился дом среди проектов Drupal.org: http://drupal.org/project/jslider_form_api. Именно там теперь будет осуществляться его развитие и поддержка. И порт в Drupal 7, судя по всему, там тоже будет.
И это хорошо.
Видео о нодах, полях и вкладках
В процессе глубокой работы с Drupal 7 задумал заснять несколько видеороликов с небольшими, если можно так выразиться, юзкейсами внутри. Вот первый из них. В нем рассказывается, как в «семерке» распихать поля ноды по симпатичным вкладкам без единой строчки кода.
Использованы модули:
— Fieldgroup;
— Display Suite.
Также рекомендуется к освоению:
— видеокурс по Display Suite (на английском).
Порт модуля user titles
Сегодня закончил порт модуля user titles в Drupal 7. По факту — добавил результат в соответствующий issue на drupal.org.
Порту подвергся основной модуль, без контрибов. Впрочем, контрибы там меньше чем по 1КБ каждый, так что если будет желание — проблем возникнуть не должно. Также не тестировал работу тайтлов-изображений (они мне сейчас просто не нужны), но код также портирован, так что если какие проблемы с картинками будут — пишите, посмотрю.
В остальном же модуль работает, титулы показывает. Выкладываю, естественно, в dev-версии, поскольку кроме меня его еще никто не тестировал. Да и вообще, надеюсь что релиз сделает уже изначальный разработчик модуля, а не я.
В процессе портирования, кстати, посчастливилось поработать с новомодным DB API. API прекрасен, одна строчка SQL-запроса средней сложности превращается в десять строчек нового кода. Правда, более понятного, да.
Файл с модулем добавлен к заметке, качайте, пользуйтесь на здоровье.
Ссылку на основного спонсора порта добавлю сюда позже, когда проект будет открыт.
upd: архив с модулем обновлен. Изменения:
— исправлен небольшой баг в hook_user_view();
— админка модуля перенесена в Configuration→People;
— добавлен порт контриб-модуля ut_userpoints (то есть интеграция с модулем userpoints) за авторством boran.
Про браузеры, файлы, безопасность и JavaScript
В современных браузерах, безусловно, очень много внимания разработчики уделяют безопасности. Настолько много, что иногда ум за разум заходит.
Так, например, есть известный элемент HTML <input type="file" />, предназначенный для открытия пользователем файла у себя в компьютере, предположительно — для последующей его отправки на сервер. Когда пользователь нажимает кнопочку Browse и выбирает в стандартном диалоге операционной системы нужный файл — полный путь к нему немедленно появляется в поле слева от кнопочки. Однако если мы вдруг захотим обратиться к полю input с целью получить этот самый полный путь через JavaScript, система безопасности современного браузера тут же покажет нам современную фигу. И вместо полного пути возвратит только имя файла.
А я вот хочу чтоб в браузере пользователь мог проигрывать локальные видео-файлы. И для выбора проигрываемого файла отлично подходит диалог из элемента input. Но нет — тут, оказывается, дыра в безопасности, дескать, я так по полному пути могу делать всякое нехорошее с файлами и директориями. Правда, при этом я могу создать обычный текстбокс <input type="text" /> и попросить пользователя ввести полный путь к файлу туда. Причем, причин вводить путь к файлу у пользователя будет столько же, сколько выбирать его в диалоге. Разве что это гораздо неудобнее выбора файла в диалоге. А делать с файлом всякое я смогу все равно (кроме, пожалуй, его загрузки на сервер).
В интернетах тут и там встречаются всякие хитрые хаки и читы, помогающие вытащить-таки из файлового диалога полный путь к выбранному файлу. Однако они а) разные для разных браузеров; б) хаки и читы — то есть, быстро закрываются разработчиками браузеров.
Через это вопрос к общественности: знает ли кто какой-нибудь плагинчик jQuery или иное средство для вызова системного диалога «Открыть файл» без использования <input type="file" />, но с возможностью получения полного пути к выбранному файлу? Поделитесь, а.
Также подойдет возможность увязать <input type="file" /> с объектом на странице, чтобы, типа, они сами, без меня, «безопасно» путями обменивались. Но это наверно из разряда фантастики.
Logo Changer
Сделал для логотипов Cotranslate.Net небольшой модуль Drupal 6, обозвал logo_changer. Делюсь с общественностью.
Модуль умеет подгружать в отдельную директорию несколько логотипов и менять их в зависимости от времени суток. Для каждого логотипа в админке задается время его работы «от и до» и ставится галочка «активный» (неактивные логотипы не используются). После чего Друпал смотрит на системное время с учетом часового пояса пользователя — и выставляет соответствующий этому времени логотип.
Если кому надо — качайте, пользуйтесь.
Также в планах вставить в этот модуль «пасхальные яйца» — логотипы, появляющиеся изредка, с небольшой вероятностью. И, возможно, логотипы для отдельных страниц.
Cotranslate.Net
Пару лет назад я начал переводить сериал «Полет Конкордов». Когда перевел пару-тройку серий, пришел к выводу, что таскать с одного компьютера на другой файлы с субтитрами мне не нравится — хотелось переводить серии из разных мест без всякой синхронизации. О существовании как минимум двух систем коллективного перевода мне было известно уже тогда. Но ничего коллективного не хотелось, хотелось наоборот — переводить в одно лицо. Но чтоб в Интернете.
Далее — анонс сайта Cotranslate.Net.
О синхронизации данных в Linux
Когда дома есть в наличии большой компьютер и маленький, может возникнуть необходимость держать некоторые данные и там, и там. Причем, держать синхронизированно. Лично я, например, регулярно пользуюсь мега-программой для заметок Basket, и конечно мне хотелось бы, чтобы все заметки были доступны и на нотбуке, и на десктопе.
В Линуксе для решения задачи синхронизации есть все необходимое. В принципе, есть и готовые программы для синхронизации, но я считаю, что для моего случая достаточно rsync, md5sum и небольшого скрипта на bash. Ну и сетевого раздела NFS — чтобы через него синхронизироваться. Далее о том, как все делается.
Снова про звук, Linux, Qt и на этот раз — Phonon
Вообще, я ОС Линукс люблю и по возможности работаю именно в нем (но пропагандой пингвинов обычно не занимаюсь). И KDE люблю тоже. Но есть во всей этой кухне одна особенность, которая бесила меня всегда до мозга костей.
Вот, например, в ОС Windows можно было одновременно слушать музыку и, скажем, играть в игры — то есть, воспроизводить звук из разных источников параллельно — очень-очень давно. Десять лет точно. И дело не в том, что в Луниксе — нельзя. Можно, конечно. Но как-то так сложилось, что звуковая система в нем лицом повернута к самому Луниксу. А к пользователю — тем, что с оборотной стороны лица находится. Со всеми этими фронтэндами, бэкэндами, промежуточными демонами, альсами, оссами, пульсаудио, консольными плеерами и звуковыми библиотеками, разработчики пускаются во все все тяжкие, но годы проходят, а свести все это к приличному виду, чтоб хотя бы из коробки работало без конфликтов, — не получается.
Обновил Typofilter.js
Сегодня обновил разработанный недавно типографический скрипт Typofilter.js. Список изменений:
- добавлена интеграция с CKEditor;
- добавлена интеграция с TinyMCE;
- исправлен баг с заменой дефиса на короткое тире в числовых диапазонах;
- исправлен баг с многострочными безопасными блоками;
- регулярные выражения для поиска безопасных блоков — теперь не такие жадные, как раньше;
- улучшены преобразования стрелок (-> в →).
Можно скачивать и пользоваться.
jSlider Form API
Дорогие коллеги!
Модуль jSlider Form API переехал на Drupal.org: http://drupal.org/project/jslider_form_api.
Дальнейшая поддержка и разработка модуля будет осуществляться там.
Сделал еще один небольшой модуль для Drupal 6.x, называется jSlider Form API. В модуле создается новый элемент для использования при создании форм Друпала. Элемент называется transfer_slider и представляет собой виджет, разделяющий заданное число между двумя текстовыми полями с помощью слайдера jQuery UI Slider.
Кроме описания самого элемента, для наглядности в модуль включена тестовая страница по адресу admin/settings/jslider_form_api_test, выводящая форму с двумя слайдерами:
Далее — подробности и особенности работы модуля.
- ‹ следующие заметки
- архив за год
- предыдущие заметки ›
