Евгений Лазарев

Евгений Лазарев

С нами с 06 августа 2018; Место в рейтинге пользователей: #417

Авторизация без пароля

Добрый день. Подскажите пожалуйста куда копать. Нужно сделать программную авторизацию пользователя в modx при авторизации по oauth2. То есть сторонний сайт выдает нам токен, время действия и логин к примеру. В какую сторону копать как правильно авторизовать пользователя в MODX?
$user->addSessionContext('mgr');
Евгений Лазарев
16 мая 2024, 20:43
modx.pro
252
0

Запрос xpdo с условием при сложении значений двух столбцов

Добрый день подскажите может кто знает. Нужно сделать SQL запрос при этом условием должно быть сумма значений двух столбцов.
+----+---------+-----------+
| id | width | length |
+----+---------+-----------+
| 1 | 0 | 300 |
| 2 | 100 | 400 |
| 3 | 200 | 500 |
| 4 | 300 | 600 |
| 5 | 100 | 700 |
| 6 | 200 | 800 |
| 7 | 300 | 900 |
+----+---------+-----------+
Такой код к сожалению не работает:
$q = $modx->newQuery('Test');
$q->where([
    'width + length:<=' => 1000,
    'length - width:>=' => 500,
]);
$modx->getCollection('Test', $q);
Евгений Лазарев
26 декабря 2023, 16:15
modx.pro
413
0

Не выводятся значения superboxselect

Возникла такая проблема. Пытаюсь вывести множественный выбор в выпадающем списке в профиле пользователя:
Тип поля:
'building' => array(
                        'dbtype' => 'varchar',
                        'precision' => '255',
                        'phptype' => 'json',
                        'null' => true,
                    ),
В результате выводятся 2 тега но пустые без текста.


P.S. В БД все пишется корректно: '[«1»,«2»]'

Так же не понятен тот момент как сделать подгрузку значений при обновлении страницы, поскольку значениями являются id а выводом должно быть value
Евгений Лазарев
04 июля 2023, 13:51
modx.pro
363
0

RelatedObjects

Подскажите знающие люди. Недавно обнаружил, что если получить связанный обьект (в данном примере ItProfile), то поле, по которому происходит связывание не изменить. Как можно выкрутиться в данной ситуации или все решать через getObject?
Пример из таблицы:
<object class="hdOrderData" table="hd_orders" extends="xPDOSimpleObject">
		<field key="external_id" dbtype="varchar" precision="50" phptype="string" null="false"/>
		<field key="it" dbtype="int" attributes="unsigned" phptype="integer" null="true"/>
		<field key="createdon" dbtype="datetime" phptype="datetime" null="true" />

		<aggregate alias="Order" class="hdOrder" local="id" foreign="id" cardinality="one" owner="foreign"/>
		<aggregate alias="ItProfile" class="modUserProfile" local="it" foreign="internalKey" cardinality="one" owner="foreign"/>
	</object>
Пример из кода:
if (!$profile = $this->order->getOne('ItProfile')) return;
if ($profile->get('isVacation')){
	$this->order->set('it', $profile->get('vac_help')); // было 5 записываем 4 -> запишется 5
}
$this->order->save();
Евгений Лазарев
03 марта 2023, 15:07
modx.pro
341
0

Плагин для мультидоменности

Подскажите хорошее решение для мультидоменности (города) по схеме perm.site.ru.
Есть много дополнений, но какое на ваш взглад более рациональное. Подход с контекстами не предлагать — не самое гибкое решение.
Евгений Лазарев
20 января 2023, 16:52
modx.pro
713
0

Странное поведение xPDOObject при создании таблицы

Подскажите может кто встречался с таким. Заполняю schema.xml и указываю тип xPDOObject чтобы не создавался id. При этом пытаюсь содать таблицу и получаю в ответ: «Could not create table `hd_directory_links`
SQL: CREATE TABLE `hd_directory_links` (`id` INTEGER unsigned NOT NULL, `master` INT(10) unsigned NOT NULL, `slave` INT(10) unsigned NOT NULL, PRIMARY KEY (`id`), PRIMARY KEY (`master`,`slave`)) ENGINE=InnoDB»

код в схеме следующий:
<object class="hdDirectoryLink" table="hd_directory_links" extends="xPDOObject">
		<field key="master" dbtype="int" precision="10" phptype="integer" attributes="unsigned" null="false" index="pk"/>
		<field key="slave" dbtype="int" precision="10" phptype="integer" attributes="unsigned" null="false" index="pk"/>

		<index alias="master" name="type" primary="true" unique="true" type="BTREE">
			<column key="master" length="" collation="A" null="false"/>
			<column key="slave" length="" collation="A" null="false"/>
		</index>

		<aggregate alias="Master" class="hdDirectorySetting" local="master" foreign="id" owner="foreign" cardinality="one"/>
		<aggregate alias="Slave" class="hdDirectorySetting" local="slave" foreign="id" owner="foreign" cardinality="one"/>
	</object>
Евгений Лазарев
12 октября 2022, 19:25
modx.pro
678
0

Необходимость атрибута precision в schema.xml

Доброе время суток коллеги. Пишу очередную схему для БД и задумался над необходимостью написания атрибута precision для полей типа tinyint, int и bigint
Например выдержка из minishop2:
<field key="vendor" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="true" default="0"/>
<field key="new" dbtype="tinyint" precision="1" attributes="unsigned" phptype="boolean" null="true" default="0"/>
И напрашивается вопрос: А собственно для чего эти ограничения если они никак не работают? В поле «new» я могу записывать число 0-255, а в «vendor» 0-4294967295.
Евгений Лазарев
28 сентября 2022, 14:06
modx.pro
849
0

Переменная в пути обьекта в FENOM

Подскажите, может кто знает как подставить переменную в путь объекта?

Например итоговый вывод такой: $resp->material->wall->width, но нужно что-то на подобие $resp->material->($type)->width. То есть часть пути объекта является переменной. Всю голову сломал.

Вижу, что есть не понимание — пожалуй напишу детский пример.
Есть 3 значения в объекте $resp, которые нужно перебрать: wall, ceil, floor методом foreach. Внимание вопрос: как можно подставить переменную чтобы fenom сработал?
{foreach ['wall','ceil','floor'] as $type}
	{$resp->material->($type)->width}
{/foreach}
Евгений Лазарев
26 июля 2022, 14:09
modx.pro
645
0

Авторизация для RESTapi

Подскажите, каким образом можно защитить REST на modx?
Почитал тут про кучу разных способов от Basic до страшный OAuth2 и JWT. Что бы вы посоветовали?
Евгений Лазарев
05 июля 2022, 18:11
modx.pro
565
0

Подключение к двум modx для синхронизации

Может кто сталкивался?
Есть 2 проекта на одном серваке. Есть ли возможность с нового проекта через modalConsole подключиться к старому имея на вооружении такие же конструкции как и в новом: $modx_old->getObject('modResource', $id) — но с данными от старого проекта.
P.S. Хочу забрать данные с базы старого проекта, но перебрав и видоизменив загрузить на новый.
Евгений Лазарев
24 июня 2022, 18:36
modx.pro
1
1 055
0