Иван Бондаренко
С нами с 30 января 2013; Место в рейтинге пользователей: #91Резервное копирование сайтов в Яндекс Диск
Благодаря статье Михаила Воеводского заметил, что тема резервного копирования востребована в сообществе. Решил поделиться своим скриптом резервного копирования написанным на Python. Примечателен он тем, что
- Умеет удалять старые бекапы с ЯДиска, если они старее чем N дней (настраивается в config.yaml)
- Умеет удалять старые логи с сервера
- Раскладывает бекапы на ЯДиске по папкам вида: ГГГГ-ММ-ДД
- Бекапит системные папки: /etc/, /var/log/, /root/
Как сделать сортировку через select?
Пытаюсь сделать сортировку
<select id="mse2_sort" >
<option data-sort="ms_product|publishedon" data-dir="[[+mse2_sort:is=`resource|publishedon:desc`:then=`desc`]]" data-default="desc" class="sort">[[%mse2_sort_publishedon]]</option>
<option data-sort="ms|price" data-dir="[[+mse2_sort:is=``:then=`desc`]]" data-default="desc" class="sort [[+mse2_sort:is=``:then=`active`]]">[[%mse2_sort_price]]</option>
</select>
Как сделать, чтоб при выборе пункт, все заработало?) Заранее спасибо. Резервное копирование сайта на MODX в Google Диск
О необходимости резервного копирования сказано много. Мы в этой статье рассмотрим удобный и простой способ для серверов, настроенных по этой замечательной инструкции.
Итак, вводные данные:
Итак, вводные данные:
- Каждый сайт работает от своего пользователя;
- Все сайты находятся в /var/www/ ;
- Системное имя пользователя, имя пользователя БД и название БД совпадают.
- Создание zip архива всего сайта и sql дампа БД в ~/backup
- Подстановка даты в имя файлов
- [Опционально] Закачивание всех архивов в Google Drive и удаление с сервера
Ошибка сессии в PHP7 при логине в менеджере
Столкнулся с ошибкой PHP session_start() при попытке залогиниться в менеджере (PHP 7 + MODX REVO 2.5.0). В результате войти в менеджер не получается — выбрасывает на страницу с формой входа без каких-либо сообщений. Чичтил куки, удалял кэш, очищал таблицу modx_session — результат тот же. Одновременно нет никаких проблем с логином в контекст web через Login. Раньше с авторизацией в менеджере все было в порядке. Перешел на PHP 5.6 авторизация заработала.
Лог PHP:
PHP Warning: session_start(): Session callback expects true/false return value in ...../core/model/modx/modx.class.php on line 2270
В журнале ошибок менеджера:
(ERROR @ ......../core/model/modx/moduser.class.php: 355) PHP warning: session_regenerate_id(): Cannot regenerate session id — session is not active
Кто-нибудь сталкивался с подобной проблемой? Хотелось бы работать на PHP7.
Лог PHP:
PHP Warning: session_start(): Session callback expects true/false return value in ...../core/model/modx/modx.class.php on line 2270
В журнале ошибок менеджера:
(ERROR @ ......../core/model/modx/moduser.class.php: 355) PHP warning: session_regenerate_id(): Cannot regenerate session id — session is not active
Кто-нибудь сталкивался с подобной проблемой? Хотелось бы работать на PHP7.
ResVideoGallery
ResVideoGallery — адаптивная видеогалерея с Ajax-подгрузкой видео
Поддерживаются следующие видеохостеры:
— youtube.com;
— vimeo.com;
— dailymotion.com;
— rutube.ru;
— vk.com;
— coub.com
Видео-обзор
Больше информации на странице дополнения
Поддерживаются следующие видеохостеры:
— youtube.com;
— vimeo.com;
— dailymotion.com;
— rutube.ru;
— vk.com;
— coub.com
Видео-обзор
Больше информации на странице дополнения
Просмотры, комментарии всех дочерних тикетов
Может кому-то пригАдится пригодится сниппет для подсчета всех дочерних тикетов, их комментариев и количества просмотров. Выводит информацию по всем дочерним тикетам, вне зависимости от иерархии и вложенности. Написан на очень скорую руку (точнее, переделан и собран из сниппетов Василия), так что, почти Франкенштейн… Мне сгодился для форума на сайте, построенного на Тикетсах, в силу того, что есть вложенные разделы тикетов в другие разделы тикетов.
[msDigitalOffers] Продажа цифровых товаров (кодов)
Компонент реализует продажу цифровых товаров (например: ключей для игр).
— Учет проданных кодов в товаре
— Отправка кода на email покупателя
Компонент не может сам генерировать коды, для этого используйте msKuponator.
Логика именно в продаже существующих ключей, кодов, файлов.
Список кодов
Что умеет
— Добавление одного или списка кодов в товаре— Учет проданных кодов в товаре
— Отправка кода на email покупателя
Компонент не может сам генерировать коды, для этого используйте msKuponator.
Логика именно в продаже существующих ключей, кодов, файлов.
Список кодов
И опять теги: теперь индексируемые
Здравствуйте.
Многие пользуются тегами, но вывод, в большинстве случаев, осуществляется на одной и той же странице с помощью перехвата (GET). Поэтому данные страницы нормально не ранжируются поисковиками. Предлагаю сделать иначе.
Многие пользуются тегами, но вывод, в большинстве случаев, осуществляется на одной и той же странице с помощью перехвата (GET). Поэтому данные страницы нормально не ранжируются поисковиками. Предлагаю сделать иначе.
Comparison: картинка-превью из ms2Gallery
Возникла необходимость использовать дополнение Comparison для сравнения обычных документов (не товаров Minishop). Для загрузки изображений используется дополнение ms2Gallery.
Задача: сделать так, чтобы превью для таблицы сравнения брались из изображений ms2Gallery.
Решение:
Шаг 1: Присоединяем таблицу с картинками через leftJoin. При этом указываем размеры превью. В моем случае это 206x117. Если у вас другие размеры — поставьте свои.
Наслаждаемся результатом.
Задача: сделать так, чтобы превью для таблицы сравнения брались из изображений ms2Gallery.
Решение:
Шаг 1: Присоединяем таблицу с картинками через leftJoin. При этом указываем размеры превью. В моем случае это 206x117. Если у вас другие размеры — поставьте свои.
[[!CompareList?
&leftJoin=`{
"206x117": {"class":"msResourceFile","alias":"206x117", "on": "206x117.resource_id = modResource.id AND 206x117.path LIKE '%/206x117/' AND 206x117.rank=0"}
}`
&select=`{
"modResource":"*"
,"206x117":"206x117.url as 206x117"
}`
]]
Шаг 2: В чанке оформления tpl.Comparison.head заменяем плейсхолдер [[+thumb]] на новый с размерами вашей картинки, т.е в моем случае [[+206x117]].Наслаждаемся результатом.
Дополнительные поля профиля юзера (не extended)
Разрабатываю проект, в котором необходимо было реализовать более простое редактирование дополнительных полей профиля, чем есть из коробки. К слову, неудобное редактирование — это не единственный минус нативного способа расширения профиля полями. Ни для кого не секрет, что фильтрацию по JSON полям нормально не осуществить, только костылями. Фактически, мне надо было получить решение, которое бы расширяло стандартный код MODX, не трогая исходники, дабы сохранить
Пришёл к выводу, что буду расширять стандартную вкладку профиля «Общая информация». При желании можно чуть переписать код в событии OnUserFormPrerender и создать свою вкладку со своими полями.