Всего 123 797 комментариев

Денис Усманов
16 апреля 2024, 21:49
0
Карта грузится в iframe, там свои head, body и т.п., это нормально.
Денис Усманов
16 апреля 2024, 21:48
+1
Код, представленный мной, подгружает карту Яндекс от их конструктора, но если делать по API, то там 2 скрипта нужно, первый — сам API

<script src="https://api-maps.yandex.ru/2.1/?load=package.full&lang=ru-RU" type="text/javascript"></script>

Второй, индивидуальные параметры карты, пример:

<script type="text/javascript">
    ymaps.ready(function() {
        var mapexMap = new ymaps.Map('map', {
                center: [55.721190, 52.440409],
                zoom: 16,
                controls: ['zoomControl']
            }),
        myPlacemark = new ymaps.Placemark(
            [55.721190, 52.440409], {
                "iconContent": "",
                "balloonContentBody": "423800, РТ, г.Набережные Челны, Промышленно-коммунальная зона, Индустриальный проезд, 62/21",
                "balloonContentHeader": "АО «КАМАтранссервис»"
            }, {
                // Опции.
                // Необходимо указать данный тип макета.
                iconLayout: 'default#image',
                // Своё изображение иконки метки.
                iconImageHref: '/assets/img/map-marker.png',
                // Размеры метки.
                iconImageSize: [30, 42],
                // Смещение левого верхнего угла иконки относительно
                // её "ножки" (точки привязки).
                iconImageOffset: [-5, -38]
            });
        mapexMap.behaviors.disable('scrollZoom');
        mapexMap.geoObjects.add(myPlacemark);

    });
</script>
al1ve
16 апреля 2024, 21:45
0
ну вроде работает, но почему то создаёт на всю ширину и ненужные теги в виде html, head, body. Если что — сам сайт smnu-vos.ru. Сама карта должна быть в правом блоке. Но спасибо за подсказку.
И этот код нужно поставить вместо стандартного яндексовского?
Денис Усманов
16 апреля 2024, 21:24
+1
Если правильно помню, этот скрипт подгружает карту при скролле после загрузки, если карта (как правило) внизу, то будет работать как надо.

<script>
    let ok = false;
    window.addEventListener('scroll', function() {
        if (ok === false) {
            ok = true;
            setTimeout(()=>{
                let mapScript = document.createElement('script');
                mapScript.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A55fa9cd5f69ce35aa1eabe9bdf02db7fce18bb55c2ae44e2745b1b8b6cee9464&width=100%25&height=577&lang=ru_RU&scroll=true';
                document.getElementById('map').replaceWith(mapScript);
            }
            , 1000)
        }
    });
</script>

Где mapScript.src = '... это подключение скрипта Яндекс.Карты.
Где document.getElementById('map')… — это id элемента, в который надо загрузить карту.
Артур Шевченко
16 апреля 2024, 20:24
2
+2
Если на fenom то как-то так наверное
{set $cats = []}
{foreach $products as $product}
    {set $parent = $product.id | resource: 'parent'}
   {set $productsByCategory[$parent][] = $product}
{/foreach}
{foreach $productsByCategory as $parent => $products}
    {$parent | resource: 'pagetitle'}
    {foreach $products as $product}
       {$product | print}
    {/foreach}
{/foreach}
Дима Касаткин
16 апреля 2024, 17:44
0
Вам бы, коллеги, скооперироваться чтобы список ботов (user agent-ов) общий использовать для botAim и SmartSessions)

Предлагаю, если нужно, захостить его там же, где статистика установки компонентов, в надёжной инфраструктуре одного из крупных ДЦ. Я поспособствую!

Или выпустить список в качестве отдельного пакета, который наследовать, чтобы обновлять средствами MODX.

