Не выдает город по ip

Здравствуйте, использую код

$api_key = 'ВАШ_ТОКЕН';
$ip_address = $_SERVER['REMOTE_ADDR'];

$url = 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/iplocate/address?ip=' . $ip_address;

$options = [
    'http' => [
        'header' => "Content-Type: application/json\r\n" .
                    "Authorization: Token " . $api_key . "\r\n",
        'method' => 'GET'
    ]
];

$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$data = json_decode($response, true);

if (isset($data['location']['data']['city'])) {
    return "Город посетителя: " . $data['location']['data']['city'];
} else {
    return "Не удалось определить город";
}
токен обновлял… в обычном файле index.php на сервере работает код, в mox revo в сниппете никак не хочет работать, выдает «Не удалось определить город. „

file_get_contents работает
cURL тоже работает.
Игорь
08 сентября 2023, 18:24
modx.pro
359
0

phpthumb как получить превьюшку без лишнего поля вокруг

Добрый вечер!
Делаю превьюшки через phpthumbon
[[+image:phpthumbon=`w=640&h=640&f=png&zc=0&far=TL`]]
Картинок много и все разные (вертикальные, горизонтальные, квадратные)…
Нужно вывести их «как есть» без полей вокруг.
Если делать как у меня в примере — вокруг картинок появляется пустое поле. т.е. они вписаны в квадрат.
А мне нужно, чтобы просто получалась превьюшка без лишних полей вокруг.

Подскажите правильный код пожалуйста.
Олег
07 сентября 2023, 21:16
modx.pro
407
0

mSync и Сбис - импорт остатков по складам

Здравствуйте!
К сожалению, период бесплатной поддержки автора закончился, поэтому пишу сюда. Есть ли здесь люди, разбирающиеся в мСинке? Нужен совет.
Задача была такая — синхронизировать Сбис и сайт. mSync для этого вполне подошел. Затем клиенту понадобилось выгружать остатки отдельно по каждому складу. И тут возник вопрос, как это сделать.
pandaworks
06 сентября 2023, 12:24
modx.pro
2
449
0

[СДЕЛАЙ САМ] Поиск с mSearch2 и SendIt без перезагрузки страницы и динамическими параметрами

Приветствую, думаю ни для кого не секрет, что mSearch2 не умеет показывать результаты поиска без перезагрузки страницы, а pdoPage не умеет «на лету» менять параметры. На своём сайте я захотел сделать морфологический поиск услуг без перезагрузки, с постраничной навигацией и возможностью выбирать категорию поиска. Ниже опишу чтобы для этого было предпринято.
Артур Шевченко
06 сентября 2023, 10:47
modx.pro
3
856
+13

MiniShop3 для MODX3. Что нового.

Всем привет. Продолжаю разработку компонента, а заодно рассказываю — что нового.

Если прошлые месяцы основное внимание было уделено админке и администрированию, то в августе фокус внимания сместился на фронт.

Начал с того, что переделал сниппет msProducts. Подробности ниже.
Николай Савин
05 сентября 2023, 12:03
modx.pro
935
+21

Как Увеличить скорость работы сайта

Всем доброго времени суток. Очень надеюсь на помощь людей которые занимались оптимизацией скорости работы сайта на modx.

Что имеем.
MODX Revolution 2.8.5
Minishop2 последняя версия

Фильтрация работает через mfilter2

Имеет категория товаров на ней с помощью плагина debugparser смотрим скорость отдачи страницы
333
Другая категория выглядит вот так
234

Все перевел на fenom и на файлы. Но скорость все равно оставляет желать лучше.

Товаров всего около 7к на двух языках.

Подскажите что можно сделать для увеличения скорости работы сайта. Спасибо.
Maks
05 сентября 2023, 06:02
modx.pro
531
0

Подскажите как брать ошибку!? PHP warning: Invalid argument supplied for foreach()

Добрый вечер!

Пытаюсь спарсить XML фаил с помощью catalogfill вроде в логах показывает массив но не добавляет их в TV:

[0] => Array
(
[] => Array
(
[0] => true
[1] => opt.globusceramica.ru/catalog/grespania/alabaster/13/
[2] => 3790
[3] => RUR
[4] => 96
[5] => 45x120
[6] => Глянцевая
[7] => Мрамор
[8] => Бежевый
[9] => 45
[10] => м2
[11] => 5830
)

[tv1] => opt.globusceramica.ru/upload/iblock/cd3/1ntxgpep3rui5c6xajqg8f14clrrltqw.jpg
[pagetitle] => ALABASTER ALABASTER BEIGE 45х120
)

