+1.13
135 читателей, 229 топиков

301 Редирект при переключении вложенности URL

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


global $modx;
$q = preg_replace('@' . $modx->config["friendly_url_suffix"] . '$@', '', $_REQUEST['q']);
$tmp = explode('/', $modx->db->escape($q));
$alias = end($tmp);
$query = explode("?",$_SERVER["REQUEST_URI"],2);
$query = !empty($query[1])?$query[1]:''; 
$rs = $modx->db->select('id', $modx->getFullTableName('site_content'), "alias='{$alias}'".($_SESSION['mgrRole']!=1?" and deleted=0 and published=1":""));
$id = $modx->db->getValue($rs);
if ($id) {
	$url = $modx->makeUrl($id,'',$query);
	$modx->sendRedirect($url, 0, 'REDIRECT_HEADER', 'HTTP/1.1 301 Moved Permanently');
	exit();
}


Установка как обычно, повесить на событие OnPageNotFound.

Стоит отметить, что перенаправление будет срабатывать если алиасы ресурсов не изменялись.

gist.github.com

Обновлено: Учтены удаленные и не опубликованные страницы, а также остальные _GET параметры, которые могут быть в ссылке.

[EVO] Сниппет для создания QR-код

Приветствую всех!

Решил написать небольшой сниппет для создания QR-кода. Иногда это нужно в некоторых проектах, особенно для пользователей мобильными устройствами.

Данный сниппет был создан в рамках проекта модуля для создания интернет-магазина TSVshop. Но совершенно ничего не мешает использовать его отдельно.

Для реализации работы скрипта был взят за основу класс разработки Omar Eduardo Ortiz Garza <oortiz@tbanc.com>. Сниппет генерирует картинку кода, сохраняет ее во временную папку и возвращает путь к картинке. Установка простая:

1) Размещает содержимое архива в корень сайта.
2) Создаем сниппет TSVqr с таким кодом:

<?php
require_once(MODX_BASE_PATH."assets/snippets/TSVqr/qr.snippet.php");
?>


3) Вставляем вызов сниппета в тег картинки примерно так:
<img src="[[TSVqr? &text=`текст` &format=`GIF`]]" alt="" />

Формат результирующей картинки &format может быть GIF, PNG, JPG. По-умолчанию GIF.

На возможный вопрос о том, почему сниппет возвращает путь к картинке, а не саму картинку, отвечу: для отделения кода от визуального представления. Легче будет указать нужные параметры тега картинки, обернуть ее любым HTML. Тем более что сниппет изначально планировался очень простым и нет желания запихивать в него лишний код.

Скачать сниппет можно здесь: https://github.com/Serg28/TSVqr/archive/master.zip

[EVO] Аддон Оптовые цены для модуля интернет-магазина TSVshop

Всем привет!

Хочу рассказать о выпуске нового аддона для модуля TSVshop под названием Оптовые цены. Уже само название подсказывает, что этот аддон позволяет решить задачу создания оптовых цены для вашего интернет-магазина. Как это работает?

Небольшое предисловие


Кто пользовался TSVshop, знает, что помимо базовой цены товара (TV-параметр price), которая может быть обычной цифрой, можно указать и простую формулу, позволяющую делать оптовые скидки для этого конкретного товара в зависимости от того, сколько единиц покупает человек. Например, если в TV-параметре price указать формулу (вместо обычной цены)
1-5==100||6-9==90||80

то это значит, что от 1 до 5 штук цена будет 100 руб. (это, по сути, розница), от 6 до 9 штук — цена 90 (это мелкий опт), а если более 9 штук — цена 80 (уже крупный опт). Согласитесь, это удобно, когда можно вот так просто указать формулу для оптовой цены (правда, хочу сделать некий визуализатор для более нагладного и простого формирования цены, чтобы менеджеры не путались).

Но это для каждого товара нужно делать отдельно. Если их в магазине всего 10, ну пусть даже 100 — еще можно вручную править. А что, если товаров миллион и формула для всех одна? Например, опт начинается с 10 единиц — 3%, а более 10 — уже крупный опт и скидка 5%. Было бы удобнее сделать это сразу для всех товаров.

Аддон Оптовые цены


Вот для этой цели служит аддон Оптовые цены. Он позволят наглядно создавать формулу для оптовых цен сразу для всех товаров. Единственная разница с формулой, описанной выше — указывается скидка в процентах от цены. Тоесть, вы можете создать в аддоне правило, что опт начинается с 10 единиц товара и скидка будет 3%. Правил может быть много.

