Александр Наумов
С нами с 15 декабря 2012; Место в рейтинге пользователей: #105[modClassVar] - переменные класса, альтернатива ТВ
Давайте шифроваться!
Спешу сообщить, что с сегодняшнего дня вы можете получать бесплатные SSL/TLS сертификаты от Let`s Encrypt на modhost.pro.
Процедура очень проста — нужно зайти в управление вашими доменами и выбрать те, для которых вы хотите получить сертификаты. Очень важно, чтобы эти домены были правильно настроены (верная А запись) и доступны снаружи, потому что Let`s Encrypt будет проверять их ответ.
Процедура очень проста — нужно зайти в управление вашими доменами и выбрать те, для которых вы хотите получить сертификаты. Очень важно, чтобы эти домены были правильно настроены (верная А запись) и доступны снаружи, потому что Let`s Encrypt будет проверять их ответ.
Резервное копирование сайтов в Яндекс Диск
Благодаря статье Михаила Воеводского заметил, что тема резервного копирования востребована в сообществе. Решил поделиться своим скриптом резервного копирования написанным на Python. Примечателен он тем, что
- Умеет удалять старые бекапы с ЯДиска, если они старее чем N дней (настраивается в config.yaml)
- Умеет удалять старые логи с сервера
- Раскладывает бекапы на ЯДиске по папкам вида: ГГГГ-ММ-ДД
- Бекапит системные папки: /etc/, /var/log/, /root/
Резервное копирование сайта на MODX в Google Диск
О необходимости резервного копирования сказано много. Мы в этой статье рассмотрим удобный и простой способ для серверов, настроенных по этой замечательной инструкции.
Итак, вводные данные:
Итак, вводные данные:
- Каждый сайт работает от своего пользователя;
- Все сайты находятся в /var/www/ ;
- Системное имя пользователя, имя пользователя БД и название БД совпадают.
- Создание zip архива всего сайта и sql дампа БД в ~/backup
- Подстановка даты в имя файлов
- [Опционально] Закачивание всех архивов в Google Drive и удаление с сервера
[msDigitalOffers] Продажа цифровых товаров (кодов)
Компонент реализует продажу цифровых товаров (например: ключей для игр).
— Учет проданных кодов в товаре
— Отправка кода на email покупателя
Компонент не может сам генерировать коды, для этого используйте msKuponator.
Логика именно в продаже существующих ключей, кодов, файлов.
Список кодов
Что умеет
— Добавление одного или списка кодов в товаре— Учет проданных кодов в товаре
— Отправка кода на email покупателя
Компонент не может сам генерировать коды, для этого используйте msKuponator.
Логика именно в продаже существующих ключей, кодов, файлов.
Список кодов
В погоне за удобством посетителей или умные ссылки
Здравствуйте.
У многих на сайтах есть блок с похожими статьями, как правило их выбирают из тех же категорий или используют теги. Но не все ссылки (статьи) в этих блоках одинаково полезны для посетителей, и если проверить, то на одни кликают часто, на другие крайне редко.
У многих на сайтах есть блок с похожими статьями, как правило их выбирают из тех же категорий или используют теги. Но не все ссылки (статьи) в этих блоках одинаково полезны для посетителей, и если проверить, то на одни кликают часто, на другие крайне редко.
Дополнительные поля профиля юзера (не extended)
Разрабатываю проект, в котором необходимо было реализовать более простое редактирование дополнительных полей профиля, чем есть из коробки. К слову, неудобное редактирование — это не единственный минус нативного способа расширения профиля полями. Ни для кого не секрет, что фильтрацию по JSON полям нормально не осуществить, только костылями. Фактически, мне надо было получить решение, которое бы расширяло стандартный код MODX, не трогая исходники, дабы сохранить
Пришёл к выводу, что буду расширять стандартную вкладку профиля «Общая информация». При желании можно чуть переписать код в событии OnUserFormPrerender и создать свою вкладку со своими полями.
Делаем колбеки miniShop2 для всех
Всем привет! Так как в miniShop2 есть список колбеков для того, чтобы на определённые действия, совершаемые компонентом, можно было повесить свой код и, тем самым, дополнить работу магазина, то многие разработчики дополнений используют их в своём коде. Я уж не говорю о вебмастерах, которые используют этот инструмент для решения определённых нужд в своих сайтах.
Проблема в том, что код одного компонента, использующего, например miniShop2.Callbacks.Order.getcost, пересекается с другим кодом, другого компонента, использующего этот же колбек. Получается конфликт, который я для себя, в своих пакетах, решаю так:
В чём проблема?
В связи с этим получается проблема. Колбеков мало, а желающих воспользоваться ими — много. Я уже не раз сталкивался с тем, что некоторые компоненты из Modstore не могут работать вместе, т.к. используют одни и те же колбеки, на одних и тех же страницах.Проблема в том, что код одного компонента, использующего, например miniShop2.Callbacks.Order.getcost, пересекается с другим кодом, другого компонента, использующего этот же колбек. Получается конфликт, который я для себя, в своих пакетах, решаю так:
[решено] Как передать fenom массив?
Пытаюсь передать в шаблонизатор fenom массив следующим образом:
запускаю сниппет giveFenomArray с кодом:
Подскажите, это особенность связки modx+fenom, или это я делаю что-то не так?
UPD: все прекрасно работает по функции $modx->setPlaceholder('arr',$pls['arr']);
метод $modx->setPlaceholders действительно разбивает весь массив, даже многомерный на ключи и значения, а только потом их передает как строки в шаблон
запускаю сниппет giveFenomArray с кодом:
$pls['arr'] = ['el1','el2'];
$modx->setPlaceholders($pls);
Затем в шаблоне вызываю сниппет и пытаюсь взять плейсхолдер «array»:{$_modx->runSnippet("!giveFenomArray")}
{set $arr = $_modx->getPlaceholder("arr")}
{$arr[0]}
Но в ответ ничего не выводится.Подскажите, это особенность связки modx+fenom, или это я делаю что-то не так?
UPD: все прекрасно работает по функции $modx->setPlaceholder('arr',$pls['arr']);
метод $modx->setPlaceholders действительно разбивает весь массив, даже многомерный на ключи и значения, а только потом их передает как строки в шаблон
Upgrade PHP7 на Ubuntu 14.04
Для тех кто еще не обновил свои сервера на PHP7, настроенные по заметке Василия Наумкина.
Добавляем репозиторий
У меня все заработало. php5 при этом можно оставить (хотя может чего-нибудь вылезти).
В конфигурации php7-fpm меняем только сокет
Добавляем репозиторий
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
sudo apt-get update && apt-get purge php5-fpm && apt-get --purge autoremove && apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-json php7.0-mcrypt php7.0-opcache php7.0-xml php7.0-mbstring
У меня все заработало. php5 при этом можно оставить (хотя может чего-нибудь вылезти).
В конфигурации php7-fpm меняем только сокет
listen = /var/run/php/php7-eco.sock
и удаляем закоментируемую строку #php_admin_value[disable_functions] = exec,passthru и т.д.
В конфиге nginx также меняем только сокетupstream backend-eco {server unix:/var/run/php/php7-eco.sock;}
После изменения конфигов не забываем рестартить сервисыservice nginx restart
service php7.0-fpm restart