Кусок из XML фаила именно параметры с названием не хочет
<param name="Размер"45x120</param>
Кусок из XML
<offer id="14" available="true">
     <currencyId>RUR</currencyId>
     <categoryId>96</categoryId>
     <picture>http://opt.globusceramica.ru/upload/iblock/ef2/c26wewu3mp4gqubj539u1n5i7s304o4u.jpg</picture>
     <name>ALABASTER ALABASTER TEBAS 45х120</name>
     <param name="Размер">45x120</param>
     <param name="Поверхность">Глянцевая</param>
     <param name="Рисунок">Мрамор</param>
     <param name="Color">Бежевый</param>
     <param name="РРЦ">9999</param>
 </offer>

Ошибку выдает в этом месте foreach($node as $k => $v) {:

* Переводит XML объект в массив, сохраняет значения и их xpath
     * 
     */
    public function parceXML($xmlObject, $out=array(), $level=0){
        
        //foreach($xmlObject->attributes() as $a => $b) {
        //    echo $a,'="',$b,"\"\n";
        //}
        
        foreach ((array) $xmlObject as $key => $node){
            
            //Атрибуты элемента
            if($key=='@attributes'){
                foreach($node as $k => $v) {
                    $this->keys[1][] = '@attributes.'.$k;
                    $this->values[] = trim($v);
                }
                continue;
            }
            
            if(is_object($node) || is_array($node)){
                
                //var_dump(count($this->keys[0]),$level,$key,implode('/',$this->keys[0]));
                //var_dump(implode('/',$this->keys[0])); echo "\n\n";
                
                //убираем с конца массива ключей значения, которые не соответствуют текущему уровню вложенности
                if(/*$level > 0 && */count($this->keys[0]) > $level){
                    $this->keys[0] = $this->array_mpop($this->keys[0],(count($this->keys[0]) - $level));
                }else{
                    $level = count($this->keys[0]);
                }
                if(!is_numeric($key)) $this->keys[0][] = trim($key);
                
                $out[$key] = $this->parceXML($node,$out,$level+1);
                
            }else{
                $this->keys[1][] = implode('/',array_merge($this->keys[0],array($key)));
                $this->values[] = trim($node);
                $out[$key] = trim($node);
            }
        }
        
        return $out;
    }
Подскажите где исправить!?
Дмитрий
04 сентября 2023, 18:47
modx.pro
707
0

Как написать условие if на множество ресурсов и родителей на Fenom

Всех приветствую, есть поле артикул, которое не нужно выводить у ряда категорий, на данный момент условие реализовано следующим образом:
{set $key = ["31","32" ,"32" ,"33" ,"34"]}
{if $_modx->resource.id in list $key}
<div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
То есть главный родитель 31, а остальные — его подкаталоги. Но если подкаталоги добавляются, что бы не лезть в шаблон, можно ли как то сделать что бы у всех подкаталогов родителя 31 скрывался артикул?
Константин
04 сентября 2023, 11:49
modx.pro
1
1 067
0

Проблемы с ajax пагинацией в pdoPage

Включаю ajax пагинацию при скроле и вижу эффект такой, что как бы элементы на странице обновляются, но новые элементы не появляются, показываются только те же.
Я включил:
pdoPage.callbacks.after = function (config, response) {
  console.log('Конфиг после загрузки!', config);
  console.log('Ответ от сервера!', response);
}
Вижу, что ответ от сервера корректный, т.е. получаю новые элементы, но на странице их не вижу. Пробовал менять со скрола на кнопку — эффект тот же.

Помогите, куда смотреть.
Алексей
03 сентября 2023, 20:25
modx.pro
368
0

Контент основного языка в Localizator

Приветствую!

Настраиваю плагины Localizator, делаю основной язык Русский и дополнительных 2, затем у ресурсов заполняю на основном языке стандартные поля, а во вкладке Локализации перевод для других двух.

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

Подскажите кто разобрался в плагине правильно ли я делаю или есть способ без проверки на основной язык?
Konstantin
03 сентября 2023, 10:20
modx.pro
632
0