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

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

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

Адаптация темы prestashop для мобильных устройств

Адаптивная верстка

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

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

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

Вывод отображения плагина 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.

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

Смена стиля плейсхолдера

Иногда в процессе работы дизайнеры плейсхолдеры рисуют произвольным цветом. Всегда думал и уверял заказчиков, что с помощью только css невозможно это сделать, что нужно писать для этой «хотелки» javascript. Что игра не стоит свеч и что лучше оставить цветом, который браузер использует по-умолчанию.

Но недавно нашел такой набор css-хаков, позволяющий менять цвет плейсхолдера по своему усмотрению, либо приводить в соответствие к картинке дизайна.

input::-webkit-input-placeholder {color:#161616;}
input::-moz-placeholder {color:#161616;}/* Firefox 19+ */
input:-moz-placeholder {color:#161616;}/* Firefox 18- */
input:-ms-input-placeholder {color:#161616;}}

Данный набор проверен, к примеру, на этом сайте. В шапке поле поиска оформлено соответствующе.

Команды линукс

Здесь будет коллекция команд для работы с линукс-сервером. Коллекцию планирую периодически пополнять при появлении новых задач и поиска их решений.

  • Удаление большого количества файлов
    ls -f . | xargs -n 100 rm
  • Проверка размера папок и файлов
     du -sh /* - папок в корне. Остальное по аналогии
  • Показать все активные сетевые соединения
    netstat –na
  • Показать и отсортировать все активные соединения на 80-м порту (порт http).
    netstat -an | grep :80 | sort
  • Показать число полуоткрытых соединений (которые в состоянии SYN RECEIVED). Нормальное количество соединений – до 5. Большие значения таких соединений на сервере могут предвещать наличие происходящей SYN-атаки.
    netstat -n -p | grep SYN_RECV | wc -l
  • Вывести отсортированный список IP-адресов, с которых пришли SYN-пакеты.
    netstat -n -p | grep SYN_RECV | sort –u
  • Вывести список уникальных IP-адресов, с которых пришли SYN-пакеты.
    netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
  • Вывести результат подсчета количества соединений к серверу с каждого IP-адреса.
    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n
  • Вывести результат подсчета количества соединений с сервером по TCP или UDP протоколам с каждого IP-адреса.
    netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n
  • Вывести результат подсчета количества соединений c сервером с каждого IP-адреса, которые в статусеESTABLISHED (установленные соединения).
    netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –nr
  • Показать список IP-адресов и количество подключений с них к серверу через порт 80, который по умолчанию используется HTTP-протоколом.
    netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
  • Изменить права рекурсивно на все вложенные папки
    chmod 755 $(find . -type d)
  • Изменить права рекурсивно на все вложенные файлы
    chmod 755 $(find . -type f)

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

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

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

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

Читать далее

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

Слайдер

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

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

Читать далее

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

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

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

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

Читать далее