/var/log/life.log

Блог программиста из солнечной Бурятии

Встреча турникменов

Вернулся с первой моей встречи людей увлекающихся турниками. Ну что я могу сказать? Есть к чему стремиться. Это очень мотивирует, когда прямо перед тобой люди делают такие вещи, которые видел только в интренете. Читать полностью »

произвольный тип параметров компонента в bitrix

Лирическое отступление.

Не смотря на всю мою заочную нелюбовь к bitrix пришлось разрабатывать и на нём. Теперь эта нелюбовь очная. Документация плохая, комьюнити относительно небольшое, странноватая модель создания страниц, код в котором довольно таки сложно разобраться,сайтом управлять должен специально обученный человек, самому в нём разобраться крайне сложно, могу и дальше продолжить список но надоело. Пост как раз про большинство этих недостатков.
Читать полностью »

Картинки в результатах поиска в joomla

Да и не только изображения, но и любой html код. Дело в том, что joomla перед показом сниппета, заменяет неготорые теги на пробелы, и затем выполняет strip_tags. В joomla 1.5 с этим было сложнее, приходилось обходиться хаком, добавляя в strip_tags список допустимых тегов. В joomla 1.6 плагины типа content теперь вызываются не только для материалов, но так же могут вызываться для произвольных текстов.

1
$text       = JHtml::_('content.prepare', $text);

Для поискового сниппета также вызываются плагины контента, самое главное после очистки от тегов. Что и даёт возможность добавить нужные теги для вывода в сниппет. Мне было необходимо добавить <br>. В поисковом плагине вместо перевода строки я выбрал комбинацию \x01\x01\x01, чтобы не было случайных срабатываний в других плагинах. А в контентном плагине просто заменю эту последовательность на <br>

пример

В поисковом плагине в методе

1
function onContentSearch($text, $phrase='', $ordering='', $areas=null)

при формировании массива результатов

1
2
3
4
5
6
foreach($rows AS $key => $value) {
    if (searchHelper::checkNoHTML($value, $searchText, array('url', 'text', 'title'))) {
        $value->text = $value->text."\x01\x01\x01";
        $return[] = $value;
    }
}

В конткнтном плагине

1
2
3
4
5
6
7
8
9
    public function onContentPrepare($context, &$row, &$params, $page = 0)
    {
        $canProceed = $context == 'text';
        if (!$canProceed) {
            return;
        }
        $row->text = str_replace("\x01\x01\x01",'<br />',$row->text);
        return true;
    }

модуль ems доставки для wp-e-commerce

Скрипт ems доставки для wp-e-commerce
настройки
покупка
Место доставки вычисляется на основе индекса. Выбор региона на скриншоте от другого метода доставки. Если сумма заказ достаточна для страховки в ems, то на выбор даётся я варианта доставки ems, со страховкой и без. Убирает возможность изменить индекс при вводе адреса доставки.

Контакты

для rbkmoney

Rbkmoney оказался для меня на 2-ом месте по неудобности после банковских карт, но с ними всё ясно там “так исторически сложилось”. Rbkmoney кажется неудобным после знакомства с другими реализациями. Не хватает подписи формы запроса платежа, без неё как-то не комфортно. Отсутствует правильная подпись при уведомлении о платеже, которая бы давала возможность проверить не только целостность данных, но и их достоверность, а так же избавила бы от необходимости передавать секретный ключ в запросе.И в итоге приходится проверять всё самому и дополнительно проверять ip, с которого пришёл запрос. Дополнительные поля никак не верифицируются. Кодирование поля serviceName в base64 решило бы проблемы с кодировками.
по документации:
Не ясно, что произойдёт и как следует поступать в случае если сумма к оплате в форме была подделана.
Отсутствует описание протокола второй версии, может там уже всё красиво, но я не знаю об этом.
На данный момент наиболее удобным считаю api w1.