Cotranslate.Net закрыт

Сегодня планово закрыл сайт Cotranslate.Net, о чем писал месяц назад. Сайт просуществовал с 2011-го года, а скрипт перевода в виде модуля для Drupal 6 — и того дольше. За время работы сайта на нем было:

  • зарегистрировано 40 000 пользователей (включая спаммеров);
  • создано 8 000 переводов разных типов;
  • организовано 500 пользовательских групп.

Большая часть всего этого, понятное дело, появилась за последние полтора года.

Как и обещал в объявлении о закрытии, исходники сайта переданы всем заинтересованным лицам. Домен cotranslate.net в ближайшее время будет перенаправлен на одну из поднятых копий. Если кто-то хочет этот домен купить — присылайте предложения в форму обратной связи.

А пока DNS-ы обновляются, можете заходить на эту копию по ссылке cotranslate.ru. Там нет старых пользователей и контента, но можно заново зарегистрироваться и пользоваться сайтом дальше. Как и раньше, только на новом сервере и с новой администрацией, у которой есть желание и возможности поддерживать ресурс, а может быть даже и развивать.

Скачать исходники сайта с небольшой инструкцией по подъему копии можно по ссылке. Обращаю внимание — ответственности за использование предоставленного кода я не несу, консультаций по использованию — не даю. Устанавливайте, изучайте, модифицируйте на свой страх и риск.

Спасибо за внимание и удачи всем на новой инкарнации сайта!

С днем космонавтики!


Все на Яндекс, нажимать на Гагарина!

Quick Telecom SMS

Смастерил тут небольшой модуль, интегрирующий в Drupal 7 отправку SMS через шлюз Quick Telecom. Из коробки есть вывод баланса, форма с настройками (логин-пароль), передача на выбор по HTTP/HTTPS (все разруливается через drupal_http_request), ввод имени отправителя и периода отправки, тестовая форма для проверки.

С SMS Framework пока не интегрировал, может потом. Пользоваться просто: включаем модуль, в админке вводим логин-пароль и шлем смски функцией quicktel_sms_send($phones, $message).

На случай если кому пригодится, делюсь. Брать можно прямо с гитхаба.

Отправка почты в Laravel

Sending emails in web applications has become so essential. Marketing, notifications, newsletters, adverts, etc are some of the reasons why we send emails to our clients. I'd say the majority of websites send automated emails at least via a «Contact us» form.
Let's explore the many possible ways to send emails in a Laravel application.
The Ultimate Guide to Sending Email in Laravel

Как отправить имейл по-простому, как отправить имейл по-сложному, как использовать разные сервисы — всё есть. Отличное руководство.

Шешеля признали невиновным

Международный трибунал по бывшей Югославии (МТБЮ) признал лидера Сербской радикальной партии Воислава Шешеля невиновным по всем пунктам обвинения. Об этом в четверг, 31 марта, сообщает ТАСС.
Помимо преступлений против человечности, Шешелю также инкриминировали нарушение законов и обычаев войны, совершенное в период с 1991 по 1993 год на территории Хорватии, Воеводины (Сербия), Боснии и Герцеговины.
МТБЮ признал Воислава Шешеля невиновным по всем пунктам

Ну надо же, не смогли заморить, как Милошевича. Видимо, чтобы выглядеть «объективными», им хоть кого-нибудь надо было отпустить. А у Караджича здоровье оказалось покрепче.

Cotranslate.Net закрывается

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

Но так или иначе, времени заниматься сайтом уже достаточно давно у меня нет. Да и желания, честно говоря, тоже. И чтобы он висел у меня на сервере, предоставленный сам себе, тонущий под тоннами спама и т.д. я по ряду причин тоже не хочу. В общем, вскоре сайт Cotranslate.Net будет закрыт.

Желающие продолжить поддержку сайта своими силами и средствами могут написать мне в форму обратной связи. Данные для восстановления сайта будет предоставлены (без контента и пользователей).

Как-то так.

Как спасти legacy-код

I have good news for you! Squirrels plant thousands of new trees every year by simply forgetting where they leave their acorns. Also: your project can be saved.
No matter how awful a muddy legacy code mess your boss has bravely volunteered for you to deal with, there is a way out of the mire. There will be twists and turns along the way, and a monster behind every other tree. But, one step at a time, you will get there.
Paying Technical Debt — How To Rescue Legacy Code through Refactoring

Покровы автор может и не срывает, но здорово написано же!

EntityFieldQuery, node access и count

Допустим, есть вот такой код. Мы хотим получить количество нод заданного типа с заданными тегами, но считать только ноды, к которым есть доступ у текущего юзера (см. addTag).

$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node');
$query->entityCondition('bundle', 'my_node_type');
$query->propertyCondition('status', 1);
$query->fieldCondition('field_taxonomy_term', 'tid', array(1, 2, 3));
$query->addTag('node_access');
$query->count();
$result = $query->execute();

Удивительное дело, но если текущий юзер не админ и не пропускает node access, в $result количество доступных материалов не попадет. Вместо этого случится PDOException.
Причем вредит одновременное присутствие фильтра по fieldCondition() и тега node_access. Если убрать либо одно, либо другое — запрос работает.

OctoberCMS, первые впечатления

В прошлом году время от времени работал с фреймворком Laravel. Писал API для одного некоммерческого проекта, перевел на него (с голого PHP) один коммерческий. Понравилось, даже статейку небольшую написал. Однажды, в какой-то из новостных лент по теме, попалось упоминание October CMS. В упоминании говорилось, что у этой CMS под капотом как раз самый настоящий Laravel и есть, версии 5.0. Немедленно захотелось посмотреть, и вот на днях — удалось поставить, поиграться и даже написать пару небольших плагинов. Делюсь впечатлениями.