Обновление пользователя через api MODX

Всем доброго времени суток. Ситуация такая: пишу код в консоли или сниппете, он работает
$data=Array
(
    'username' => 'Ivan',
    'fullname' => 'Иван',
    'email' => 'test@test.ru',
    'phone' => '+7 (999) 999-99-99',
    'id' => 3
);

    $response = $modx->runProcessor('/security/user/update', $data);
    if ($response->isError()) {
      echo $response->getMessage();
    }
Когда я переношу его в core/components/xxx/model/xxx.class.php
public function update() {
$data=Array
(
    'username' => 'Ivan',
    'fullname' => 'Иван',
    'email' => 'test@test.ru',
    'phone' => '+7 (999) 999-99-99',
    'id' => 3
);

    $response = $this->modx->runProcessor('/security/user/update', $data);
    if ($response->isError()) {
      return array('error' => $response->getMessage());
    }
}
Получаю ошибку «Не указано имя пользователя или пароль. Пожалуйста, проверьте введённые данные и попытайтесь снова.»
Подскажите, как правильно сделать?
Евгений Ц.
19 января 2023, 01:47
modx.pro
525
0

Как отвязать все мультикатегории у товара minishop?

Доброго всем вечера. На сайте товары имеют основную категорию и несколько дополнительных. Импортировали через msimportexport. Как отвязать все дополнительные категории? Может кто сталкивался? Плагинов не нашел таких. SQL тоже не вариант т.к. ключ непонятно какой использовать.
Сергей С
18 января 2023, 22:34
modx.pro
655
0

Почему после отключения анонимных сессий не пускает в админку

Здравствуйте, такое дело, у меня на фронте нет никаких регистраций и онлайн кабинетов, поэтому я подумал что мне незачем засорять базу данных анонимными сессиями и выключил эту опцию в настройках сайта. В результате у других менеджеров не получается войти в админку сайта, после ввода логина и пароля форма входа остается на своем месте и не пускает в админку. Включил обратно анонимные сессии и менеджеры смогли войти в админку.
Интересно как связаны анонимные сессии с админкой?

Modx 2.8.4
Konstantin
18 января 2023, 19:55
modx.pro
351
0

MobileDetect и debugParser

Обратил внимание, что при проверке debug-ом страницы, я вижу в том числе и отрендеренные теги {mobile} для десктопной версии. Т.е. mobileDetect уже потом вырезает из фактически отрендеренной страницы лишнее?

То есть бессмысленно рассчитывать на то, что плагин MobileDetect поможет еще и в производительности? Т.е. «тяжелые» менюшки полюбому будут рендериться дважды..(

Кстати, «кастомная модификация» MobileDetect в виде плагина отсюда modx.pro/help/6320
не помогает. Даж не знаю, что делать чтобы избегать рендеринга (и соотв. запросов к БД) в ненужных участках.
Маюри Шиина
18 января 2023, 12:56
modx.pro
608
0

Как избавиться от добавления скрипта miniShop2 непосредственно на страницы сайта?

Добрый день! Собираю все скрипты для сайта бандлером, понадобилось включить в сборку js от miniShop2

Каким образом избавиться от добавления скрипта непосредственно на страницы сайта, которое осуществляется компонентом?
Владимир
18 января 2023, 11:09
modx.pro
489
0

Как изменить размер карточки minishop2

Как изменить размер карточки, когда заходишь с телефона?
1 карточка занимает почти полный экран, а нужно, чтобы отображалось хотя бы 2 в одной строке
Андрей
17 января 2023, 15:54
modx.pro
384
0

Как создавать опции msync из списка?

Есть простой список с опциями синхронизациями, нужно их все заполнить из него быстро.

Что пытался:
1) Через newObject но он вообще не находит объект опции, схему смотрел класс копировал. Пытался через $xpdo-> а так же $modx
$newMsPr = $xpdo->newObject('mSyncProductProperty');
$newMsPr->set('source', 'ТЕСТПРИКОЛ');
$newMsPr->set('type', 1);
$newMsPr->set('target', 'testprikol');
$newMsPr->set('active', 1);
$newMsPr->set('default', 0);
$newMsPr->set('is_multiple', 0);
$newMsPr->set('is_primary', 0);
$newMsPr->save();
2) Пытался с эмулировать запрос. Но получал лишь 401 ошибку. Выполнял в косноли
<?php
    
