Импорт из CSV в OctoberCMS

В OctoberCMS из коробки есть возможность импортировать (и экспортировать) модели из csv-файлов. Как подключить импорт-экспорт к своим моделям — можно прочитать в небольшом мануале. А я пока попробовал импортировать посты прямо с домовой страницы, благо в плагине Blog импорт-экспорт уже подключен.

Выглядит это примерно вот так:

Загружаем csv-файл, устанавливаем соответствие между столбцами файла (слева) и полями модели (справа) и нажимаем «Импорт». И посты импортируются.

В процессе выгрузки из Drupal 6 (с помощью Views data export) и загрузки в October обнаружил несколько небольших проблем, которые нужно было решить перед импортом.

Новый русский призрак для Европы

Да, по факту Марсель (и без того, к слову, имеющий репутацию одного из самых беспокойных городов Франции) пару дней терроризировали не русские фанаты, а именно британские. Наши-то на самом деле накануне матча как раз выступили, по сути, в роли «добровольной дружины» и вместо тамошней полиции этот «праздник жизни» оперативно пресекли. За что, кстати, и получили одновременно с санкциями УЕФА слова признательности от марсельского прокурора.

Однако формально решение об «антироссийских санкциях» обоснованное. Ведь футбольные власти фиксируют нарушения дисциплины только в пределах стадиона во время матчей. А там англичан пинками гоняли действительно наши – вступившись за Путина и Шарапову, про которых англичане скандировали нехорошие слова. Но, с точки зрения УЕФА, британцев наказывать не за что: согласно «фейр-плей», обижать нельзя только темнокожих и гомосексуалистов, а про Путина и Шарапову, да и вообще про русских в правилах ничего не сказано.

Так что об абстрактной справедливости в условиях европейской толерантности рассуждать неуместно – дело житейское и привычное.
Новый русский призрак для Европы – призрак футбольного фанатизма

Примеры из текстов в словаре Lingvolive

Обычно, если какое-то слово или выражение недостаточно понятно, стараюсь пользоваться английскими толковыми словарями. Ну или просто вбиваю в Гугл «define something». Такой подход считаю наиболее правильным и полезным. Но иногда для быстроты, когда всё и так более-менее понятно, захожу и в англо-русские словари. В основном, посмотреть синонимы и примеры использования какого-нибудь слова.

Раньше заходил в словари Яндекса, но они, как известно, закончились и теперь хожу по их рекомендации — в Lingvolive. Там тоже есть примеры из текстов, и они периодически радуют вот таким:

То есть, три примера, которые по идее должны иллюстрировать перевод со словом proverbial, не иллюстрируют его вообще никак. Особенно радует третий пример из Достоевского, где английская и русская версия, скажем так, чуть-чуть про разное. Выглядит, как будто это какой-то робот надергивает примеры просто по факту наличия искомого слова в английской версии. Только непонятно, если это робот, как он тогда выбранный отрывок с текстом на другом языке сопоставляет.

Справедливости ради, в четырех примерах (из одиннадцати) на этой странице слово proverbial все же переведено.

Куба

В январе удалось понаехать в небольшой отпуск на Кубу. Давно хотел съездить, посмотреть на Остров Свободы, но все как-то не складывалось. А тут внезапно сложилось — и время нашлось, и даже предложение от турагентства из тех, от которых не отказываются. В общем, собрались и поехали.

Обычно в отпуск с собой беру боевой нотбук — попробовать что-нибудь новое, доделать то что не успел, ну и просто на всякий случай. Но благодаря моим ловким и умелым действиям нотбук как раз перед самым отъездом умер. И в этот раз отпуск получился что надо, вообще без работы.

Поехали мы в город Варадеро, расположенный на полуострове Икакос. У островов бывают полуострова, оказывается. Полуостров этот — длинный и узкий, впивается прямо в Атлантический океан. Я-то думал, что Куба — это Карибское море и всё такое. Но оказалось, что пляж Варадеро расположен на севере острова, у самого настоящего океана. Так что, дорогие друзья, я наконец-то сумел помыть сапожыщи в Атлантике!

