Как я и планировал, я начинаю по-тихоньку публиковать полезные наработки, использованные мною в phpBB Constructor. Сегодня черед, пожалуй, наиболее важной из них — это MODX Library.
MODX Library — это библиотека, обеспечивающая автоматическую обработку инструкций по установке модов в формате MODX. Идейно этот формат является развитием патчей со значительно расширенным набором операций, удобных при установке модов. В настоящее время подавляющее большинство модов для phpBB3 распространяется именно в этом формате. MODX Library практически полностью реализует поддержку последней версии стандарта MODX 1.2.5, отличия от стандарта описаны в README файле.
Замечу, что именно с этой библиотеки началась работа над phpBB Constructor в начале февраля 2010 года. Впрочем, история разработки конструктора — это отдельная и местами поучительная тема, которой я коснусь как-нибудь в другой раз.
Идеологическим предшественником этой библиотеки была другая моя, гораздо более ранняя разработка под названием Lite MOD Parser, занимавшегося теми же задачами, но только для более раннего формата MOD, популярного в эпоху phpBB2. Сейчас эта штука может быть полезна разве что в исторических целях, а тогда планировалось ее использование в претензиозном проекте Web Update, призванном накорню автоматизировать обновление сайтовых движков. И, вероятно, будь у меня тогда больше настырности и опыта, из этого чего-нибудь бы и вышло :-)
Вот и пришло время анонсировать мини-проект, над которым я работал последнее время.
Отправной точкой для мысли послужил тот факт, что в процессе модерирования на phpBB Guru мне довольно часто приходилось писать служебные посты и личные сообщения примерно одинакового содержания. В какой-то момент мне это окончательно надоело и я занялся поиском расширения для браузера, которое позволило бы хранить и быстро вставлять сниппеты с шаблонами этих сообщений. Каково же было мое удивление, когда я не нашел ничего вменяемого.
Следующим витком поиска стал поиск десктопной проги, но я быстро отказался от этой затеи, поскольку на десктопе и нетбуке у меня используются разные среды и не хочется ни терпеть белую ворону на одном из них, ни привыкать к двум разным прогам. Да и опять же, на нетбуке не так уж и много оперативки, чтобы вешать туда еще что-то.
Третий шаг был типичен для любого программиста — написать свою мини-тулзу. Расширение для FireFox мне писать не захотелось, я уже когда-то связывался с этим и мне совершенно не понравилось: муторно, документация разрозненная, неудобно отлаживать и долго тестировать. И тогда я вспомнил про букмарклеты.
Сделать набор букмарклетов, которые будут при активации на нужной станице искать поле по заданному критерию и вставлять туда заготовленный текст.
Для удобства использования я на коленке набросал простенький генератор «для себя». Он принимал id поля и текст, выдавал — ссылку-букмарклет. Потом пришли мысли о том, что не всегда можно найти поле по id и была добавлена поддержка атрибута name, а потом еще и выбор по клику. О генераторе, кстати, будет отдельный пост.
Чем дальше я совершенствовал инструмент, тем больше мне хотелось сделать из него что-то общеполезное, и в итоге я решил сделать из него микро-вебсервис и заодно поупражняться в свистелках и перделках верстке и JavaScript.
Название сервиса было образовано из двух слов — «paste» и «bookmark» (и тут же было переведено моей девушкой на русский как «пастомарка» (-: ).
Вот что в итоге этот сервис умеет:
Кроме того, поскольку я по привычке изначально сделал англоязычный интерфейс, сайт существует на двух языках: русском и английском.
Поскольку в своей работе я занимаюсь сервер-сайд программированием, этот проект стал для меня хорошим шансом разнообразить дела и поупражняться в верстке и клиентских финтифлюшках. Поэтому в итоге получилось, что основу сервиса я написал за два неполных вечера, а потом еще неделю оттачивал дизайн и лепил маленькие, но удобные плюшки. Например, сайт умеет подсказывать пользователю, что есть более удобная ему локализация, основываясь на содержимом заголовка Accept-Language. И таких мелочей получилось довольно много, что доставило мне массу удовольствия в процессе написания и тестирования :-)
Разместил я новый сервис, кстати на vps от eomy.net (и реферралка во имя вселенской жадности). Правда о vps я сказал не просто ради пиара, а чтобы поделиться своей находкой. Недавно я открыл для себя очень интересный веб-сервер cherokee, просто подкупившим меня своею легковесностью и изумительным веб-интерфейсом для его настройки. Уверен, будущее именно за таким софтом - свободным, быстрым и юзабельным.
Пришло время опубликовать первый из проектов, которые я упомянал в позапрошлом посте. Позвольте представить вам мой новый сайт-визитку: Nevkontakte.ME.
Мысль о том, что неплохо было бы сделать небольшой сайт-визитку проскальзывала у меня уже довольно давно, однако делать еще один тупой трехстраничник в духе "Главная, обо мне, контакты" было неинтересно. И тут я вспомнил об одном из старых постов Тормоза, в котором он предлагал концепт Cuby CMS — движка для микросайтов в виде, как это ни странно, куба. Однако у Тормоза дело не пошло дальше концепта, а у меня как раз была нужда в чем-то оригинальном и в добавок желание поупражняться в JavaScript-fu.
Взяв за основу идею Тормоза, я добавил анимацию перехода между сторонами с помощью CSS3 2D Transforms (по началу хотел для большей реалистичности юзать 3D Transforms, однако его пока поддерживают только nightly-билы вебкита), немного плюшек для более прозрачной навигации и удобную AJAX-админку.
Однако, поскольку я при этом юзал достаточно свежие технологии, в конце пришлось озаботиться совместимостью со старыми браузерами, в результате чего был порожден упрошенный режим без анимаций для динозавров. Кроме того, для полноты счастья был сделан и режил для работы без JavaScript вовсе.
Вживую все это вы можете повертеть на Nevkontakte.ME, а админку посмотреть на скриншоте:
Единственное, что я не уверен, стоит ли ее распространять, ибо тогда потеряется главная изюминка — оригинальность, ради которой все и затевалось.
Кончился месяц разъездов и пришло время в ударном темпе выпускать накопившиеся обновления.
Начну с Zebrum Bloglike. Если кто не помнит, это мод cms для сателлитов Zebrum Lite, предназначенный для создания блогов-сателлитов. В релизе 1.1.4.1 я наконец реализовал давно задуманную фитчу - FakeBurner. Как нетрудно догадаться по названию, это имитатор счетчика FeedBurner, призванный создать иллюзию читаемости вашего сателлита :) Выглядит это чудо вот так: . Чуть позже я выложу отдельный скрипт FakeBurner.
Скачать новую версию можно все там же.
Кроме того, Было сделано обновление RegSubmitter 1.3.1. Обновление носило характер багфиксов ошибок, наделанных в предыдущем обновлении, носившем фундаментальный характер.
Пострадавшим от 3fn.ru посвящается.
UPD (22.01.2013): Две новости:
Google Cache Dumper - это инструмент, позволяющий максимально просто вытащить все содержимое кеша Google по заданному домену.
Возможности:
- Ограничение количества обрабатываемых страниц выдачи, либо обработка всех, сколько есть.
- Задание интервала между запросами (в секундах)
- Адресация запросов разным датацентрам
- Поддержка работы через прокси и чередование запросов между произвольным количеством прокси.
Требования:
- Веб-сервер
- PHP5 с поддержкой curl и allow_url_fopen=On
Установка и настройка:
1) Распакуйте архив в папку веб-сервера (не обязательно в корень).
2) В той же папке должна быть подпапка out, доступная веб-серверу на чтение и запись (обычно подходят права доступа 0777).
3) Файлы index.php, dc.txt, proxy.txt должны быть доступны веб-серверу на чтение.
4) В файл proxy.txt поместите список прокси, которые будете использовать при парсинге, по одному прокси на строку, формат ip_адрес:порт.
ВНИМАНИЕ! Если оставить файл пустым, то проски использоваться не будет, но возрастет риск бана запросов со стороны Google.
5) Настройка завершена! Откройте скрипт через браузер и приступайте!
Лицензия: WTFPL.
GitHub (скачать последнюю версию).
Bing Cache Dumper - это инструмент, позволяющий максимально просто вытащить все содержимое кеша поисковика Bing по заданному домену.
Возможности:
- Ограничение количества обрабатываемых страниц выдачи, либо обработка всех, сколько есть.
- Задание интервала между запросами (в секундах)
Требования:
- Веб-сервер
- PHP5 с allow_url_fopen=On
Установка и настройка:
1) Распакуйте архив в папку веб-сервера (не обязательно в корень).
2) В той же папке должна быть подпапка out, доступная веб-серверу на чтение и запись (обычно подходят права доступа 0777).
3) Настройка завершена! Откройте скрипт через браузер и приступайте!
Лицензия: WTFPL.
GitHub (скачать последнюю версию).
PS. Ну и небольшой подарок тем, кто сам умеет кодить и не хочет платить. Я уже публиковал первую версию Google Cache Dumper. В том виде, в каком она там есть она довольно легко попадает в бан, но доработать ее совсем несложно ;)
UPD. Актуальный список датацентров для Google Cache Dumper во вложении.
Последние комментарии
/Гость/ 5 дней 4 часа назад
/Рашида Гарифулина/ 2 недели 4 дня назад
/Alek$/ 2 недели 6 дней назад
/Гость/ 3 недели 18 часов назад
/Шустрый/ 3 недели 2 дня назад
/Alek$/ 4 недели 3 дня назад
/Андрей/ 4 недели 5 дней назад
/SozdaySayt/ 8 недель 6 дней назад
/Alek$/ 12 недель 5 дней назад
/aRT/ 12 недель 6 дней назад