Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
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)

24 Июнь 2015

Linux bash скрипт — поиск и замена строки в файле

Мини-пост (информация для себя, чтоб не потерялась)

Поиск и замена строки в файле file

sed -i "s/строка/новая строка/g" file

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

9 Апрель 2015

Итоги автосабмита по K2 профилям

Сваял чекер, который прошел по зарегистрированным профилям и проверил наличие ссылки на целевую страницу.
В итоге, из более чем 6к сайтом, профиля остались на данный момент на 65 страницах, что составляет 1.5% от общей массы обработанного.
С учётом ничтожного веса таких ссылок — думайте сами, стоит вообще замарачиваться или нет.
На самом деле это пока предварительные итоги, т.к. выводы можно будет делать только после того как Яша скушает эти странички, увидит ссылки, и как-то прореагирует и изменит выдачу.
Вот тогда и будет видно, стоит или не стоит.
Вот полный список «уцелевших»
Читать полностью »

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

2 Апрель 2015

Ссылки с профилей joomla k2

Как вариант, быстро «засветить» Яше интернет-аптеку рассматривал прогон по каталогам, и в поисках кандидатуры на сёрче случайно наткнулся на негативную ветку Заказал прогон по каталогам, а результата нет.
Почитал, слил любезно предоставленный отчёт и сайтами донорами и подумал, что с правильным подходом толк от такого прогона вполне возможен!
Правильный подход в том, чтобы «показать» Яндексу эти странички.
Для пробы, первый профиль создал «руками» — как ни странно, всё получилось 🙂
результат.
В голове сразу всплыла старая добрая схема автосабмиттера 🙂 собственно — решил «тряхнуть стариной» и реализовать на php такой сабмиттер (авто регистрация на joomla с размещением в профиле нужной мне информацию).
По сути такими действиями я ничего не нарушаю и не «порчу жизнь» никаким сайтам, в отличие, например, от постинга в форумы — регистрация свободная, информация размещаемая в профиле тоже свободна!
но и странички эти в отличие от форумных поисковики без прямых указаний на них никогда сами не увидят — тут нужно будет как то «помогать» (пока не продумал как это можно автоматизировать).
Читать полностью »

рубрики: Joomla, SEO, Полезности, Программирование, Размышления | 4 комментария