.
16 сентября 2016

Uncaught Error: Call to undefined function imagettftext () или подключение GD lib в PHP 7.0

После перехода на PHP7 в контактах перестала отображаться капча — сразу то и не увидел, спасибо Я.Вебмастеру который указал на ошибки (туда тоже надо время от времени заходить — как оказалось весьма полезно!)
Капчу генерирует на сервере скрипт captcha.php

http://novosibirsk.intim2y.ru/captcha.php?sid=a00725cf67f4e4de734c45e9d592d039

Который при включении отображения ошибок, мне ругнулся Uncaught Error: Call to undefined function imagettftext ()

Собственно, гугл сказал что проблема в библиотеке GD
Зашел под phpbrew
phpbrew ext install gd не принесло успеха
Читать полностью »

рубрики: Программирование | Комментарии (0)

15 апреля 2016

Свои переменные в почтовых шаблонах Битрикса

Уже 3й пост за сегодня :) Долго не писал — был занят над проектом, да и в офлайне дела какие то всё появлялись
сейчас чуток освободился — и так сказать «всё что накопилось» ...

По сабжу довольно много информации в сети, даже не один внешний модуль лежит в маркете, но я всё же хочу поделиться своим опытом в данном вопросе т.к. мне показался самым простым и эффективным! а к чужим внешним модулям я вообще с опаской отношусь — мало ли чего там ...

Итак — правим init.php
Публикую чистый код, т.к. всё предельно понято

AddEventHandler('main', 'OnBeforeEventSend', Array('myClass', 'OnBeforeEventSendHander'));
class myClass {
function OnBeforeEventSendHander(&$arFields, &$arTemplate) {
//получим сообщение
$mess = $arTemplate["MESSAGE"];
if(strpos($mess,'#MY_VARIABLE')) {
$arFields['MY_VARIABLE'] = "значение своей переменной, собственно при доступном массиве arFields - можно вытащить, что угодно";
}
}
}

рубрики: Bitrix, Полезности, Программирование | Комментарии (0)

19 января 2016

The SELECT would examine more than MAX_JOIN_SIZE rows — пример оптимизации SQL запроса

Вчера обратился ко мне друг с проблемой — при выполнении запроса возникала ошибка
#1104 - The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
Пример устранения проблемы в оптимизации запроса — пример очень простой и наглядный, поэтому опубликую весь процесс от а до я.
Запрос следующий
SELECT order_item_id, order_id, order_item_sku, order_item_name, product_quantity, jos_vm_product.product_id, jos_vm_product.product_length, jos_vm_product_mf_xref.manufacturer_id
FROM jos_vm_order_item, jos_vm_product, jos_vm_product_mf_xref
WHERE order_status = 'C' AND product_sku = order_item_sku AND jos_vm_product.product_id=jos_vm_product_mf_xref.product_id AND product_in_stock < 5

Что-то связанное с Joomla Virtuemart (на этом движке у него магазин) — в смысл запроса сильно вникать не стал...
Итак, нам рекомендуют либо увеличить MAX_JOIN_SIZE либо использовать перед выполнением запроса SET SQL_BIG_SELECTS=1
Собственно, так и поступим SET SQL_BIG_SELECTS=1 и запрос.
УРА, запрос выполнился!
Время выполнения (118 всего, Запрос занял 0.3630 сек.)
А теперь подумаем — что же не понравилось SQL движку в данном запросе, а не понравилось в запросе слишком большое количество обрабатываемых присоединяемых строк.
Для анализа запроса — перед ним добавим EXPLAIN и посмотрим результат:

1
Для обработки запроса движек прошел ВСЕ строки таблицы jos_vm_order_item, а это 146 тыс. строк! не использовав ни одного индекса!
Условие по данной таблицы по полю order_status = 'C' соответственно, делаем по нему индекс
ALTER TABLE `jos_vm_order_item` ADD INDEX ( `order_status` ) ;
смотрим анализ запроса
2
вместо обработки 146 тыс.строк обрабатывается 117! и повторяем запрос уже без SET SQL_BIG_SELECTS=1
УРА! работает!
Причём скорость выполнения (118 всего, Запрос занял 0.0019 сек.) сильно порадовала — ускорение почти в 200 раз!
Всё! :)