С каждым годом всё больше и больше проблем от ботов. Ваши решения (Алексея и Андрея) очень помогают, и необходимость в них только растёт!
Наумов Алексей
16 апреля 2024, 14:37
+1
Перенесу и свой ответ тогда уж!:
пару месяцев назад я переписал это всё… сейчас по другому, в github код доступен. Можно даже PR сделать!
Интересная мысль насчет целесообразности создания сессий для ботов… в принципе может они и не нужны… как вариант можно добавить соответствующую настройку в компонент. В общем мысль сохранил.
Wassi Wassinen
16 апреля 2024, 11:37
0
<script>
document.addEventListener('fetchit:success', (e) => { // Добавляем listener на событие успешной обработки формы
    const { form } = e.detail; // Получаем форму

    switch (form.getAttribute('id')) {
        case 'form-1':
            // Обрабатываем только форму с id="form-1"
            // Тут код с отправкой целей
            break;
        case 'form-2':
            // Обрабатываем только форму с id="form-2"
            // Тут код с отправкой целей
            break;
    }
})
</script>

Я могу это так вставить на страницу с формами?
Баха Волков
16 апреля 2024, 11:07
0
А вообще есть бесплатный компонент ReachGoal в котором реализована интеграция с FetchIt
Баха Волков
16 апреля 2024, 11:05
+1
например так

document.addEventListener('fetchit:success', (e) => { // Добавляем listener на событие успешной обработки формы
    const { form } = e.detail; // Получаем форму

    switch (form.getAttribute('id')) {
        case 'form-1':
            // Обрабатываем только форму с id="form-1"
            // Тут код с отправкой целей
            break;
        case 'form-2':
            // Обрабатываем только форму с id="form-2"
            // Тут код с отправкой целей
            break;
    }
})
Андрей Степаненко
16 апреля 2024, 10:02
+1
Перенос из modx.pro/components/24542#comment-142930

Проанализировал код

1. Во время удаления сессий выполняется N запросов, если быть точным то сколько прописано сигнатур user agent столь и будет выполнено запросов
2. Поле user_agent не индексное, то есть это будут медленные запросы



Еще хотел узнать, зачем для ботов создавать сессию?
И потом её удалять, целесообразность этого функционал не понимаю
особенно с учетом тяжести запросов в цикле
Наумов Алексей
16 апреля 2024, 10:00
0
так если про smartSessions вопрос — то я пару месяцев назад переписал это всё… сейчас по другому, в github код доступен. Можно даже PR сделать! и да, если еще вопросы будут — давай переедем в соседнюю тему, чтобы Володю не дергать)
Володя
16 апреля 2024, 08:52
0
Привет, ты темой ошибся. Твой коммент вот сюда должен быть адресован modx.pro/components/22098
Андрей Степаненко
16 апреля 2024, 08:25
0
Проанализировал код

1. Во время удаления сессий выполняется N запросов, если быть точным то сколько прописано сигнатур user agent столь и будет выполнено запросов
2. Поле user_agent не индексное, то есть это будут медленные запросы



Еще хотел узнать, зачем для ботов создавать сессию?
И потом её удалять, целесообразность этого функционал не понимаю
особенно с учетом тяжести запросов в цикле
Андрей Степаненко
16 апреля 2024, 08:00
+1
git submodule
прикольно)) Один раз читал про это, но руки не дошли чтобы использовать
Спасибо за решение)

Опять же это то о чем я и писал, один из вариантов работы, где требуется содержание сервера и развернутого modx

Безусловно я не коем образом не сравниваю, в том плане что твое решение хуже или лучше) думаю сам да же где то попробую аналогично использовать modx-build-environment-gui.
Владимир
15 апреля 2024, 21:51
0
Ок, спасибо за совет. Тогда напишу свой коннектор
Артур Шевченко
15 апреля 2024, 21:44
0
Самый простой вариант купить и установить компонент. Второй по простоте вариант, слать запрос на свой коннектор и получать всё что тебе нужно. А через action минишопа галерею ты не получишь, потому что там просто нет такого метода.