Последние темы


Авто генератор большой карты сайта напрямую из базы СРОЧНО

  • ЧТО ЕСТЬ: Стоит Modx Revo + Shopkeeper
    Каждый ресурс это товар. На данный момент всего 51198 ресурсов. 70% архивные товары, но они должны все равно висеть, так как в любой момент что то может появится в наличии и поэтому они не удаляются и не отключается их публикация. Просто меняется статус на странице товара и он не показывается в общем каталоге, но его можно найти в архиве товаров.

    ПРОБЛЕМА: В общем нужно защититься от ботов яндекса и гугла, так как они валят всю нагрузку на сайт в 4-5 раза в течение длительного времени, пока они бегают по всему сайту. Стандартные приложения modx или сторонние сервисы не позволяют сгенерировать карту сайта, так как не все страницы генерируется и создается большая нагрузка.

    ЧТО НУЖНО: Нужна обычная карта сайта в xml, скорее всего разделенная на части, например по 40 тыс единиц в каждом, и запускать автоматически ее генерирование например раз в неделю. Соответственно нужно создать sitemap.xml со ссылкой на две основных карты сайта где все и содержится.
    Не включать только в список не опубликованные ресурсы.

    Делов то на пару часов.

  • Участник @medvedgoff написал в Авто генератор большой карты сайта напрямую из базы СРОЧНО:

    ЧТО НУЖНО: Нужна обычная карта сайта в xml, скорее всего разделенная на части, например по 40 тыс единиц в каждом, и запускать автоматически ее

    В чем проблема сделать несколько карт и указать границы выгрузки?
    Не знаю есть ли в getProducts limit и offset, но у pdoSitemap точно есть.

    Дальше в robots укажите:
    Sitemap: https://site/map.xml
    Sitemap: https://site/map2.xml

    или одну карту, но через протокол

    https://www.sitemaps.org/ru/protocol.html#index

  • @slaad pdositemap и прочие пробовал, просто виснет при генерации sitemap или вообще не грузит. Нужно генерировать отдельно от modx напрямую из базы. Так как сами понимаете разом открыть 50 тыс ресурсов в modx жесть.
    А тут нужно что бы был скрипт который сгенерировал и сохранил в независимый файл xml карту сайта, что бы при открытии уже открывалась сохраненная версия. По крону хорошо бы раз в неделю обновлять его.

  • @medvedgoff
    Сразу видно не читатель))

    Я ведь не предлагаю все 50 к тащить в один заход. Вам нужно разбить это на 10 карт по 5 тыс задав limit и offset.

  • Есть решение, который генерирует xml карты сайта + родительскую. В виде файлов. Делалось для сайта у которого 20 000 товаров. Могу допилить сделать что бы работало по cron.

    Стукните в ПМ.

  • @slaad Я прочитал. Но не допер до вашей идеи. По сути все просто 😃

    Сейчас запили 7 доков по 8 тыс в каждом. Будем ждать, как отреагирует яндекс и гугл на это.

  • Вчера нормально открывал доки и по 8 тыс. Сегодня уже 502 при открытии и 4 тыс. Только по 3 тыс. Хост видимо снижает возможные ресурсы. Из за перегрузов. Или хз почему так. Хост timeweb

  • Нужно смотреть что за ошибка. И смотреть как ресурсы расходуются.
    Сделайте запрос хостеру.
    Возможно вас плавно к другому тарифу подталкивают))

  • Я укзал страницы https://mstrok.ru/api/sitemap.xml

 

Последние комментарии

  • M

    Добрый день. Хочу добавить на сайт онлайн оплату через Яндекс Кассу. Нашел вроде как подходящий компонент , но т.к. его не приобрел еще то не совсем понимаю как подключить кассу к сайту?
    Если не трудно, можно по пунктам расписать?
    Начиная с момента установки компонента.

    Читать далее
  • Вот, может кому-то пригодиться. Скачиваем модуль с оф.сайта яндекс кассы. И в YandexMoneyHook,
    core/components/yandexmoney/model/yandexmoney.class.php и /assets/components/yandexmoney/connector_result.php подключаем пакет shopkeeper3 и выбор заказа по id.
    В общем меняем строки для shk2 на shk3.

    $modx->addPackage('shopkeeper', $modx->getOption('core_path').'components/shopkeeper/model/'); $order = $modx->getObject('SHKorder', $order_id) на $modx->addPackage('shopkeeper3', $modx->getOption('core_path').'components/shopkeeper3/model/'); $order = $modx->getObject('shk_order', $order_id);

    Так же, если не меняли стандартные статусы заказа, то в модули их исчисление начинается с 0, в shk3 с 1. Надо учесть это при обновлении статуса при оплате. (я тупо в БД в таблице с параметрами сниппета YandexMoney поменял нумерацию)

    Читать далее
  • Z

    Спасибо, буду пробовать.

    Читать далее
  • Может такая причина
    http://forum.modx-shopkeeper.ru/topic/717/mysql-5-7-не-работает-query-groupby/4

    Смотрите в журнал ошибок.

    Надо выполнить запрос

    SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

    Читать далее