Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
13 марта 2019, 09:08
0
Блокировать кнопку при отправке формы до получения ответа от сервера.
Наумов Алексей
12 марта 2019, 14:50
0
У вас 4 Мб чисто html кода!

Неудивительно, что долго.
Сначала его нужно сгенерировать, а потом еще и загрузить в браузер.

Исходный код страницы откройте ж.
Избавляйтесь от дикого количества пунктов в меню «Все разделы».
Наумов Алексей
11 марта 2019, 09:05
1
+1
Кнопками управлять так.
При объявлении окна, внутри
Ext.applyIf(config, {
после
fields: this.getFields(config)
добавляем еще кнопки (по умолчанию их 2 штуки, а вот вам пример на 4 штуки)
buttons: [
            {
                text: 'Моя кнопка',
                scope: this,
                handler: function () {
                    alert("Работает");
                }
            },
            {
                text: config.cancelBtnText || _('cancel'),
                scope: this,
                handler: function () {
                    config.closeAction !== 'close' ? this.hide() : this.close();
                }
            },
            {
                text: config.saveBtnText || _('save'),
                scope: this,
                handler: function () {
                    this.submit(false);
                }
            },
            {
                text: config.saveBtnText || _('save_and_close'),
                cls: 'primary-button',
                scope: this,
                handler: function () {
                    this.submit(true);
                }
            }
        ]
Наумов Алексей
27 февраля 2019, 15:08
0
Ошибки сервера посмотрите.
Наумов Алексей
26 февраля 2019, 17:54
0
Сугубо индивидуальная задача.
Как вариант «попроще» — создать неопубликованный ресурс «Меню», а внутри шпарить уже ресурсами-ссылками, вывод через pdoMenu.

Вариант через MIGX тоже можно, почему нет.
Да хоть в чанке пункты прописывайте, а своим сниппетом на вывод.
Наумов Алексей
26 февраля 2019, 17:03
0
Чет много кода))

Смотри, пример процессора, который выдает список категорий из Tickets. При этом они фильтруются по введенному пользователю значению (поиск по pagetitle).

<?php

class boardAdvertCategoryGetListProcessor extends modObjectGetListProcessor
{
    public $classKey = 'TicketsSection';
    public $languageTopics = array('resource');
    public $defaultSortField = 'pagetitle';

    /** {@inheritDoc} */
    public function prepareQueryBeforeCount(xPDOQuery $c) {

        if ($this->getProperty('combo')) {
            $c->leftJoin('modResource','Rubric','`TicketsSection`.`parent` = `Rubric`.`id`');
            $c->select($this->modx->getSelectColumns($this->classKey, $this->classKey, ''));
            $c->select('`Rubric`.`pagetitle` as `rubric`');
        }
        else {
            $c->select($this->modx->getSelectColumns($this->classKey, $this->classKey, ''));
        }
        $query = $this->getProperty('query');
        $c->where(array('class_key' => 'TicketsSection'));
        if (!empty($query)) {
            $c->where(array('pagetitle:LIKE' => '%'.$query.'%'));
        }

        $id = $this->getProperty('id');
        if (!empty($id)) {
            $c->where(array('id' => $id));
        }
        return $c;
    }
    /** {@inheritDoc} */
    public function prepareRow(xPDOObject $object) {
        if ($this->getProperty('combo')) {
            $array = array(
                'id' => $object->get('id'),
                'pagetitle' => $object->get('pagetitle'),
                'rubric' => $object->get('rubric'),
            );
        }
        else {
            $array = $object->toArray();
        }
        return $array;
    }
}

return 'boardAdvertCategoryGetListProcessor';
Наумов Алексей
26 февраля 2019, 17:00
0
Если мы откроем процессор modResourceCreateProcessor, то видим, что нужный permission это new_document.

А если мы откроем (к примеру) modObjectGetProcessor, то видим некий checkViewPermission и checkPolicy('view').

Короче для создания ресурса нужен new_document, для для просмотра объекта view.
Поизучайте код процессоров, посмотрите как они наследуются.
Наумов Алексей
26 февраля 2019, 16:22
0
Список стран есть при редактировании пользователя.
Объект — ну это просто объект, ресурс, шаблон, чанк, пользователь.
Наумов Алексей
26 февраля 2019, 11:31
0
Попробуй
xtype="minishop2-combo-category"
github.com/bezumkin/miniShop2/blob/master/assets/components/minishop2/js/mgr/misc/ms2.combo.js#L89

Если не прокатит или не тот функционал, сделай по аналогии свой xtype, только про процессор (который mgr/category/getcats ) не забудь, что он тоже нужен.
Наумов Алексей
26 февраля 2019, 11:09
0
Да, конечно. Но мне нужны отдельные страницы на каждое значение из фильтра. Каждый чекбокс со скриншота — это ссылка на свою страницу. Слайдер так не может :)
Наумов Алексей
26 февраля 2019, 10:38
0
Вариации разные возможны… конкретно в нашем случае это не было бы идеальным решением.
Наумов Алексей
26 февраля 2019, 09:44
0
Кеш то браузера обновили?)
Может файлы какие пропустились при обновлении, накатите еще раз.
Наумов Алексей
26 февраля 2019, 09:43
0
Нет такой настройки.
Зато есть это
Наумов Алексей
25 февраля 2019, 16:01
+2
Ниче не понятно)
Если вам нужен урезанный /manager/ то можно ограничить доступ к отдельным элементам, оставив только требуемые функции…
Наумов Алексей
25 февраля 2019, 11:17
0
Значит отрабатывается первый случай, когда {$option.value is array}.
Вообще, если в этом массиве один элемент, то можно его и вывести. Если может быть много, то foreach в помощь и проверка в цикле.
Наумов Алексей
25 февраля 2019, 11:01
0
{foreach $options as $option}
  <tr>
    <td>{$option.caption} :</td>
    <td>
    {if $option.value is array}
      {$option.value | join : ', '}
    {else}
      {$option.value ? "Да" : "Нет"} 
    {/if}
    {$option.measure_unit} 
    </td>
  </tr>
{/foreach}
Наумов Алексей
22 февраля 2019, 13:49
+1
Поди память заканчивается, или время выполнения скрипта.

Ищите способ разбить файл на части, обрабатывать его чем-то быстрым и т.п.