Андрей Шевяков
С нами с 28 сентября 2016; Место в рейтинге пользователей: #45Редирект URL со слэшем в конце на без слэша
Это не вопрос, а решение.
Ниже код плагина, который решает задачу: редирект URL со слэшем в конце на URL без слэша в конце.
Гугл/яндекс в течение часа дал ответ на обратную задачу (редирект без слэша в конце на со слэшем).
Делюсь доработкой с надеждой, что это вылезет в топ и поможет сохранить время следуюшим поколениям :)
Также сделаны настройки по пунктам 1-6 отсюда.
Плагин настраивается на событие OnLoadWebDocument:
Ниже код плагина, который решает задачу: редирект URL со слэшем в конце на URL без слэша в конце.
Гугл/яндекс в течение часа дал ответ на обратную задачу (редирект без слэша в конце на со слэшем).
Делюсь доработкой с надеждой, что это вылезет в топ и поможет сохранить время следуюшим поколениям :)
Также сделаны настройки по пунктам 1-6 отсюда.
Плагин настраивается на событие OnLoadWebDocument:
<?php
if ($modx->event->name == 'OnLoadWebDocument') {
$request = $_SERVER['REQUEST_URI'];
$params = '';
if (strpos($request, '?') !== false) {
list($request, $params) = explode('?', $request);
}
$uri = $request;
if(!empty($uri) && strpos($uri, '.') === false && substr($uri, -1, 1) == '/') {
$uri = substr($uri, 0, -1);
if (!empty($params)) {
$uri .= '?' . $params;
}
$modx->sendRedirect($uri, array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}
} Страницы - поддомены
Всем привет!
Возникла потребность показывать страницы в качестве поддоменов, причем сохраняя возможность вложенности страниц.
Не нашел готового решения, потому результатом стал плагин, который можно увидеть под катом.
Позволяет использовать обычные страницы в качестве поддоменов, примеры:
mysite.ru/test — Изначальный адрес.
test.mysite.ru — Новый адрес с поддоменом.
Также работает и с дочерними страницами, примеры:
mysite.ru/test/page.html — Изначальный адрес.
test.mysite.ru/page.html — Новый адрес с поддоменом.
Возникла потребность показывать страницы в качестве поддоменов, причем сохраняя возможность вложенности страниц.
Не нашел готового решения, потому результатом стал плагин, который можно увидеть под катом.
Позволяет использовать обычные страницы в качестве поддоменов, примеры:
mysite.ru/test — Изначальный адрес.
test.mysite.ru — Новый адрес с поддоменом.
Также работает и с дочерними страницами, примеры:
mysite.ru/test/page.html — Изначальный адрес.
test.mysite.ru/page.html — Новый адрес с поддоменом.
[xLike] Идеальная система лайков с оптимистичным интерфейсом и правильной формулой
Пакет довольно прост и одновременно функционален. Выполняет систему рейтинга для любого объекта, по-умолчанию, для ресурсов. Чем-то напоминает систему лайков на YouTube, в частности, в пакете реализован оптимистичный интерфейс.

Также, особенностью компонента является правильный подсчет рейтинга на основе вычисления нижней границы доверительного интервала Вильсона для параметра Бернулли. По-простому: эта формула не даст встать новым записям с 1 лайком и 0 дизлайками выше более старых записей с сильным рейтингом.
Список преимуществ:

Также, особенностью компонента является правильный подсчет рейтинга на основе вычисления нижней границы доверительного интервала Вильсона для параметра Бернулли. По-простому: эта формула не даст встать новым записям с 1 лайком и 0 дизлайками выше более старых записей с сильным рейтингом.
Список преимуществ:
- Оптимистичный интерфейс,
- Наиболее правильная формула вычисления рейтинга,
- Работа с любыми объектами (modResource, modUser, кастомные объекты),
- Голосование гостями,
- Анимированное изменение полосы/числа рейтинга,
- Событие плагина — xLikeOnVote.
Показать анимацию до момента отправки заказа
Здравствуйте!
После нажатия на кнопку отправки заказа ([!msOrder?]]) до момента уведомления об успешном заказе ([[!msGetOrder]]) на сайте проходит примерно 2 секунды, подскажите пожалуйста, как добавить в этот промежуток времени показ какой-нибудь анимации (гифки, например), клиенту, чтоб не было возможности нажать кнопку отправки заказа 100500 раз?
Может посоветуете другие варианты решения проблемы? Оптимизация работы дополнения или запрет отправки нескольких заказов в течение 5 секунд?
Вызываю сниппеты в шаблоне корзины.
Чанки:
После нажатия на кнопку отправки заказа ([!msOrder?]]) до момента уведомления об успешном заказе ([[!msGetOrder]]) на сайте проходит примерно 2 секунды, подскажите пожалуйста, как добавить в этот промежуток времени показ какой-нибудь анимации (гифки, например), клиенту, чтоб не было возможности нажать кнопку отправки заказа 100500 раз?
Может посоветуете другие варианты решения проблемы? Оптимизация работы дополнения или запрет отправки нескольких заказов в течение 5 секунд?
Вызываю сниппеты в шаблоне корзины.
[[!msCart?tpl=`my.tpl.msCart`]]
[[!msOrder?tpl=`my.tpl.msOrder`]]
[[!msGetOrder?tpl=`my.tpl.msGetOrder`]] Чанки:
Как мы подключали онлайн-кассу в Modstore/Modhost

