php

Ошибка при формировании архива в PCLZIP

использование PCLZIP в проекте

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

Порыскав в интернете в поисках подходящего архиватора, наткнулся на PCLZIP. Бегло просмотрев код, увидел, что это целиком написанный на PHP архиватор. Без всяких внешне подключаемых модулей, а значит и не зависимый от операционной системы и среды его работы. 🙂 Исполнители очень сильно удивили меня своим решением. Никогда в голове даже не возникало желания написать что-то похожее на PHP. Всегда считал что решать такие задачи нужно на более быстрых языках. C или CPP, например. Но все же решил попробовать. Читать далее

Оптимизация mysql-запроса в Prestashop

mysql

Разместив сайт на хостинге timeweb, столкнулся с проблемой перерасхода лимита разрешенного времени mysql-запросов.

У клиента лимит на его тарифном плане составляет 1000cp в сутки (это какие-то их внутренние единицы расхода процессорного времени).

Сразу же начались претензии со стороны таймвеб с требованием сократить расход процессорного времени. При этом не предоставляли логов — какие именно запросы создают превышение нагрузки. Читать далее

Убрал плагин комментариев VK

no_vk

Сейчас убрал плагин комментариев ВКонтакте.

Ставил его еще в прошлом году, когда был активным участником этой социальной сети. Но с начала этого года еще ни разу не посещал данный сайт. Поэтому не могу своевременно отлавливать вопросы и оставлять на них ответы. Читать далее

Написал скрипт управления сайтом отзывов о компаниях города — сарафанн.рф

Логотип сайта сарафанн.рф

Завершил первый этап разработки скрипта отзывов о компаниях города для сайта сарафанн.рф. Скрипт полностью писался с нуля. В качестве готовых блоков брал только имеющиеся в загашнике давно уже написанные и применяемые в подобных проектах библиотеки: работы с базой, управления пользователями и их правами. Читать далее

Вывод отображения плагина WP Statistics в публичную часть сайта

wp-statistic

Встала задача вывести графики статистики, формируемые плагином WP Statistics на странице сайта в публичной его части. Просмотр страницы разрешен только пользователям из группы администраторы

По-умолчанию плагин отображает собранную статистику на отдельной странице в административной части вордпресс.

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

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

Код получился совсем небольшой. Гораздо больше места и текста в итоге занимает html-обвязка вывода на странице:

<?php
function show_widjet_monitoring($func, $text){
?>
<div class="postbox">
 <div class="handlediv" title="Нажмите для переключения"><br></div>
 <h3 class="hndle ui-sortable-handle"><span><?php echo $text?></span></h3>
 <div class="inside">
 <?php $func();?>
 </div>
</div>

<?php } ?>

Это функция отображения блока статистики. На вход получает в параметре $func имя функции, которая формирует нужный блок отчетности и в параметре $text Заголовок блока.

Далее следует блок вызовов функции на нужной странице сайта.

<?php show_widjet_monitoring('wp_statistics_summary_widget', 'Резюме');?>
<?php show_widjet_monitoring('wp_statistics_browsers_widget', 'Браузеры');?>
<?php show_widjet_monitoring('wp_statistics_referring_widget', 'Лучшие сайты-источники переходов');?>
<?php show_widjet_monitoring('wp_statistics_countries_widget', 'ТОП 10 стран');?>
<?php show_widjet_monitoring('wp_statistics_hitsmap_widget', 'Карта сегодняшних посетителей');?>
<?php show_widjet_monitoring('wp_statistics_hits_widget', 'Хиты статистика');?>
<?php show_widjet_monitoring('wp_statistics_search_widget', 'Поиск двигатель рефералов');?>
<?php show_widjet_monitoring('wp_statistics_words_widget', 'Последние слова поиска');?>
<?php show_widjet_monitoring('wp_statistics_pages_widget', 'ТОП 10 страниц');?>
<?php show_widjet_monitoring('wp_statistics_recent_widget', 'Последние посетители');?>
<?php show_widjet_monitoring('wp_statistics_top_visitors_widget', 'ТОП 10 посетителей сегодня');?>

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

Вот такое простое решение можно реализовать на любом сайте, если не хотите пускать определенных людей в админку вордпресс.

Плюс 2 сайта в портфолио

Интернет-магазин термобелья trubio.ru

Закончились предварительные работы по запуску сайта интернет-магазина trubio.ru.

Дизайн сайта был разработан заказчиком и предоставлен в первоначальном варианте. В процессе работы было много его доработок и доводок, которые не были включены в первоначальный концепт. В итоге, на мой взгляд, получилось совсем неплохо. Читать далее

Плагин простой корзины для вордпресс

Легкая корзина для wordpress

Вот такую штуку сделал для сайта клиента. Теперь использую и на этом сайте. Плагин позволяет легко и просто сделать простой магазин на базе существующего блога.

Карточкой товара является любая запись (страница) блога, а названием товара заголовок страницы. Поэтому оформление страницы никак не зависит от самого плагина. Это главное отличие от мощных магазинов на базе вордпресс, вроде e-commerce и им подобным.

Читать далее

Как можно сделать простой слайдер

Слайдер

Дизайнер сайта жалюзи нарисовал симпатичный слайдер, который нужно было воплотить в рабочем сайте.

Особо долго не копая сеть на наличие чего-то подходящего, по-быстрому накидал свой вариант слайдера и сделал простую загрузку в него изображений и описаний на основе распространенного плагина Advanced Custom Fields с его дополнительным расширением Repeater Field.

Читать далее

Интеграция платежного сервиса onPay и ClassiPress

Интеграция onpay в classicpress

Для CMS Wodpress есть премиум-тема доски объявлений ClassiPress.

Ко мне обратился один из владельцев такого сайта — domobyavleniy.ru для организации приема платежей на сайте и размещения объявлений в блоке платных премиум-объявлений.

Читать далее