Skip to content

Instantly share code, notes, and snippets.

View TrywaR's full-sized avatar

Сергей Ильин TrywaR

View GitHub Profile
@TrywaR
TrywaR / [ MODX ] pdoMenu
Created May 9, 2019 16:12
Для копипаста, без ссылки на текущий пункт
[[pdoMenu?
&parents=`0`
&level=`2`
&tpl=`@INLINE
<li [[+classes]]>
<a href="[[+link]]" [[+attributes]]>
[[+menutitle]]
</a>
[[+wrapper]]
@TrywaR
TrywaR / [MODX REVO MiniShop2 | yandex form payment]
Created May 24, 2019 15:45
Форма для оплаты через хуяндекс метод почта вроде под MODX REVO MiniShop2
{if $payment.id != 1 }
<form action="https://money.yandex.ru/eshop.xml" method="post">
<input name="shopId" value="" type="hidden"/>
<input name="scid" value="" type="hidden"/>
<input name="sum" value="{$total.cost | replace : ' ' : '' | number : 2 : '.' : ''}" type="hidden" min="1">
<input name="customerNumber" value="{$address.phone}" type="hidden"/>
<input name="orderNumber" value="{$order.num}" type="hidden"/>
<input name="custAddr" value="{$order.address}" type="hidden"/>
<input name="cps_phone" value="{$address.phone}" type="hidden"/>
<input name="cps_email" value="{$user.email}" type="hidden"/>
@TrywaR
TrywaR / MODX Revo > простой CallTracking
Last active June 2, 2019 20:09
Отслеживаем откуда перешёл пользователь, в зависимости от этого показываем номер телефона, почту и тд
<?php
// Параметры
// $html = ''; Вывод с html
// $need = ''; Что нужно вывести, телефон или тд
if (!$need)
$need = 'phone'; // По умолчанию выводим телефон
$arrParam = array(
'google' => array(
'title' => 'Google good!',
@TrywaR
TrywaR / QuickOrder.php
Created June 8, 2019 23:23 — forked from grachov/QuickOrder.php
Покупка товара в один клик для miniShop2
<?php
$context = $modx->context->get('key');
if ($context == 'mgr' || empty($_POST['quick_order']) || empty($_POST['id']) || empty($_POST['customer'])) {
return;
}
/**
* @var miniShop2 $miniShop2
*/
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($context, array(
@TrywaR
TrywaR / MODX Evo > контакты в зависимости от геолокации
Last active July 2, 2019 15:12
Вычесляем юзверя по ip и в зависимости от города показываем контактные данные (телефон, мыло и тд)
<?php
// Создаём снипет, например geolocation
// тут его содержимое, а выводим его так
// [!geolocation? &need=`phone` &html=`1`!]
// $need - Запрос на вывод
if (!$need)
$need = 'phone'; // По умолчанию выводим телефон
// Нужные параметры
$cityDefault = 'Санкт-Петербург'; # город по умолчанию
@TrywaR
TrywaR / README.md
Last active July 7, 2019 20:33
MODX Evo > RSS для турбо-страниц хуяндекса

MODX Evo > RSS для турбо-страниц хуяндекса

  1. Создаём страницу типа XML с пустым шаблоном, в содержимое пихаем Содержимое страницы.xml и указываем в &parents id ресурсов откуда выводить материал
  2. Добавляем сниппет htmlspecialchars с кодом из htmlspecialchars.php для экранизации символов и добавление полного пути к картинкам, указываем папку с картинками
  3. Добавляем чанк tpl_turborss с кодом из rss_tpl.tpl для вывода элементов, заменяем код для вывода картинок на нужные tv и тд
@TrywaR
TrywaR / README.md
Last active July 7, 2019 22:07
MODX Revo > RSS для турбо-страниц хуяндекса

MODX Revo > RSS для турбо-страниц хуяндекса

  1. Создаём страницу, тип содержимого XML, шаблон пустой, содержимое в файле содержимое страницы.xml где заменяем tv поля для картинки под нужное, и заменяем id 3 на те ресурсы которые нужно выводить
  2. Создаём сниппет htmlspecialchars с содержимым htmlspecialchars.php для экранизации тегов и замены путей картинок на полные, нужно в сниппете указать путо до картинок
  3. Создаём чанк rss.item для вывода результатов, содержимое для него в файле rss.item.tpl где заменяем если нужно tv поля для вывода картинок
  • Данный способ выводить RSS не только для хуяндекса, а куда угодно
@TrywaR
TrywaR / main.js
Last active February 14, 2020 15:10
MODX Revo > Обработка картинок в контенте
/*_____________________ VeryLazy ______________________*/
// - Подгрузка изображений в блоках при их показе на экране
block_selector = '.home ._block'; // Селектор блоков
function VeryLazy(){
if ($('html').hasClass('webp')) {
$(document).find(block_selector).each(function(index, element){
if ($(document).scrollTop() > $(this).offset().top - $(window).height()){
$(this).addClass('active').find('img[data-src],img[data-webp]').each(function() {
if ($(this).data().webp)
@TrywaR
TrywaR / Вывод количества товаров в категории.php Вывод количества товаров в категории minishop2 Сниппет получает сумму всех товаров в категории, с учетом мультикатегорий MS2. Можно указать нужную категорию параметром $parent.
<?php
if (empty($parent)) {$parent = $modx->resource->id;}
$pids = array_merge(array($parent), $modx->getChildIds($parent));
$ids = array();
$q = $modx->newQuery('msProduct');
$q->where(array('class_key' => 'msProduct','parent:IN' => $pids,'published' => 1,'deleted' => 0));
$q->select('`msProduct`.`id`');
if ($q->prepare() && $q->stmt->execute()) {
$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
@TrywaR
TrywaR / MODX Revo | Tagger > 404 для страниц без результатов, убрать дубли
Last active August 27, 2019 11:52
MODX Revo | Tagger > 404 для страниц без результатов, убрать дубли
<?php
# Должно быть включено системное событие OnWebPageInit
// $modx->log(modX::LOG_LEVEL_ERROR, print_r($_GET,1));
if (isset($_GET['teg'])){
$return = false;
$arrTags = explode(',', $_GET['teg']);
if (count($arrTags) > 1){
# Если больше 1 тега то возвращяем 404
$return = true;