Сообщения

Отправка почты из Fedora

Изображение
В статье приводится алгоритм настройки утилиты msmtp. Это позволит отправлять почту как из консоли, так и из виртуальных хостов (полезно при разработке сайтов). С большой долей вероятности данные советы будут работать и на других современных ОС семейства Linux (благодаря повсеместному внедрению systemd).
Устанавливаем msmtp:
sudo dnf install msmtp В настройке мне помогла статья "How to use MSMTP with Gmail, Yahoo and PHP Mail".
Правим персональный конфиг (~/.msmtprc), указываем настройки своего почтового ящика (с которого будут отправляться письма). На примере yandex почты записываем в файл (это и есть самая ценная информация статьи):
account default logfile /var/log/msmtp.log host smtp.yandex.ru port 587 from mymail@yandex.ru keepbcc on auth on user mymail@yandex.ru password mypass tls on tls_starttls on tls_certcheck off Меняем права на конфиг (иначе персональные данные доступны другим пользователям и программа откажется работать):
chmod 600 ~/.msmtprc Создаём файл для л…

Дружим PHPExcel с Битрикс

Изображение
Зачем Excel Иногда при разработке сайта на Битриксе возникает необходимость генерировать файлы Excel. Лично мне этот формат (т.е. родные форматы Excel) не нравится. Но менеджерам, зачастую, это ближе к сердцу, чем CSV. Как показывает практика, офисные сотрудники не всегда могут совладать с юникодом при открытии файлов CSV через MS Excel (вот, пора уже переходить на открытые аналоги, типа LibreOffice). Для таких вот запущенных случаев, нужно генерировать родные форматы Excel.
Из PHP генерацию фалов Excel можно делать с помощью распространённой библиотеки PHPExcel. Говорят, что эта библиотека не подходит для генерации больших и сложных документов. Но мне нужно было делать совсем маленькие Excel документы с простой таблицей и особым именем листа. Кстати, если вам не нужно давать листам названия, то можно поступить проще, - так же, как это делает сам Битрикс, - генерировать Excel документ через HTML. Но я использовал старую версию библиотеки PHPexcel - https://github.com/PHPOffice/PHPEx…

Битрикс24: экспорт по событию

Изображение
В предыдущей статье "Bitrix24 API - разбор демо приложения третьего типа" я пообещал написать продолжение с примером выгрузки данных из Битрикс24 по событию (например, по закрытию сделки). Хотел бы написать, что не прошло и года, но... год прошёл.
Пример будет такой. Основано на реальной потребности одной организации. Нужно для всех сделок передавать данные в систему управления складскими запасами. Сделки заключает менеджер, за запасами материалов следит производственник. Т.е. после оформления сделки в Битрикс24 и перехода её в нужный стартовый статус, должен запуститься механизм производства. Нужно вовремя заказать материалы, необходимые для производства (с учётом времени, когда запасы понадобятся и текущих имеющихся запасов). Вобщем, понятно, что данные по сделке нужны в каких-то внешних системах (всё это делать в Битрикс24 не получается, да и не нужно).
Итак, приступаем. Что портебуется:
Аккаунт администратора Битрикс24Сайт в интернете, куда будем отсылать данные из Битри…

CAPS в названиях - это плохо

Кричать заглавными буквами - не хорошо. Но зачастую, менеджеры норовят добавить в названия большей заметности (на их взгляд) и лепят слова заглавными буквами. Google Покупки (Google Merchant Center) это чётко запрещает в своих фидах (https://support.google.com/merchants/answer/188494): "мы запрещаем добавлять в название рекламный текст (такой как "Бесплатная доставка") или использовать ЗАГЛАВНЫЕ БУКВЫ".
Вот пример, как в PHP проверить строку на наличие ЗАГЛАВНЫХ БУКВ:
<? $arStrings = [     'CAPS is bad',     'No caps at whole World Wide Web!',     'caps is bad!',     'No caps - No problems!',     'But with CAPS THERE ARE a LOT of problems!' ]; $pattern = '/(\p{Lu}){2,}/'; foreach ($arStrings as $string) {     if (preg_match($pattern, $string)) {         echo 'String "' . $string . '" with CAPS!' . '<br>';     } else {         echo 'String "' . $string . '&q…

Несколько конфигов Sphinx

На компьютере разработчика может работать сразу несколько сайтов. Для разных сайтов могут быть заведены свои поисковые индексы Sphinx. Чтобы было удобно управлять разными конфигурациями, лучше завести отдельные конфигурационные файлы для каждого сайта, один общий конфиг и основной конфиг, который использует Sphinx. Вот как это сделать.
Начиная с версии Sphinx 0.9.8 (14 июля 2008 года) доступно задавать конфиг в виде скрипта. Сначала я попробовал сделать, как предложено в статье "Разделение конфигов Sphinx", но у меня не завелось. Возможно, из-за того, что я предпочитаю хранить конфиги в одном месте, а не в каталоге каждого сайта, как автор той статьи. Все мои конфиги Sphinx находятся к каталоге /etc/sphinx
Итого я имею:
1. список конфигов с именами "10-site1.part.conf", "10-site2.part.conf". Где число в начале - порядок для дальнейшей сборки в один файл (у меня все десятки). В конфигах обозначены настройки source и index
2. конфиг с общими настроками &qu…

Информатизация малого бизнеса

Изображение
Оглавление ВведениеПО организации и УК РФLinux в организацииБухгалтрерия в LinuxCRM в LinuxWeb-приложения как основа автоматизацииУдалённая работа в фирмеДля кого статья Законодательство Российской Федерации определяет малое предприятие как бизнес, в котором работают до 100 человек и общая выручка за год не превышает 400 миллионов рублей. Так вот это статья не для таких предприятий. Вернее, конечно, статья будет полезна малому бизнесу, но лишь Значительно Меньшему Бизнесу. Предприятиям с численностью около 10 человек и выручкой значительно менее 10 миллионов рублей. Кто-то воскликнет, что такого масштаба предприятия наше государство кличет "микропредприятиями". Но и до "микро-" целевая аудитория этой статьи не дотягивает. Законодательство вкладывает в "микро-" параметры: до 15 человек и до 60 миллионов годовой выручки. Скорее, материал будет полезен "нанопредприятиям", которые не заметны с высоты государства и, видимо, оно за бизнес-то их не сч…

Memcached socket + systemd + selinux + Bitrix

Изображение
Установка Установка и настройка на примере ОС Fedora с включенным SELinux. sudo dnf install php-pecl-memcached.x86_64 phpMemcachedAdmin.noarch memcached.x86_64 phpMemcachedAdmin нужен для мониторинга - не обязателен.
Для того, чтобы memcached стал доступен в настройках "композитного сайта" в Битриксе, надо установить менее продвинутую клиентскую библиотеку (без d в конце названия):
sudo dnf install php-pecl-memcache.x86_64 НастройкаВ некоторых источниках говорится, что если используется один сервер, то лучше настроить memcached через socket. Для использования memcached в качестве сокета на Linux с systemd и SELinux нужно проделать довольно многое. Исчерпывающей инструкции я не нашёл, поэтому предлагаю свой вариант.
Для начала скопируем системный сервис-файл в пользовательское пространство, где его можно безопасно править:
sudo cp /usr/lib/systemd/system/memcached.service /etc/systemd/system/memcached.service Переходим к редактированию. Например, в консоли с помощью редактор…