четверг, 23 июля 2015 г.

Каноничные SEO-грабли

В процессе длительной поддержки проекта рано или поздно приходится встречаться с доработками по SEO. И если вещи типа "тут нам такой тайтл, тут нам кейворды поменять" еще можно исправить костылями (хотя это тоже не самый лучший вариант), то некоторые запросы от СЕОшников стоило бы продумать заранее.
Ниже небольшая подборочка встречаемых запросов.

пятница, 10 июля 2015 г.

Монтирование с помощью sshfs

В своей обычной работе я использую Geany. Можете плеваться, смотреть свысока и т.д., но пока меня в нем всё устраивает. Даже тот факт, что в Geany никак нельзя открыть файл с ftp или ssh. Это легко решается с помощью sshfs. sshfs позволяет подмонтировать сторонний ресурс как файловую систему и открывать с него файлы из Geany. Краткий алгоритм как все это сделать:

воскресенье, 3 мая 2015 г.

Развертывание проекта на Go в Heroku

В каком-то древнем году я зачем-то зарегистрировался на Heroku.
И с тех пор даже не представлял что там происходит и зачем это мне вообще. Но вот недавно в связи с изучением языка Go (golang) пришлось поискать платформы на которых можно развернуть проект на Go. Помимо Google Application Engine, оказалось, что Heroku тоже поддерживает Go.
И развертывание проекта в инфраструктуру Heroku осуществляется довольно быстро и удобно.

За основу поста взят материал книги Building Web Apps with Go, thanks Jeremy Saenz.

Я опускаю подробности по разработке на Go, ибо это достаточно популярно описано в вышеупомянутой книге, остановлюсь лишь на развертывании проекта, ибо это у меня получилось не сразу.

вторник, 24 февраля 2015 г.

Модификация капчи

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

1. CAPTCHA_letters - настройка опредеделяет алфавит символов, которые будут использованы при генерации проверочного кода. Таким образом, можно например сделать вашу капчу на кириллице:
COption::SetOptionString('main', 'CAPTCHA_letters', 'АБВГДЕЖЗИК');
Естественно, шрифт должен быть с поддержкой кириллицы, шрифт битрикса по умолчанию, по-моему, ее не имеет.

2. CAPTCHA_arTTFFiles - настройка определяет шрифты, с помощью которых будет сгенерена картинка капчи. Шрифты ищутся в папке /bitrix/modules/main/fonts/:
COption::SetOptionString('main', 'CAPTCHA_arTTFFiles', 'my_custom_font.ttf');

Ну и чтобы не засорять модуль своими шрифтами можно сделать так:
COption::SetOptionString('main', 'CAPTCHA_arTTFFiles', '../../../templates/my_tpl/fonts/my_custom_font.ttf');
и разместить файл шрифта в шаблоне my_tpl вашего сайта.

суббота, 15 ноября 2014 г.

Расширение почтовых шаблонов

Вообще невозможность сделать это является камнем преткновения в шаблонах почтовых сообщений Битрикс.
В шаблонах нельзя задавать циклы! Циклы в почтовых шаблонах задавать нельзя!
Если, например, в письме рассылать список товаров, то приходится либо захардкодить все html-оформление, либо вынести шаблон товара например в языковой файл.
В любом случае требуется какое-то взаимодействие с кодом.

Однажды я решил понять, как же засунуть в шаблоны циклы. Как оказалось - это возможно и я даже реализовал простейший модуль, в котором сторонний шаблонизатор обрабатывает свой блок разметок и отдает контент обратно в шаблон Битрикс.

Тем кому не терпится скачать - ссылка на github. Краткое README там имеется, но я еще его тут повторю.

пятница, 31 октября 2014 г.

Дополнительные страницы каталога в комплексном компоненте

Однажды на проекте возникла задача следующего характера:
для детальных страниц товара требовались несколько вариантов отображения контента, например, у нас есть страница товара с вкладками - Описание, Характеристики, Отзывы по урлу /catalog/product_id.htm.
Изначально открыта вкладка "Описание" (дефолтная).

Требуется на клик по вкладкам  описание, характеристика, отзывы переходить на страницы с урлами:
/catalog/product_id.htm - дефолтная вкладка
/catalog/product_id/params- открыта вкладка "Характеристики"
/catalog/product_id/reviews - открыта вкладка "Отзывы"

Уточняю, это именно разные страницы (например, со своими SEO-тегами), никакой подгрузки аяксом, HistoryAPI и прочего.

Решение следующее:

среда, 27 августа 2014 г.

Удивления новым ядром пост

Как выяснилось путем экспериментов (на bitrix 14.5.3) новое ядро D7 позволяет добавить в инфоблок элемент, без указания ИД инфоблока:

CModule::IncludeModule('iblock');
$r = \Bitrix\Iblock\ElementTable::add(array(
    'NAME' => 'new_login_100',
    'ACTIVE' => 'Y'
));
var_dump($r->isSuccess()); // true
var_dump($r->getErrorMessages()); // empty array


Результатом операции будет запись в b_iblock_element, у которой поле IBLOCK_ID будет равно 0.
Теперь можно прятать в b_iblock_element результаты неудавшихся экспериментов, и никто их не найдет, муохохохо. #SARCASM