Андрей Шевяков
С нами с 28 сентября 2016; Место в рейтинге пользователей: #45Подгрузка чанков по мере прокрутки страницы
Добрый вечер. Работаю в ModX 2.8.7
В ходе оптимизации сайта для Google столкнулся с проблемой — слишком длинная главная страница.
Сама страница состоит из большого и длинного шаблона с разными html блоками. В итоге Google ругается, что слишком длинная страница, долгое время загрузки и так далее…
Если бы на стр были всплывающие окна, блоки типа блога, товаров, новостей — видел варианты их подгрузки по мере прокрутки страницы.
НО
КАК организовать подгрузку ЧАНКОВ по мере прокрутки страницы?
Т.е. пример: Google загружает слайдер, меню и еще какой-то блок. Прокручиваем дальше… На Ajax происходит подгрузка блока О компании, проматываем, подгружается Преимущества, продолжаем спускаться… подгружаются… Загружается блок Footer. Страница кончилась…
В ходе оптимизации сайта для Google столкнулся с проблемой — слишком длинная главная страница.
Сама страница состоит из большого и длинного шаблона с разными html блоками. В итоге Google ругается, что слишком длинная страница, долгое время загрузки и так далее…
Если бы на стр были всплывающие окна, блоки типа блога, товаров, новостей — видел варианты их подгрузки по мере прокрутки страницы.
НО
КАК организовать подгрузку ЧАНКОВ по мере прокрутки страницы?
Т.е. пример: Google загружает слайдер, меню и еще какой-то блок. Прокручиваем дальше… На Ajax происходит подгрузка блока О компании, проматываем, подгружается Преимущества, продолжаем спускаться… подгружаются… Загружается блок Footer. Страница кончилась…
Localizator: TV и MIGX не переводило, а ларчик оказалось открывался просто
Столкнулся с одной особенностью работы Localizator с MIGX и TV.
Все никак не получалось заставить Localizator правильно переводить MIGX поля и в некоторых случаях отдельные TV поля. Перепробовал кучу вариантов, пытался выводить через выводы сниппетов localizator, pdoResources, getImageList. Потратил пару суток впустую, кучу нервов и сил.
А в итоге оказалось все просто. Случайно обнаружил что некоторые TV переводит, а некоторые нет.
В некоторых местах я MIGX выводил следующим образом:
В итоге вывод этого кода не переводился как надо, выводился только MIGX не из переводов.
Но если заменить
Все никак не получалось заставить Localizator правильно переводить MIGX поля и в некоторых случаях отдельные TV поля. Перепробовал кучу вариантов, пытался выводить через выводы сниппетов localizator, pdoResources, getImageList. Потратил пару суток впустую, кучу нервов и сил.
А в итоге оказалось все просто. Случайно обнаружил что некоторые TV переводит, а некоторые нет.
В некоторых местах я MIGX выводил следующим образом:
{set $rows = json_decode($_modx->resource.id | resource : 'migx_why_us_list', true)}
{foreach $rows as $idx =>$row1 index=$index}
<li>
{$row1.textprichini}
</li>
{/foreach}где migx_why_us_list — MIGX поле.В итоге вывод этого кода не переводился как надо, выводился только MIGX не из переводов.
Но если заменить
$_modx->resource.id | resource : 'migx_why_us_list' на $_modx->resource.migx_why_us_list то все начинает работать как надо. Задваиваются письма
При регистрации пользователя через LOGIN подключил сниппет '&postHooks=`email_reg_user`'
Как сделать так чтобы второе не уходило админу
<?php
$email = $hook->getValue('email');
$username = $hook->getValue('username');
$password = $hook->getValue('password');
$fullname = $hook->getValue('fullname');
$phone = $hook->getValue('phone');
//отправляем админу
$message_admin = $modx->getChunk('adminEmailTemplate_reg',array(
'email' => $email,
'fullname' => $fullname,
'username' => $username,
'phone' => $phone
));
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message_admin);
$modx->mail->set(modMail::MAIL_FROM,'noreply@site.ru');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Сайт');
$modx->mail->set(modMail::MAIL_SUBJECT,'регистрация участника');
$modx->mail->address('to', 'admin@site.ru');//$modx->getOption('emailsender'));
$modx->mail->setHTML(true);
$modx->mail->send();
//отправляем пользователю
$message = $modx->getChunk('myEmailTemplate_reg',array(
'email' => $email,
'fullname' => $fullname,
'username' => $username,
'password' => $password,
'phone' => $phone
));
//$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'noreply@site.ru');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Сайт');
$modx->mail->set(modMail::MAIL_SUBJECT,'регистрация');
$modx->mail->address('to', $email);
$modx->mail->setHTML(true);
$modx->mail->send();проблема в том что на почту (администартора) admin@site.ru приходит два письма adminEmailTemplate_reg и myEmailTemplate_regКак сделать так чтобы второе не уходило админу
[miniShop2 + mspTinkoff] Можно ли вызвать оплату заказа через API ?
Добрый день. Создаю заказ через API modx примерно так:
Как сделать так, чтобы после создания заказа происходил переход на его оплату? На сайте установлен модуль mspTinkoff.
$miniShop2->initialize($modx->context->key, $scriptProperties);
$miniShop2->cart->clean();
$miniShop2->cart->add(165, 1, $option);
$miniShop2->order->add('receiver', 'Заказ доставки из калькулятора');
$miniShop2->order->add('email', 'test@test.io');
$miniShop2->order->add('phone', $fullInfo['Телефон']);
$miniShop2->order->add('comment', $fullInfo['ФИО и комментарий']);
$miniShop2->order->add('text_address', $text);
$miniShop2->order->add('payment', 2);
$miniShop2->order->add('delivery', 1);
$miniShop2->order->submit();Как сделать так, чтобы после создания заказа происходил переход на его оплату? На сайте установлен модуль mspTinkoff.
Получение всех TV полей ресурса из конкретной категории и вывод в чанк
Всем привет. Хочу поделиться сниппетом, который позволяет получить все TV поля ресурса из определённой категории и оформить вывод в чанк. Задача по сути простая, но те решения которые находил в интернете (например тут или тут или тут) немного не о том и мне не подходят, тоесть готового кажется нет.
Да, её можно решить с помощью MIGX, но это мне тоже не совсем подходило (об этом ниже). Поэтому решил написать этот сниппет. Единственная сложность была сформировать запрос в БД, так как опыта небыло от слова совсем, поэтому воспользовался gpt чатом, ну а дальше отправить результаты в чанк проблем не составило. Возможно кому-то будет полезно.
Да, её можно решить с помощью MIGX, но это мне тоже не совсем подходило (об этом ниже). Поэтому решил написать этот сниппет. Единственная сложность была сформировать запрос в БД, так как опыта небыло от слова совсем, поэтому воспользовался gpt чатом, ну а дальше отправить результаты в чанк проблем не составило. Возможно кому-то будет полезно.
Как вывести похожие товары по списку опций?
Подскажите пожалуйста, как реализовать вывод похожих товаров Minishop2 в карточке товара, у которых отмечены такие же опции, как и у товара в текущей карточке? Опции в админке выведены чекбоксами.
Вероятно опции нужно перечислить в WHERE через pdoPage, но пока ничего не выходит.
Вероятно опции нужно перечислить в WHERE через pdoPage, но пока ничего не выходит.
Как передать переменные внутрь чанка из сниппета и заполнить с помощью fenom?
Есть снипет, в нём есть переменные, их нужно передать в чанк, где они подставятся, и вернётся отрендеренный сам чанк. Пытался так.
$pdoTools = $modx->getParser()->pdoTools;
$fenom = $pdoTools->getFenom();
$data['count_products'] = count($data['products']);
$fenom->assignAll([
'num' => $data.num,
'date' => $data.date,
'products' => $data.products,
]);
$renderedHtml = $pdoTools->getChunk('pdfHtmlTemplate');Ошибки нет, просто не срабатывает после строчки назначения переменных, а если вывести переменные «pdoTools,fenom» то ничего не покажет. mfilter2 — создание фильтра по алфавиту и вывод результатов по первой букве поля pagetitle
Всем привет! Столкнулся с задачей реализовать фильтрацию по первой букве ресурса (из поля pagetitle) в моём случае это фильтрация пород собак, но готового решения не нашёл. Вдохновился документацией и очень похожим решением в этой статье. Может кому будет полезно.
Яндекс.Карты. Меняем метку при наведении нестандартным способом расширяя содержимое метки контентом!
Делюсь наработкой, на которую потратил несколько часов пока бился над решением проблемы. Может кому пригодится, да и для себя чтобы не забыть (пока память свежа изложить полученные знания в шпаргалку).
Понадобилось реализовать поведение карты чтобы при наведении на метку к метке справа добавлялся свой блок с содержимым (так называемый iconContentLayout). Пример:

Не нашел нигде как сделать так. В официальной документации было только примеры изменения иконки метки через замену iconImageHref
Понадобилось реализовать поведение карты чтобы при наведении на метку к метке справа добавлялся свой блок с содержимым (так называемый iconContentLayout). Пример:

Не нашел нигде как сделать так. В официальной документации было только примеры изменения иконки метки через замену iconImageHref