XDebug, PHPStorm и Docker-контейнер

О настройке xdebug в PHPStorm уже написали три тыщи человек и еще xandeadx. А я только добавлю на память то, чего не хватает для проброса отладчика в IDE прямо из действующего контейнера docker.
Предполагается что в конфиге (например /etc/php5/mods-available/xdebug.ini) уже есть что-то вроде

zend_extension=/usr/lib/php5/20100525/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

Тогда пробросить отладчик от действующему контейнера к IDE очень просто с помощью ssh-туннеля. Включаем внутри контейнера ssh, а с хоста (то есть не из контейнера) создаем туннель:

ssh -R 9000:localhost:9000 username@172.17.0.2
(здесь предполагается, что IP контейнера — 172.17.0.2)

Как только туннель будет налажен — можно начинать слушать PHP Debug connections в PHPStorm-е и запускать отладчик в браузере. Все должно подхватиться.

OctoberCMS и украшения кода

В поставку OctoberCMS уже входят скрипты Prettify, но по умолчанию они применяются только в бэкенде. Впрочем, подключить их к постам фронт-энда не очень трудно.

Сначала нужно добавить в разметку соответствующие скрипты и стили, например, вкорячив их в scripts и styles в нужном лейауте:

{% put scripts %}
  <script type="text/javascript" src="/modules/system/assets/vendor/prettify/run_prettify.js"></script>
{% endput %}
{% put styles %}
  <link href="/modules/system/assets/vendor/prettify/theme-desert.css" rel="stylesheet" />
{% endput %}

И после этого можно просто добавить в контент, генерируемый маркдауном, нужные классы в html, в котором есть форматируемые коды. Например через стандартные фильтры вывода:

<div class="content">
  {{ post.content_html|replace({'<pre>': '<pre class = "prettyprint">','‹code›':'','‹/code›':''})|raw }}
</div>

А если html генерится не стандартным маркдауном, а как-то еще, то можно сразу в pre добавить нужный класс, и фильтр не понадобится.

Про шерлоков

Каждый раз, как смотрю какую-нибудь «современную» экранизацию, типа Sherlock или Elementary, возникает стойкое ощущение, что следующий персонаж на экране обязательно должен сказать что-то вроде:

 — Вас зовут Холмс и Ватсон? Офигеть, прямо как в книжке!

Даже не знаю, как избавиться.

Adobe Assets

Когда нет под рукой фотошопа, Gimp-а не хватает (тени плохо отображаются), а верстать надо — есть неплохой инструмент, Adobe Assets. Он и картинки из слоев нарезает, и CSS для текста, цвета, теней и скругленных уголков генерирует. Сам пользуюсь давно и с точки зрения «посмотреть как верстать» этот браузерный инструмент легко заменяет фотошоп.

Но блин, как же раздражает, когда в двух соседних вкладках открыты assets и верстаемый сайт, и ты нажимаешь «Обновить» не в той вкладке.

Про Ельцин-центр

Свободы, каковых оформители зала насчитали ровно пять, представляют собой столбы с экранами, на которых разные деятели непрерывно говорят о той свободе, под которой висит экран. Господин Ельцин принёс закабалённому россиянину следующие свободы: предпринимательства (крайне необходимая для большинства населения), передвижения (уже не очень актуальная после недавних турецко-египетских скандалов), собраний и объединений (про которую стараются не упоминать после событий на Болотной), мысли и слова (про которую стыдливо умалчивают вот уже лет десять; мыслить, в принципе, не запрещают, но только нечасто и молча) и совести (сплагиаченная у коммунистических тиранов). Недоумение вызвало малое количество представленных свобод, гарантированных конституцией: то ли именно перечисленные свободы являются самыми важными, то ли зал маловат, то ли просто денег не хватило на остальные.
Экскурсия по Ельцин-центру

Hamster

Для работы и всяких коварных целей регулярно пользуюсь таймтрекером. Раньше использовал стандартный ktimetracker и хватало. Однако внезапно выяснилось, что в последнем KDE из последней kubuntu его почему-то нет.

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