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

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

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
20 марта 2019, 09:33
0
Попробуйте посмотреть в событиях OnDocFormSave и OnBeforeDocFormSave на поля publishedon.
Возможно (но не точно) для ресурса, который не был опубликован, а сейчас галочку поставили, эта дата будет пустая.
19 марта 2019, 09:03
0
Нашел в интернате вот эту функцию
miniShop2.Callbacks.Cart.add.response.success = function() {}
Вешаю ее на странице карточки товара. Но в консоль выводится это:
Uncaught ReferenceError: miniShop2 is not defined
Ваш скрипт должен быть подключен после всех скриптов минишоп.
14 марта 2019, 16:02
0
Насколько я помню по своему опыту, главный трабл был в том, что были затерты js файлы.

Примерный сценарий:
1. Разворачиваем сайт
2. Устанавливаем поверх свежий (или не очень свежий) MODX
3. Обновляем все компоненты, задача — переустановить их с заменой файлов
4. Удаляем старые версии компонентов, чтобы уменьшить кол-во файлов
5. Тщательно ищем упоминания вирусов во всех файлах, сверяемся с исходниками modx и компонентов, используем антивирусы.
6. Кстати. Вот перед всем этим, хорошо бы проанализировать даты изменения файлов. Возможно, вам получится выяснить список файлов, модернизированных вирусом.
7. Недостающие файлы пытаемся найти через webarchive или свои старые бекапы. Это единственное место, где я смог найти js файлы.
13 марта 2019, 16:46
0
bootstrap + возможно MobileDetect
Актуально)
Каталог с поддержкой фильтрации, значит MS2
Да, miniShop2 + mFilter2 (mSearch2).
Что-то удобное по загрузке фотографий для MS2 — ms2Gallery
Если нужно дополнительно, то да. Хотя и штатная галерея вроде ничего.
Отзывы — Tickets
Вполне. Или советую свой компонент easyComm.

Избранное к каталогу
msFavorites modstore.pro/packages/ecommerce/msfavorites
И возможно предзаказ
Или штатную корзину от минишопа, где покупка и будет «предзаказом», или вообще «Купить в 1 клик» в виде простейшей формы.

Office — если нужен кабинет. Авторизацию вроде он поддерживает штатно через HybridAuth.
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:25
+1
modx.pro/solutions/8088
по аналогии, у вас просто другие поля.
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/ то можно ограничить доступ к отдельным элементам, оставив только требуемые функции…