drupal

Дружественный к мобильникам Drupal 7

Блог на Drupal - да и вообще любой standalone-блог - требует некоторых усилий по настройке. Особенно сложно найти более-менее пристойно выглядящую тему оформления. Давние читатели, возможно, помнят штук пять разных "лиц" сайта, которые я менял одно на другое в попытках улучшить визуальное восприятие своего блога. Несколько месяцев назад я остановился на теме Zero Point - она была практически идеальной, и мне казалось, что вопрос с оформлением закрыт надолго.

Но в мой уютный мир, как обычно, вмешался Гугл. Это случается уже не первый раз: некоторое время назад своими нововведениями он разломал с трудом выстроенную схему входа по OpenID, которую в конечном итоге так и пришлось похоронить, заменив ее на более современную OAuth-идентификацию через соцсети. В этот же раз он заявил, что сайты, не оптмизированные под мобильные устройства, с апреля начнут получать более низкий рейтинг в поисковой выдаче по сравнению с "дружественными" к мобильным устройствам.

Поскольку львиная доля визитов на мой сайт приходится на поисковые запросы, я забеспокоился, насколько это нововведение отразится на мне. Сам-то я неоднократно заходил к себе с мобильника и не испытывал каких-либо сложностей, но оказалось, что Гугл считает иначе. Вот, как выглядел тест моего сайта на "дружественность" к мобильным устройствам:

Сайт Myx.Ostankin - not mobile-friendly

Поизучав прилагающиеся к результатам теста рекомендации, я узнал, что в случае с Drupal проблему можно решить установкой более подходящей темы оформления - из тех, что называются "adaptive" или "responsive". Zero Point к подобным темам не относится - значит, придется опять искать новую. Так что, пользуясь тем, что я недавно сделал себе инструмент для создания временной копии сайта, я начал неторопливо экспериментировать с разными темами оформления, каковых в Интернете валяется не один десяток.

Как ни странно, я сравнительно быстро нашел практически полностью подходящую тему Alpha Responsive Theme, установил ее, немножко подкрутил CSS-свойства - и вуаля! Теперь я тоже дружественный к мобильникам! :)

Сайт Myx.Ostankin - теперь оптимизированный под мобильники

P.S. А полезно все-таки излагать свои мысли в письменном виде. Пока писал пост, полез искать ссылку на тему Zero Point, и обнаружил, что там тоже появилась mobile-friendly версия. Но когда я с ней поэкспериментировал, мне не понравилось, как она растягивает страницы на больших экранах, перемешивая текст с картинками - старая версия так не делала, да и Alpha тоже таких вольностей себе не позволяет. Так что пусть остается Alpha.

Легкое обновление ядра Drupal 7

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

Под катом несколько наработок, которые могут оказаться полезными другим друпаловодам-любителям вроде меня.

Переезд на Drupal 7

Tags: 

Воспользовался новогодними праздниками и переехал с морально устаревающей шестой версии Drupal на более современную седьмую. Поскольку, как известно, два переезда равны одному пожару, часть функциональности не дожила, а часть стала работать немного по-другому, но я постарался сделать все, чтобы это было не очень заметно. По дороге собрал огромное множество граблей и косяков, узнал много нового и интересного про Drupal, PHP, CSS, OAuth, а также много других страшных слов :)

Ключевой итог - полностью переделан механизм идентификации через соцсеть (собственно, ради этого весь переезд и затевался). Поддерживаются входы через Mail.Ru, Google, Facebook, Яндекс, и, вроде бы, в этот раз все сделано по-человечески. OpenID тоже остался, но работает он так же, как и раньше (то есть криво).

Большая просьба ко всем, кто это читает: потыкайтесь по сайту и посмотрите, все ли нормально. У меня за несколько дней глаз уже замылился, наверняка что-то пропустил. Заранее спасибо!

Спам с пословицами

Как и многих других владельцев блогов, меня регулярно донимают спамеры, гадящие в комментариях. Большинство пытается маскироваться под читателей и пишут что-то вроде "Замечательно изложено, пишите больше подобных статей!", а где-нибудь внутри расположена скрытая ссылка на рекламируемый ресурс. Наличие подобных комментариев не только загаживает комментарии, но и отрицательно сказывается на рейтинге блога - поисковики отслеживают источники поискового спама и принимают соответствующие меры.

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

Установка капчи на регистрацию нового пользователя несколько улучшила положение, но ненамного. Перебрав несколько антиспамовых модулей, я остановился на spambot, который при регистрации нового пользователя сверяется с сервисом Stop Forum Spam, и при выявлении спамера сразу его блокирует. Кроме того, упростилась процедура очистки результатов жизнедеятельности спамеров: одним движением удаляется и пользователь, и все его комментарии, а заодно и отсылается уведомление на тот же Stop Forum Spam.

После того, как я установил себе модуль spambot, спамеры практически перестали меня беспокоить. Но один особо настойчивый продолжает долбиться, обходя все блоки. Мне уже жутко интересно, что это за явление, поэтому я и пишу про него в надежде, что кто-нибудь когда-нибудь мне расскажет про него поподробнее.

