Евгений Лазарев
С нами с 06 августа 2018; Место в рейтинге пользователей: #417Авторизация без пароля
Добрый день. Подскажите пожалуйста куда копать. Нужно сделать программную авторизацию пользователя в modx при авторизации по oauth2. То есть сторонний сайт выдает нам токен, время действия и логин к примеру. В какую сторону копать как правильно авторизовать пользователя в MODX?
$user->addSessionContext('mgr');
Запрос 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 |
+----+---------+-----------+
Такой код к сожалению не работает:
+----+---------+-----------+
| 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);
Не выводятся значения superboxselect
Возникла такая проблема. Пытаюсь вывести множественный выбор в выпадающем списке в профиле пользователя:
Тип поля:
P.S. В БД все пишется корректно: '[«1»,«2»]'
Так же не понятен тот момент как сделать подгрузку значений при обновлении страницы, поскольку значениями являются id а выводом должно быть value
Тип поля:
'building' => array(
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'json',
'null' => true,
),
В результате выводятся 2 тега но пустые без текста. P.S. В БД все пишется корректно: '[«1»,«2»]'
Так же не понятен тот момент как сделать подгрузку значений при обновлении страницы, поскольку значениями являются id а выводом должно быть value
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();
Плагин для мультидоменности
Подскажите хорошее решение для мультидоменности (города) по схеме perm.site.ru.
Есть много дополнений, но какое на ваш взглад более рациональное. Подход с контекстами не предлагать — не самое гибкое решение.
Есть много дополнений, но какое на ваш взглад более рациональное. Подход с контекстами не предлагать — не самое гибкое решение.
Странное поведение 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»
код в схеме следующий:
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>
Необходимость атрибута precision в schema.xml
Доброе время суток коллеги. Пишу очередную схему для БД и задумался над необходимостью написания атрибута precision для полей типа tinyint, int и bigint
Например выдержка из minishop2:
Например выдержка из 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. Переменная в пути обьекта в FENOM
Подскажите, может кто знает как подставить переменную в путь объекта?
Например итоговый вывод такой: $resp->material->wall->width, но нужно что-то на подобие $resp->material->($type)->width. То есть часть пути объекта является переменной. Всю голову сломал.
Вижу, что есть не понимание — пожалуй напишу детский пример.
Есть 3 значения в объекте $resp, которые нужно перебрать: wall, ceil, floor методом foreach. Внимание вопрос: как можно подставить переменную чтобы 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}
Авторизация для RESTapi
Подскажите, каким образом можно защитить REST на modx?
Почитал тут про кучу разных способов от Basic до страшный OAuth2 и JWT. Что бы вы посоветовали?
Почитал тут про кучу разных способов от Basic до страшный OAuth2 и JWT. Что бы вы посоветовали?
Подключение к двум modx для синхронизации
Может кто сталкивался?
Есть 2 проекта на одном серваке. Есть ли возможность с нового проекта через modalConsole подключиться к старому имея на вооружении такие же конструкции как и в новом: $modx_old->getObject('modResource', $id) — но с данными от старого проекта.
P.S. Хочу забрать данные с базы старого проекта, но перебрав и видоизменив загрузить на новый.
Есть 2 проекта на одном серваке. Есть ли возможность с нового проекта через modalConsole подключиться к старому имея на вооружении такие же конструкции как и в новом: $modx_old->getObject('modResource', $id) — но с данными от старого проекта.
P.S. Хочу забрать данные с базы старого проекта, но перебрав и видоизменив загрузить на новый.