И каждый раз, когда товар кладется в корзину, цена будет пересчитываться по созданном в этом аддоне правиле. Но это работает только для товаров, у которых базовая цена (TV-параметр price) является числом, а не формулой. Если формула, то она имеет преимущество перед правилом, созданным в аддоне.

Чуть позже выложу скрины и сделаю демку. А пока можете задавать вопросы. Или конструктивные пожелания.

Ссылка на страницу аддона: http://tsvshop.xyz/zagruzit/addonyi/addon-globalnyie-skidki.html

[EVO] Аддон Подарочные сертификаты для модуля интернет-магазина TSVshop

Рад объявить о выпуске еще одного дополнения к модулю TSVshop — аддон Подарочные сертификаты. Многим это понятие знакомо, но вкратце скажу, что Подарочные сертификаты — это виртуальный сертификат (карта, ваучер и т.д.) на определенную сумму, которую покупает и оплачивает один человек и дарит другому, который, в свою очередь, может оплатить (полностью или частично) им покупки в интернет-магазине на базе TSVshop. Оплачивать может до тех пор, пока баланс сертификата не будет равен нулю. Если баланса не хватает покрыть полную стоимость, оставшуюся сумму можно доплатить другими методами оплаты.

Возможности:
  1. Добавление неограниченного количества номиналов у сертификата
  2. Сертификат — это один товар/документ, номиналы добавляются через TV-параметр (см. фото ниже)
  3. Процесс покупки происходит как и с любым другим товаром: добавление в корзину, оплата любым доступным методом оплаты, получение письма с номером сертифката на указанную почту
  4. Сразу после завершения оплаты сертификата в админке формируется данные по этому сертификату. Но он активируется и высылается на почту только после того, как у заказа будет статус Оплачено (как будет выставлен статус Оплачено — либо в результате оплаты, либо вручную — это решаете вы сами. Все равно в результате смены статуса автоматически сертификат активируется и высылается на почту).
  5. Сертификатом можно оплатить заказа в вашем интернет-магазине, введя в соответсвующее поле его номер.
  6. Сертификат может либо полностью покрыть сумму заказа, либо частично — недостающуя сумму можно доплатить другими имеющимися методами оплаты.
  7. Ведется учет баланса сертификата: каждый раз при его использовании с него списывается сумма покрытия, пока баланс не обнулится.
  8. Учет подарочных сертификатов и их баланса ведется в админке модуля TSVshop в соответсвующем аддоне (вкладка Подарочные сертификаты).
Страница покупки сертификата
Страница покупки сертификата

Добавление номиналов сертификата
Добавление номиналов сертификата

Учет сертификатов в админке модуля TSVshop
Учет сертификатов в админке модуля TSVshop

Оплата подарочным сертификатом
Оплата подарочным сертификатом
В данном изображении сертификат имеет баланс 300 грн., поэтому он не смог полностью покрыть сумму заказа. Если бы баланс был, напр., 10000, то он бы полностью покрыл сумму заказа, доплачивать не пришлось бы. А с самого сертификата снялась бы только сумма заказа.

Подробнее можно узнать, а также приобрести на сайте http://tsvshop.xyz/zagruzit/addonyi/addon-podarochnye-sertifikaty.html

Демонстрация процесса покупки, а потом оплаты сертификатом — на сайте demo.tsvshop.xyz. Процесс состоит из двух частей:
1)Сначала приобретаете сам сертификат (после оформления заказ будет автоматически оплачен, на почту придет письмо с номером сертификата)
2) Снова заходите на сайт, делаете заказ и в корзине в форме оформления заказа вводите в соответствующем поле Подарочный сертификат номер сертификата — произойдет списание суммы с сертификата как погашение стоимости заказа.

[EVO] Продажа цифровых товаров в TSVshop

Всем привет.

Вышел новый плагин для реализации продажи электронных товаров в виде книг, видео, музыки как файлов. Плагин после установки и настройки полностью автоматизирует процесс продажи файлов. Товары/файлы — документы MODx, которые добавляются в корзину и потом оплачиваются как обычные товары, а после оплаты высылаются пользователю прикрепленные к письму, а также с временными ссылками на скачивание. Время жизни ссылок настраивается. Возможна «продажа» (точнее скачивание свободное) также бесплатных файлов — плагин понимает, где платный, где бесплатный файл. Если бесплатный, то отсылает письмо с файлами сразу после оформления заказа.

Функционал можно будет доработать под конкретные нужды, если кому потребуется.

