Author Archives: admin

Подключаем Google Recaptcha в PHP-коде

Довольно простой способ прикрутить recaptcha к сайту с проверкой без использования curl:

$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success) ...

Полезно явно указать язык при вызове скрипта
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=ru" async defer>

Два варианта сделать рекапчу адаптивной:

А еще лучше — использовать Invisible recaptcha.

Яндекс.Метрика для продвинутых

Добавляем в мемориз две качественные статьи по настройке отчетов Метрики:

Очистка HTML-кода от мусора

Весьма распространенная операция — перенос на сайт форматированного текста, созданного, например, в Word’е, который вставляет тонны ненужных инлайновых стилей. Далеко не всегда с этим успешно справляются популярные WYSIWYG-редакторы типа TinyMCE, хотя, казалось бы, нет особых проблем встроить в них качественный клинер. Пока же будем пользоваться он-лайновыми сервисами, один из них — лаконичный и качественный — word2cleanhtml.

Компактный вывод блоков разной высоты в несколько колонок

Найдена и опробована в действии неплохая masonry-библиотека Salvattore, которая легко внедряется в проект, например, с использованием bootstrap. В CSS-код с нашей стороны было внесено маленькое дополнение для создания отступов у колонок:

#grid .size-1of2:nth-child(2n) {
    margin-left: 10%;
}
#grid .size-1of3:nth-child(3n+2) {
    margin-left: 5%;
    margin-right: 5%;
}

Действующий пример можно посмотреть здесь.

CSS tooltips

Обнаружен годный онлайн-генератор тултипов на чистом CSS.  Код требует некоторой последующей доводки, но в большинстве случаев все будет работать как задумывалось.

На сайте содержится большое количество других полезных CSS-фич, инструментов и примеров, а также блог. Берем на заметку.

Адаптивные таблицы

Простой и быстрый способ сделать так, чтобы таблицы подстроились под мобильные устройства — это обернуть их div’ом, используя следующий код в духе bootstrap:

div.table-responsive {
overflow-x: auto;
max-width: 100%;
}
.table {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
}

ISPmanager 5

В популярной панели управления хостингом произошли шикарные изменения. Существенно переработан интерфейс — можно оперативно переключаться между задачами, открывающимися во вкладках. Настройка php стала более наглядная и полноценная. Появилась возможность создания инкрементальных бэкапов, которой остро не хватало. Но есть и ряд разочаровывающих моментов. Обновляться придется платно. ISPmanager 5 заточен под самые последние версии дистрибутивов Linux и FreeBSD. Автоматизированный перенос аккаунтов со старой версии ISPmanager не предусмотрен, так что веб-сервера придется переносить вручную.

Автоматическое кадрирование изображений

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

Список с множественным выбором на jQuery

Понравился плагин Chosen, который решили использовать для админки нового движка. Плагин старенький, но не потерявший своей актуальности. Прост в установке и является отличной заменой стандартному multiple-select’у. Выбранные опции выводятся в виде боксов с возможностью удаления. Реализован быстрый поиск по всему списку, что весьма актуально при большом количестве позиций.

Chosen - Select Box Enhancement Plug-in

Менеджер файлов для TinyMCE 4x

Перепробовав для реализации современной админки несколько вариантов менеджеров загрузки картинок, остановили свой выбор на Responsive filemanager. Бесплатен, прост в установке, имеет приятный дизайн, поддерживает множественную загрузку файлов.

Responsive FileManager

Некоторые особенности работы с сессиями

Сюрприз #1. В Debian Linux отключен контроль PHP за удалением сессий. Разработчики почему-то решили, что эту задачу надо решать с помощью cron, а создатели ISP Manager этого не учли, т.е. в стандартной конфигурации подобного задания нет. Лечится это элементарно — установкой session.gc_probability = 1 в php.ini с последующим рестартом Apache. Не проделав этого легко получить переполнение файловой системы (а вернее — inodes).

Сюрприз #2. Продление времени жизни сессии определенного сайта оказалось нетривиальной задачей. Можно попытаться задать его в php-скрипте:
$expiry = 60*60*24*30; // 30 дней храним сессию
ini_set('session.gc_maxlifetime', $expiry); // количество секунд, после чего данные будут считаться 'мусором' и зачищаться
ini_set('session.cookie_lifetime', $expiry); // период хранения куки в секундах

Но тут выясняется, что если сессии сохраняются в стандартной директории, то у сборщика мусора PHP с установками, рассчитанными на меньшее время хранение, более высокий приоритет, и он все равно удалит все файлы, которые сочтет устаревшими. Так что эти установки без переопределения параметра session.save_path (директории, куда будут записываться сессии) бессмысленны. А в этом случае нужно еще озаботиться написанием собственной процедуры удаления устаревших сессий, которую будет запускать крон. Так что самым простым и действенным методом является увеличение параметра session.gc_maxlifetime для сборщика мусора в php.ini, который, увы, будет распространяться на все сайты данного веб-сервера.

Установка мобильной версии интернет-магазина в Битриксе 12.5.11

Настройка wap-версии магазина оказалась увлекательным квестом. Пришлось изрядно погуглить, чтобы найти решение. Дополнение от Битрикса «Мобильная версия сайта» не вполне совместимо с новой версией движка. Но все решаемо.

Continue reading

Прокачка VPS для ускорения работы CMS Битрикс

Все основные рекомендации для ускорения работы веб-сервера содержатся в панели управления Bitrix: Настройки — Производительность — Панель производительности. Произвести манипуляции с файлом php.ini не представляет труда. Специфическим моментом может являться разве что установка акселератора.

Continue reading

Товары для коллекционеров

Представляем нашу новую работу: интернет-магазин товаров для коллекционирования FORSTAMPS.ru. В нём представлены товары и литература для всех популярных увлечений коллекционеров. FORSTAMPS — удобный современный магазин, в котором впервые в Рунете объединены все лучшие фирмы-производители. Выбор товаров прост, сайт удобен для любого компьютера, включая планшеты и смартфоны.

Интернет-магазин уникальных товаров распахивает виртуальные двери

Представляем новый сайт — интернет-магазин «ТолькоТебе». Основная концепция ресурса состоит в том, чтобы предлагать уникальные товары, которые создаются по индивидуальным требованиям заказчика и широкий спектр товаров по действительно уникальным ценам.

Новая работа студии — редизайн сайта «Финский центр Ирины Соом»

Рады представить наш новый проект — сайт курсов иностранных языков Ирины Соом (основная специализация: скандинавские языки и преподавание финского по авторской методике). Полностью переработано оформление и структура ресурса, использован ультралегкий движок на PHP собственной разработки, графические эффекты реализованы на jQuery. В ближайшее время стартует кампания по поисковому продвижению сайта.

Новое оформление сайта «Арт-Визаж»

Производим серьезную переделку сайта студии-лаборатории «Арт-Визаж», в частности нам поручены: переделка графического макета, верстка и программирование сервисов. К настоящему моменту запущена в работу система индивидуальных заказов косметики и книга отзывов. На очереди — добавление новых разделов и переработка интернет-магазина.