Итак, некто оставляет комментарии с пословицей, в которую "запрятано" от одной до трех скрытых ссылок. Пословицы самые разные, от крылатых до таких, которые я видел впервые - база пословиц у него огромна, он практически не повторяется:

"Хочешь жить - умей вертеться!"

"И среди дураков находится умный: тот, кто молчит. "

"Кандалы остаются кандалами, даже если они позолочены."

"Когда нет хлеба, едят и желуди."

Комментарии с пословицами и скрытыми ссылкамиЛогично предположив, что спамер работает по площадям, я полез в Гугл и нашел множество других жертв этого спамера, у которых в комментариях висели такие же пословицы со ссылками. Ими оказались блоги, форумы и прочие платформы на базе Drupal - причем преимущественно русскоязычные.

Собственно, встал вопрос, как это фильтровать. Вводить премодерацию любого рода я не хочу принципиально: любой пользователь считается благонамеренным, пока он не доказал обратного. Spambot может распознавать спамеров по email-адресу и по IP-адресу, но "знаток пословиц" заводит ящик на mail.ru, использует его до тех пор, пока он не наберет достаточно негативной статистики для блокировки, после чего выбрасывает и заводит новый. Аналогично он поступает и с IP-адресами: берет какого-нибудь левого провайдера с динамическим IP (преимущественно из стран бывшего СССР), поочередно "отрабатывает" адреса из диапазона, потом меняет провайдера. Иногда вместе со страной. Не знаю, как технически это делается, но, подозреваю, что это требует изрядного количества ручной работы

При этом почтовые адреса выглядят вполне пристойно, например: lera-bеsperstova@mail.ru, еmelyanchikova-katerina@mail.ru, dоnin_kondrat@mail.ru, nikоlaj_zyatev@mail.ru и т.п.

Единственная имеющаяся на данный момент зацепка - это имена, под которыми пользователь регистрируется. Они генерируются случайным образом и состоят из набора цифр, букв, потом опять цифр: 162sentitarsarh1574, 975liodiabige291, 875woostiysanpio1513 и т.п. Даже располагая примитивным штатным фильтром Друпала, можно создать правило "блокировать пользователя, чье имя начинается на цифру и длиннее десяти знаков" - все подобные имена в этот шаблон укладываются, при этом не страдает ни один легитимный пользователь.

Но это будет работать только до тех пор, пока наш "знаток пословиц" не изменит механизм генерации имен. Так что следующий ход за ним :)

Снова о беспарольном входе

Tags: 

Наконец-то собрался, нашел поставил модуль, который делает беспарольный вход "одним кликом" через аккаунты на ЖЖ, гугле, яндексе и прочих сервисах. То, что у меня стояло раньше, я написал сам на коленке, а довести до ума у меня все руки не доходили. И вот, оказалось, что уже года два как существует модуль OpenID Selector, который позволяет входить без пароля владельцам аккаунтов на следующих сервисах:
- Яндекс
- Rambler
- Google
- Yahoo
- Livejournal
- Flickr
- Wordpress
- и еще ряде других

Особняком тут стоят Mail.ru и Facebook. В изначальную поставку оно не входит, но можно подключить и их тоже в виде отдельного расширения, причем к OpenID это уже не имеет никакого отношения - там работает какой-то другой принцип, через специальные ключи, которые нужно получить от самих Mail.ru и Facebook.

В общем, вход через Mail.ru я подключил, но у пользователей, раньше заходивших ко мне через Mail.ru, наверняка возникнут сложности. Новых вроде бы принимает без проблем.

Попутно сделал FAQ по преодолению возможных сложностей и вынес его в верхнее меню.

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

UPDATE: За самоуправство модуль Mail.ru отключен до выяснения. Старый способ входа через Mail.ru по-прежнему остается, но только через кнопочку под постами/комментариями, в левом верхнем углу экрана соответствующей кнопочки нет.

HTML-скрипт для автоматической транспозиции аккордов

Пока я занимался подбором и публикацией аккордов к песням из "Последнего испытания", меня смутно терзала мысль сделать так, чтобы можно было прямо на страничке взять и перейти в другую тональность. В итоге мысль вылилась в некий скрипт на jquery, который я представляю уважаемой общественности.

Идея проста. В исходнике аккорды записываются прямо в тексте песни:

Белый сн{Am}ег, серый лед
На растр{C}ескавшейся земле

На выходе получаются красиво оформленные надстрочные аккорды:

        Am
Белый снег, серый лед
        C
На растрескавшейся земле

Кроме всего прочего, аккорды можно тут же перевести в произвольную тональность. Под катом можно посмотреть, как это все работает. Пример использования можно также посмотреть на страничке, куда я выкладываю подобранные аккорды из "Последнего испытания".

P.S. Если кто из коллег по цеху это читает - потестируйте, пожалуйста! :)

Возвращение в ЖЖ на новом витке

Хорошая (надеюсь!) новость для моих старых и новых ЖЖ-френдов: я вернулся :) Вкратце: меня снова можно читать во френдленте, поскольку все, что я пишу, ретранслируется через аккаунт myx_ostankin. Ну и, разумеется, можно комментировать, куда ж без этого. Ниже расписаны подробности, как я дошел до жизни такой :)