function transliteCyrilic($value){
    $converter = array(
        'а' => 'a',    'б' => 'b',    'в' => 'v',    'г' => 'g',    'д' => 'd',
        'е' => 'e',    'ё' => 'e',    'ж' => 'zh',   'з' => 'z',    'и' => 'i',
        'й' => 'y',    'к' => 'k',    'л' => 'l',    'м' => 'm',    'н' => 'n',
        'о' => 'o',    'п' => 'p',    'р' => 'r',    'с' => 's',    'т' => 't',
        'у' => 'u',    'ф' => 'f',    'х' => 'h',    'ц' => 'c',    'ч' => 'ch',
        'ш' => 'sh',   'щ' => 'sch',  'ь' => '',     'ы' => 'y',    'ъ' => '',
        'э' => 'e',    'ю' => 'yu',   'я' => 'ya',
    );
 
    $value = mb_strtolower($value);
    $value = strtr($value, $converter);
    $value = mb_ereg_replace('[^-0-9a-z]', '_', $value);
    $value = mb_ereg_replace('[-]+', '_', $value);
    $value = trim($value, '_'); 
 
    return $value;
}


$chars = array("Объем, л", "Номенклатура");

$translated_arr = array();

$createUrl = 'https://example.com/assets/components/msync/connector.php/';
foreach ($chars as $char) {
        
        $params = array(
            'action' => 'mgr/property/create',
            'id' => '',
            'default' => '',
            'source' => $char,
            'type' => 1,
            'target' => transliteCyrilic($char),
            'is_multiple' => 0,
            'is_primary' => 0,
            'active' => 1
        );
   
        $myCurl = curl_init();
        curl_setopt_array($myCurl, array(
            CURLOPT_URL => $createUrl,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($params)
        ));
        $response = curl_exec($myCurl);
        echo var_dump($response);
        die();
        curl_close($myCurl);    
    
}

die();
3) Сделал это всё на питоне, там авторизовывался в адмнке, но так же 401 ошибка.
import re
from requests import Session

LOGIN_CONTEXT = "mgr"
RETURN_URL = "/manager/"
USERNAME = "ashdjkashldkfjhasldf"
PASSWORD = "sadkfas;lkdjfh;lasd"
LOGIN_URL = "https://example/manager/"


msync_coonector = 'https://example/assets/components/msync/connector.php/'


def main():
	chars = {"Объем, л":"obem__l","Номенклатура":"nomenklatura"}

	with Session() as session:
		req = session.post(LOGIN_URL, data={"login_context": LOGIN_CONTEXT , 'returnUrl': RETURN_URL, 'username': USERNAME, 'password': PASSWORD, 'login': "1"})

		for char_key, char_value in chars.items():
			send_params = {
				'action': 'mgr/property/create',
				'id': '',
				'default': '',
				'source': char_key,
				'type': 1,
				'target': char_value,
				'is_multiple': 0,
				'is_primary': 0,
				'active': 1			
			}
			
			create_property = session.post(msync_coonector, data=send_params, timeout=60)

			print(create_property.text)


if __name__ == '__main__':
	main()
4) Пытался прям на месте через повторить запрос создания опции через chrome tools, но даже там получил ошибку 401, уверен что это из-за mod http auth
Vladimir
17 января 2023, 14:07
modx.pro
651
0

Babel ошибка 404

Всем здравствуйте!

Установил Babel, открываю связанные страницы (даже из админки), и получаю 404 ошибку…
Страницы опубликованы
Делал по инструкции:

Вот мой .htaccess

RewriteEngine On
RewriteBase /

# Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ru|en)/favicon.ico$ favicon.ico [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ru|en)/assets(.*)$ assets$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(ru|en)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
В чем могут быть грабли?
Спасибо заранее!
Антон
17 января 2023, 01:10
modx.pro
558
0

Добавить в Tikets возможность создавать вопросы неавторизованным пользователям

14
Приветствую.

В Tickets есть возможность комментировать тикеты неавторизованным пользователям. Для этого в настройках TicketComments надо задать значение 1 в параметре allowGuest. После этого появляются два поля (автор и почта) и можно внести в них данные и откомментировать. А вот задавать вопрос, т. е. создавать тикет неавторизованный пользователь не может. Надо эту ситуацию исправить и сделать возможным задавать вопросы неавторизованным пользователям.
weranda
16 января 2023, 09:50
modx.pro
459
0

Залить json в структуру modx

100 000
Добрый. Нужно распарсить json в структуру modx, создать ресурсы. В json архив описаний: год, автор, текст к ретрофоткам и папка непосредственно с фотографиями. Пишите t.me/shorohi
infora
14 января 2023, 22:48
modx.pro
422
0