Вот некоторые скрины:


Добавление для товара нескольких форматов файлов

Цифровой товар может быть представлен как один файл, так и иметь несколько файлов (например, в случае книги или фильма — иметь несколько форматов). В последнем случае в письме с заказом придет несколько файлов.

Купленные товары можно также скачать в личном кабинете

Зарегистрированный пользователь может также скачать купленные файлы в личном кабинете. Причем, если товар имеет несколько файлов/форматов, то будут представлены ссылки на все имеющиеся форматы (как это видно на картинке). Если заказ еще неоплачен, ссылки на файлы будут отображаться, то будут неактивными.

Плагин не требует сложной установки. Достаточно загрузить файлы на хостинг, создать один плагин, один TV-параметр и применить этот TV к нужному шаблону. И наслаждаться результатами работы.

Ссылка на демонстрацию работы: demo.tsvshop.xyz/ (добавлено 2 цифровых товара)
Ссылка на страницу плагина: tsvshop.xyz/zagruzit/plaginyi/tsvshopdownloads-prodazha-fajlov.html

TinyMCE4 для MODX Evolution

Наконец-то дошли руки и решил собрать TinyMCE4 что б нормально работал.
Пока еще есть пару моментов которые стоит доделать, но уже и так все работает.

Установить можно или через Extras или скачав тут: github.com/dmi3yy/tinymce4-for-modx-evo

Это если очень надо будет (Приветствуется донат):
  • Можно добавить Youtube плагин www.cfcms.nl/tinymce-youtube/index.html (Если кто купит)
  • Вынести настройки в настройки MODX, а то сейчас все в файлах
  • Немного навести порядок в коде



Единственный момент вставка картинок и файлов работает начиная с версий:
— MODX Evolution 1.1RC
— MODX Evo by Dmi3yy 1.1b-d7.1.4

p.s. Поздравляю всех с Рождеством :)

[EVO] Модуль интернет-магазина TSVshop v5.3

Приветствую всех!
Рад объявить о выпуске новой версии модуля TSVshop v5.3.

Скачать и почитать об изменениях можно по ссылке: github.com/Serg28/tsvshop/releases/tag/v5.3
Установка: http://tsvshop.xyz/dokumentacziya/dlya-veb-masterov/ustanovka-modulya.html
Документация: http://tsvshop.xyz/dokumentacziya/

Article Manager Module - удобный модуль управления новостями

Зашел к нашему товарищу из Италии Nicola1971 , и нашел новую версию Article Manager Module for MODX Evolution, это возможность управлять какой-либо папкой или всеми новостями из админки. (Тут момент такой, для клиента сделал в быстрых ссылках в стартовой странице админки, теперь по типу WordPress можно новостями управлять). В STORE не нашел ее, но так-то удобная штука.
Сейчас версия 2.3.1beta — в ней есть возможность выводить документы как на Ditto так и на DocLister


Читать дальше →

EVOPort - импорт из csv

Всё руки не доходили сделать нормальную версию, но поглядев что тут некоторые пытаются продать не удержался и отдаю бесплатно то есть даром!

Короче простейший модуль импорта. Для обновления цен делаем два столбца из 1С id и price, загоняем в модуль — ПРОФИТ!


Читать дальше →

[EVO] Модуль Изменение цен - интерактивное изменение цен товаров, для интернет - магазинов

Удобное редактирование цен на товары с одного места

Для MODX EVO
Возможности модуля
  1. Удобное отображение списка товаров (таблица) с возможностью сортировки.
  2. Выбор товаров по производителям.
  3. Добавление часто используемых производителей в «Избранные».
  4. Выбор товаров по категориям.
  5. Возможность снять с публикации или опубликовать выбранные товары или категории.
  6. Умножение цены с возможностью округления до десятков.
  7. Пересчет цены по курсу с возможностью округления.
  8. Возможность указать товару две цены (например, цену со скидкой и без нее).
  9. Отображение значения последнего курса.
  10. Выставление наценки и скидки выбранным товарам.
  11. Возможность открыть окно редактирования товара прямо из модуля.
  12. Пересчитать цену как одному товару, так и всем выбранным товарам.
  13. Удобная настройка модуля (изменение национальной и иностранной валюты, управление округлением цены, отключение неиспользуемых полей и функций).
  14. Ничего не нужно подтверждать или сохранять т. к. все изменения в таблице тут же сами сохраняются.
Подробнее о модуле можно узнать у нас на сайте minyta.ru

Читать дальше →