Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
27 февраля 2017, 10:47
1
+1
Только вместо 16 вставьте свой id ТВ-шки
&select=`modResource.*, CAST(IFNULL(TVzena-nds.value, 0) AS DECIMAL(13,0)) AS zena-nds`
&leftJoin=> `{
    "TVzena-nds":
        {"class":"modTemplateVarResource",
         "on":"TVzena-nds.contentid = modResource.id AND TVzena-nds.tmplvarid = 16"}
    }`
Андрей Коробков
16 февраля 2017, 20:17
3
+3
Права пользователя кешируются в сессию, лечу плагином на OnWebPageInit — форсирую получение прав:
<?php
switch ($modx->event->name) {
    case 'OnWebPageInit':
        if($modx->user->isAuthenticated()){
            $modx->getUser('', true);
        }
        break;
}
Володя
22 января 2017, 21:55
2
+2
просто укажи
&sortby=`COALESCE(clock.price,9999999999)`
Сергей Шлоков
28 сентября 2016, 14:52
1
+3
Признаюсь, я ошибался. Видишь как люди плюсуют твои комментарии. Значит им удобнее твой вариант — пройти все 8 шагов инструкции. А я то по старинке всё готовые дополнения делаю. )
Представь, как твой комментарий приобрёл бы ценность, добавив ты туда пример совершенного кода?
Представь, как мне фиолетово. Судя по комментарию это мне у тебя ещё учится и учится.
П.С. А если серьёзно, то код-то как раз пользователя не волнует. Единицы смотрят под капот. А вот удобство настройки, мне кажется, дело первоочередное. UX forever!
П.П.С. Collections у меня нет, скажу по теме пользователей. Вот такая конструкция
var leftCol = this.items.items[0].items.items[0].items.items[0];
легко заменяется на такую
Ext.getCmp('modx-user-active').ownerCt
И в итоге чекбокс добавить можно так:
$modx->controller->addHtml("
<script type='text/javascript'>
     Ext.ComponentMgr.onAvailable('modx-user-tabs', function() {
          this.on('beforerender', function() {
               var cb = Ext.create({
                     xtype: 'xcheckbox',
                     boxLabel: 'Тестовый чекбокс',
                     description: 'Тестовый чекбокс',
                     name: 'testCheckbox',
                     checked: true
               });
          Ext.getCmp('modx-user-active').ownerCt.insert(0, cb);
         });
     });
</script>
");
Волков Николай
27 июля 2016, 08:22
1
+2
Если через xPDO $order->toArray() — получим значения свойств объекта, а $order->toArray(false, false, true) — построит дерево из значений объекта и значений вообще всех загруженных и связанных с ним объектов. В последнем методе вместо true можно указать цифру, которая будет показывать глубину дерева.

Если чистым php, то get_class_vars($order) — все свойства класса (но будет очень жёсткий результат :-) ), get_class_methods($order) — все методы класса.

Если головой, то посмотреть schema minishop'а и исходники классов.
Илья Уткин
31 марта 2016, 13:21
2
+4
Стало интересно, не поленился, потестил и сделал плагинчик. Спасибо за наводку, сам теперь тоже буду пользоваться))
<?php
if ($modx->event->name == "OnUserFormPrerender") {
    $modx->controller->addHtml('<script type="text/javascript">
        Ext.ComponentMgr.onAvailable("modx-user-tabs", function (e) {
            var items = Ext.getCmp("modx-user-tabs").items;

            // Вкладка -> «тело» вкладки -> колонка
            // 2 - пропускаем ID и username, 0 - ничего не удаляем
            items[0].items[0].items[0].items.splice(2, 0, {
             id: "modx-user-company_name"
             ,name: "company_name"
             ,fieldLabel: _("user_company_name")
             ,xtype: "textfield"
             ,anchor: "100%"
             ,maxLength: 255
            });
        });
    </script>');
}
Fi1osof
07 января 2016, 11:57
20
+12
Если ключ не хотите светить, то однозначно запрос надо слать с вашего сервера на донора. В MODX есть готовый CURL-клиент. Вот код для примера:
$client = $modx->getService('rest.modRestCurlClient');
$result = $client->request('https://ya.ru', '/', 'POST', $params = array('foo'  => 'foo'));
print $result;
Можете с этим кодом к консоли поиграться.
Максим Кузнецов
25 ноября 2015, 17:00
1
+3
Если для бэкэнда, то алерт нужно ~составлять так (в плагине):

$response = array(
			'success' => false,
			'message' => 'Ресурс с данным Id удалять запрещено!',
			'data' => array(),
	);
	echo $modx->toJSON($response);
	exit;
Павел Ширяев
03 октября 2015, 22:53
1
+1
Попробуй изменить ключ archive_with (Использовать PCLZip) на «Да». На некоторых хостингах (Бегет, к примеру) стандартный ZipArchive при локальной сборке пакета почему-то не работает.
Сергей Шлоков
23 сентября 2015, 15:23
1
+2
Как-то так
$output= $modx->runSnippet('pdoPage',$parameters);
$modx->getParser()->processElementTags('', $output, false, false, '[[', ']]', array(), 10);
$modx->getParser()->processElementTags('', $output, true, true, '[[', ']]', array(), 10);
return $output;