Станислав
да как ты их разделишь
Станислав
поддерживаю
Артур
Есть много ресурсов, 30 городов и в каждом городе 2 адреса и надо чтобы у каждого ресурса появилось 30 адресов по одному на город.
Станислав
епта, дак ты и ставь задачу
Артур
епта, дак ты и ставь задачу
Я думал на примере проще будет)))
Станислав
)))
Станислав
неа, непрокатило)
Артур
Так как решить задачу-то лучше всего?)))
Алексей
Есть много ресурсов, 30 городов и в каждом городе 2 адреса и надо чтобы у каждого ресурса появилось 30 адресов по одному на город.
т.е. тебе в ресурс нужно записать рандомный город с одним каким-то рандомным адресом?
Артур
Только не 1 город а все 30 и в каждом рандомный адрес
Алексей
т.е. все 30 городов с рандомными адресами?
Алексей
ну
Алексей
епта.
Алексей
ну если у тебя адреса реально такие: $cities = array( 'city1' => array( 'addrerss1', 'address2' ), 'city2' => array( 'addrerss1', 'address2' ), 'city3' => array( 'addrerss1', 'address2' ) );
Артур
Адрес это строка
Алексей
то foreqch($cities as $town => $adrmany){ $rando = rand(0,1); $randadr = $adrmany[$rando]; $gotores= [ 'town' => $town, 'adr' => $randadr ] }
Алексей
думаю смысл понятен
Артур
думаю смысл понятен
Ага. Спасибо👍
Алексей
незачто
Anonymous
У кого-нибудь была ошибка, что вместо {$price} выводится 1? Также вместо {$_modx-.resource.price}. Хотя цена 2050.
Anonymous
И так со всеми товарами
Anonymous
Вот здесь у чела тоже такая ошибка: https://modx.pro/help/21172 Но решил он ее как-то странно. Костылем.
Anonymous
Хочется другое решение
Артур
Array_chunk?
Не понял?
Yurij
Не понял?
https://www.php.net/manual/ru/function.array-chunk.php
Yurij
Теперь понял)))
Далее описиваеш логику. Делал подобное на ларе. Нужно было выводить адреса на страницах, в зациленом порядке.
Екатерина
Всем привет. Кто-нибудь сталкивался с тем, что один скрипт, долго исполняемый, вешает весь сайт?
Yurij
Теперь понял)))
Если тебе поможет
Артур
Yurij
У кого-нибудь была ошибка, что вместо {$price} выводится 1? Также вместо {$_modx-.resource.price}. Хотя цена 2050.
Давайте угадаю где-то в коде переопределяется или пересекается price
Yurij
Всем привет. Кто-нибудь сталкивался с тем, что один скрипт, долго исполняемый, вешает весь сайт?
Привет, когда работал на MODX, очень часто встречал такой “гавнокод”
Alisa
Если зависает не намертво - debugParser в помощь.
Екатерина
почему один скрипт может повесить весь сайт? как же возможнотсь nginx держать множественное пдключение а маськи по умолчанию 151 коннект?
Alisa
Если намертво заблокировать таблицу с сессиями, то эти лимиты не важны.
Alisa
Аналогично, при PHP-сессии (без БД) будет лимит в 1 запрос от 1 юзера, если тем нужна сессия.
Екатерина
а как сделать, чтобы скрипт не блокировал таблицу с сессиями?
Alisa
Не засерать её.
Alisa
Закрывать при AJAX запросах заранее, если не нужна.
Alisa
Ещё может быть потеря RAM/свободного места под кеш БД.
Екатерина
таблица сессий вообще пуста
Alisa
Это если дофига жирных SELECT-ов с filesort или нет нормальных индексов.
Екатерина
селект только один
Екатерина
и только один юзер запускает скрипт
Екатерина
и скрипт вешает весь сайт
Екатерина
EXPLAIN SELECT ...
а это зачем? если сессии в таблице не хранятся?
Alisa
Чтобы смотреть, что он делает. Может там временная таблица с миллионом записей на диск не влезает?
Alisa
Или fullscan'ит этот миллион по пять раз на запрос.
Екатерина
нет, это все не то, запрос просто один раз берет 200 товаров и дальше пошли курлы к апи стороннего сайта. все дальнейшие обращения к бд закомментированы - чтобы убедиться, что дело не в бд
Артур
Кто скажет почему в чанке вот так [[+choosenCity]] выводит значение, а вот так {$choosenCity} {$_modx->getPlaceholder('choosenCity')} {$_pls['choosenCity']} {'choosenCity' | placeholder} не выводит?
Андрей
Да
А pdoTools в нём подключен?
Артур
getTickets вот этот сниппет, наверное подключен. Весь чанк на феноме написан
Артур
А сам этот плейсхолдер откуда берётся?
Я его на OnHandleRequest устанавливаю
Артур
Можно зайти с другой стороны есть города которые переключаются seoFilter мне нужно в чанке получить текущий город, никакой геолокации нет, город есть в url. Как его можно оттуда вытащить, если не в плагине?
Андрей
Я его на OnHandleRequest устанавливаю
Ну тут видимо что то такое - https://modzone.ru/blog/2015/12/18/methods-of-working-with-placeholders/#comment-391
alexey1m
привет, можно ли контекст ресурса из админки поменять?
Alisa
Да, перетащить мышкой.
Екатерина
Ну, так может сервисы долго отвечают. Не было такой версии?
А почему это влияет на сайт MODX? С ним же не происходит общения
Екатерина
Екатерина
Для примера: если на ларавел сутками крутятся парсеры с курлами - это никак не влияет на работу приложения, и люди могут взаимодействовать с сайтом сколько угодно раз. А один скрипт, вызывающий MODX, вешает работу веб-сервера для всего сайта на модекс для всех пользователей
Екатерина
Дело в том, что не должен блокироваться доступ к сайту для всех остальных, на мноядерном то впс
Anonymous
Почему первый return возвращает "1". А если его закомментировать, отработает второй return. И он возвращает правильную цену? <?php return $modx->resource->get('price'); $obj = $modx->getObject('msProduct', $modx->resource->id); return $obj->get('price');
Alisa
Проверяйте подряд всю цепочку, от запроса... Смотрите логи веб-сервера и MODX на наличие ошибок.
Alisa
200 товаров, если они через xPDO объекты - довольно много. Примерный потолок для 128 RAM около 300-400 товаров в таком виде.
Alisa
По-умолчанию у CURL нет настроек для таймаутов. В laravel обычно используют обёртки (например guzzle) которые их проставляют.
Екатерина
Запрос от кого кому берет 200 товаров? jS php ?
Запрос на PHP через newQuery отрабатывает в доли секунды, больше обращения к сайту нет, дальше крутятся просто курлы к апи стороннего сайта