P.S. Рекомендую изучить более профессиональную статью по оптимизации запросов с использованием EXPLAIN http://habrahabr.ru/post/211022/

рубрики: Полезности, Программирование | Комментарии (0)

27 ноября 2015

Выделение области изображения и передача параметров в Битрикс

Всем привет!

Закончил сегодня довольно интересный (для меня) проектик, который делал для товарища.
Потыкать можно тут

В 2х словах о ТЗ:
тематика «продажа фотообоев» — расширение стандартного функционала до возможности выбрать из картинки произвольную область, с обсчётом стоимости работы
вся информация должна передаваться в корзину и быть доступна в оформленном заказе

фронтенд реализовал на Jquery плагине ImgAreaSelect
к Битриксу привязал написанием своего компонента детального просмотра и передачей в корзину методом CSaleBasket::Add
(ни в коем случае не пробовать Add2BasketByProductID — пару дней убил на него впустую)

рубрики: Bitrix, Javascript - JQuery, Программирование, Сайтостроение | Комментарии (0)

10 сентября 2015

Просто находка webdesign-master.ru

Получив ТЗ на вёрстку PSD макета в кроссбраузерный адаптивный шаблон, и осознав свою отсталость в этом вопросе (верстал довольно давно, вручную, причём сугубо «дедовскими» методами в FAR-e с подсветкой синтаксиса — вот такой я «динозавр») решил почитать о современных подходах в данном вопросе...

Собственно, томить не буду — Видео BOOTSTRAP: Как создаются современные адаптивные сайты

зацепило сильно! отличное изложение материала, автор супер! рекомендую!

ну и как следствие — настройка «инструментов рабочего пространства» для удобства работы с фронтендом — Видео Настройка Sublime Text 3 для веб-разработки: LiveReload, плагины, фишки

Оба ролика подкреплены доходчивым описанием и рабочими ссылками!
В общем я под впечатлением! Подписался на рассылку, будет время — изучу весь старый материал!

Чего у меня получится с моим проектом — покажу по окончании вёрстки.

рубрики: Вёрстка, Полезности, Программирование, Сайтостроение | Комментарии (0)

7 июля 2015

Ресайзинг изображений на PHP img_resize

В продолжение предыдущего поста по оптимизации изображений ...
Соответственно, если в коде имеем конструкцию img scr с указанием width — тут есть смысл проверить соответствие width и реального размера картинки, если реальный больше — нужно уменьшить и использовать уменьшенное!
Погуглив, сначала нашел такую библиотеку но прозрачный png она меняла на чёрный, а вот эта функция отработала корректно!

Результат можно глянуть, например на препарате Сиалис онлайн аптеки men-aptekar.ru
При переключении по тумбам раньше Furefox почему то косячил :( — преобразованная браузером картинка отображалась безобразно

теперь ОК

ну и не забываем — чем меньше изображения, тем быстрее откроется страничка!

ОТБОЙ!
функция сохраняет на самом деле в jpg и что интересно — уменьшенная сохранённая jpg получается БОЛЬШЕ чем исходная оптимизированная png!
было png — нужно только уменьшить и сохранить так же ! копаем далее

рубрики: SEO, Полезности, Программирование, Сайтостроение | Комментарии (0)

24 июня 2015

Linux bash скрипт — разбиваем файл по вхождению строки

Так же — команда из ряда «полезностей» — мне нужна для разбития mysql файла со всеми базами по базам

csplit file '/CREATE DATABASE/' {N}
где N количество повторов

рубрики: Администрирование, Полезности, Программирование | Комментарии (0)

Яндекс.Метрика