Skip to content

Instantly share code, notes, and snippets.

View TrywaR's full-sized avatar

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

View GitHub Profile
@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 / 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 / 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 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 / [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 ] 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 / VeryLazy img load and webp
Created May 3, 2019 00:12
Ленивая подгрузка картинок в зависимости от того видно ли блок с ними пользователю, можно использовать в связке с https://modernizr.com/download?webp-webpalpha-webpanimation-setclasses чтобы если браузер поддерживает webp картинки подгружались в этом формате
/*_____________________ VeryLazy ______________________*/
function VeryLazy(){
$(document).find('.home ._block').each(function(index, element){
if ($(document).scrollTop() > $(this).offset().top - $(window).height()){
$(this).addClass('active').find('img[data-src]').each(function() {
if ($('html').hasClass('webp') && $(this).data().webp)
$(this).attr('src', $(this).data().webp)
else
$(this).attr('src', $(this).data().src)
})
@TrywaR
TrywaR / MODX Revo > AjaxForm html validate fix
Created May 1, 2019 23:13
Исправление подключения js для валидатора html, убираем type="text/javascript"
//Исправление подключения js для валидатора html
//Создаём новый плагин "validate_html_fix", подключаем обработчик события OnWebPagePrerender и далее код плагина
<?php
$content = &$modx->resource->_output;
$content = str_replace('type="text/javascript"','', $content);
$modx->Event->output($content);
@TrywaR
TrywaR / [ MODX | mFilter2 | masonry ]
Created March 30, 2019 20:58
Адаптивная сетка для результатов mFilter2 в modx с помощью masonry
// https://docs.modx.pro/komponentyi/msearch2/snippetyi/mfilter2
// https://masonry.desandro.com/methods.html
$('#mse2_results').masonry({
// options
itemSelector: '.item4',
singleMode: false,
percentPosition: true,
horizontalOrder: true
})
@TrywaR
TrywaR / MODX Revo > сохранение корзины ShopKeeper3 в БД
Last active February 16, 2019 15:37
Ниже плагин, который позволяет хранить корзину клиента в базе данных и сохранять её при разлогировании. При авторизации он суммирует корзину которая была до авторизации с той что сохранена в аккаунте.
<?
switch($modx->event->name) {
# Добавление или удаление товара, расчёт полной цены
case 'OnSHKbeforeCartLoad': # Перед загрузкой корзины, чтобы отследить изменение количества товара, события далее их не могут уловить (:
case 'OnSHKaddProduct': # Добавление товара
case 'OnSHKAfterRemoveProduct': # Удаление товара
# Если пользователь залогинен
$modx->log('Чего то добавили');
$iId = $modx->user->get('id');
if ($iId > 0) {