Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
13 апреля 2016, 15:11
0
Билет купил.
Кстати, можно будет с кем-нибудь у Белорусского вокзала встретиться, чтобы вместе ехать. В пятницу утром электричка должна быть свободной из Москвы.
Илья Уткин
09 апреля 2016, 15:32
+1
Организация — это пользователь (реализуется с помощью Login.Register или Office)
Объявления — это Tickets.

В будущем, если захотите, легко предоставите организациям личный кабинет (логин и пароль), а так же возможность выкладывать объявления самостоятельно.
Илья Уткин
08 апреля 2016, 14:37
+1
if ($_GET['Muzei']) {
  $Muzei = $modx->getObject('VogMuzei', $_GET['Muzei']);
}
if (!$Muzei) {
  $Muzei = $modx->newObject('VogMuzei', array('created_by' => $modx->user->id));
  $Muzei->save();
}
if ($Muzei->get('created_by') == $modx->user->id) {
  $modx->setPlaceholders($Muzei->toArray());
}
Илья Уткин
08 апреля 2016, 11:36
1
+1
Я, как программист, не люблю давать пользователю какую-то дополнительную власть. Из-за этого я не люблю поле «Шаблон» у ресурса.

Я чаще всего делаю один шаблон на сайте, а внешним видом рулю уже внутри шаблона. Например, так:
<html>
  <head>
    [[$head]]
  </head>
  <body>
    [[[[*class_key:eq=`msProduct`:then=`$product.Content`:else=`--`]]]]
    [[[[*class_key:eq=`msCategory`:then=`$category.Content`:else=`--`]]]]
  </body>
</html
Илья Уткин
08 апреля 2016, 11:27
0
&sortby=`{"MIGX_id":"ASC"}`
Илья Уткин
08 апреля 2016, 11:25
0
Можно посмотреть еще компоненты группового редактирования ресурсов, например, Batcher
Илья Уткин
08 апреля 2016, 11:22
0
На мой взгляд, на реальном магазине эта настройка не нужна — я сам хочу решать, где, в каких случаях и каким образом выводить товары.

Но без неё тоже нельзя — тогда не будет «работать из коробки». А это тоже важно для новичков.

Однако вопрос-то уже решен. Василий решил эту настройку сделать пустой по умолчанию. Старые магазины не поломаются, но новые уже «из коробки» показывать товары сами не будут.
Илья Уткин
07 апреля 2016, 22:01
0
Ах, блин… Теперь надо как-то почистить все категории во время обновления со старых версий…
Илья Уткин
07 апреля 2016, 21:43
+2
Вот так, может, сделать?
github.com/bezumkin/miniShop2/pull/206

Для теста: s5023.h5.modhost.pro/manager/
s5023 / hw1zHKhPKAaA
Илья Уткин
07 апреля 2016, 21:05
+1
Я не знаю, как выглядит у вас сниппет редактирования данных, но можно сделать как-то так:
if (!$modx->getObject('ExamSheet', array('uid' => $modx->user->id))) {
    $processor = 'sheet/create';
} else {
    $processor = 'sheet/update';
}
$processorProps = array('processors_path' => $modx->getOption('core_path')
               . 'components/exam/processors/');
$response = $modx->runProcessor($processor, $_POST, $processorProps);
if ($response->isError()) {
    $hook->addError('process_error', $response->getMessage());
    return false;
}
return true;
Илья Уткин
07 апреля 2016, 20:45
0
Я, кстати тоже часто из-за этой функции чувствую себя некомфортно.

Есть предложение использовать настройку не в файле category.common.js, а реализовать в файле mscategory.class.php метод getContent. Пусть код из настройки добавляется к полю content и выводится только на фронтенде (вот здесь используется этот метод).

Тогда изменение настройки повлияет сразу на все категории.

Постараюсь сделать пулл-реквест в ближайшее время. Вдруг, понравится…
Илья Уткин
05 апреля 2016, 17:35
+1
Спасибо, Яна! Выручила, очень пригодилось
Илья Уткин
02 апреля 2016, 23:29
0
Во время OnDocFormSave страница редактирования уже сформирована и отдана пользователю, кроме того, он ей уже воспользовался. Вставить скрипт на сформированную страницу не получится.

Так что надо использовать OnDocFormPrerender и уже самом JS скрипте переопределять функции, которые отвечают за обработку ответа сервера.
Илья Уткин
31 марта 2016, 15:32
0
items[0].items[0].items[0].items.splice(15, 1);
Только не запутаться бы в индексах…
Сначала, думаю, надо удалять, а потом добавлять.
Илья Уткин
31 марта 2016, 15:18
0
Тут простая работа с массивом на JS.
Можно, кстати, лишние поля удалить, чтобы не мешались
Илья Уткин
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>');
}
Илья Уткин
30 марта 2016, 18:12
0
Надо в админке нажимать сначала «Денисталировать», «Все версии», а потом уже «Удалить»
Илья Уткин
29 марта 2016, 14:28
0
Я тоже опечатался)) Запускать надо, конечно
/test/_build/build.transport.php
Илья Уткин
29 марта 2016, 13:58
0
Просто после изменения
/test/assets/components/sendex/js/mgr/widgets/items.grid.js
надо опять запускать
/test/assets/components/sendex/js/mgr/widgets/items.grid.js
Илья Уткин
29 марта 2016, 13:12
0
modExtra не надо распаковывать прям в сам MODX — он должен быть рядом:
/assets/
/connectors/
/core/
/manager/
/modExtra/
В modExtra все пути уже прописаны так, чтобы работало из этой папки