Привет, друзья!
Сегодня мы расскажем о нашем опыте внедрения онлайн-кассы в маркетплейсе modstore.pro и хостинге modhost.pro.
Опишем всю цепочку — от выбора кассы и заключения договора до интеграции и первых пробитых чеков.
pdoSitemap: автоматическое добавление в sitemap
Здравствуйте.
XML карту сайта сделал через pdoSitemap.
Сейчас после добавления или удаления документа, чтобы изменения отразились в карте сайта, необходимо кэш сайта чистить.
Нельзя ли задать какое-то правильно или плагин, чтобы при изменении состояния ресурса:
добавление ресурса
публикация или снятие с публикации
удаление ресурса
Карта обновлялась автоматически?
В документации к данному дополнению ничего такого нет, в инете искал ответ на вопрос, но тоже тишина.
XML карту сайта сделал через pdoSitemap.
Сейчас после добавления или удаления документа, чтобы изменения отразились в карте сайта, необходимо кэш сайта чистить.
Нельзя ли задать какое-то правильно или плагин, чтобы при изменении состояния ресурса:
добавление ресурса
публикация или снятие с публикации
удаление ресурса
Карта обновлялась автоматически?
В документации к данному дополнению ничего такого нет, в инете искал ответ на вопрос, но тоже тишина.
[ExtJS] Расширяем нативную гриду юзеров

После статьи о расширении профиля юзера правильными дополнительными полями мне посыпались вопросы о расширении нативной таблицы со списком юзеров. Мы знаем, что практически любой стандартный компонент системы, работающий на ExtJS, можно расширить не затрагивая исходника. Главное
Сразу опишем задачу, которую реализуем в рамках статьи:
- Убрать слева каждой записи ненужный чекбокс,
- Добавить столбцы: Фото, Дата рождения, Страна, Город,
- Добавить возможность отфильтровать пользователей по стране,
- Заменить некрасивое поле поиска на симпатичное и компактное,
- Подсветить заблокированных красным цветом.
Как установить шаблон для дочерних ресурсов?
Добрый день, коллеги!
Собсно сабж.
Видел такое в Collections, но не ставить же её ради одной фичи…
Заранее спасибо.
Собсно сабж.
Видел такое в Collections, но не ставить же её ради одной фичи…
Заранее спасибо.
DiscountMS2 - Скидки для категорий товаров
Поздравляю всех (или сочувствую всем, спорный вопрос) с началом новой рабочей недели!
Наклепал свой первый более-менее серьезный компонент, хочу представить на суд общественности.
Компонент предназначен для выставления скидки внутри категорий. Поддерживает мультикатегории и указание глубины поиска товаров.
Есть возможность указания скидки как со страницы компонента, так и через TV.
Вот так выглядит страница в админке:

Вот так — указание скидки через ТВ:

Добавление новой скидки:

Наклепал свой первый более-менее серьезный компонент, хочу представить на суд общественности.
Компонент предназначен для выставления скидки внутри категорий. Поддерживает мультикатегории и указание глубины поиска товаров.
Есть возможность указания скидки как со страницы компонента, так и через TV.
Вот так выглядит страница в админке:
Вот так — указание скидки через ТВ:
Добавление новой скидки:
Сообщество экспертов, образовательная платформа
Добрый день. Предлагаю вашему вниманию проект, который сейчас находится в стадии бета-тестирования.
Идея: универсальная площадка для коммуникаций, обмена опытом и знаниями.
В будущем – образовательная платформа.
Идея: универсальная площадка для коммуникаций, обмена опытом и знаниями.
В будущем – образовательная платформа.