Владимир

Владимир

С нами с 21 июня 2017; Место в рейтинге пользователей: #481

Исключить удаление директории при очистке кеша

При очистке кэша хочу исключить удаление директории /core/cache/default/login/resetpassword/. Как это лучше реализовать?
Владимир
17 сентября 2022, 09:19
modx.pro
380
0

mFilter2 фильтр по полям пользователя

В админке есть ресурсы, ресурсы создают разные пользователи. Есть фильтр mFilter2 по этим ресурсам. Один с фильтров это фильтр по стране позователя который создал этот ресурс. Выбрали страну и вывелись все ресурсы пользователей в профиле которых заполнена эта страна. Возможно кто-то сталкивался с такой реализацией, буду благодарен за совет
Владимир
28 июня 2020, 13:19
modx.pro
394
0

[miniShop2] Товар состоит из нескольких частей

Товар состоит из 3 частей. При добавление в корзину одна часть товара обязательно добавляется, две другие части товара можно отключить и не добавлять в корзину. Товар на сайте выводится вот так:
Как лучше это реализовать и организовать структуру для такого товара, возможно кто-то сталкивался с чем-то подобным
Владимир
25 марта 2020, 14:21
modx.pro
411
0

[ExtJS] modx-browser - как отключить создание папки и файла

По клику на кнопку открывается диспетчер файлов Modx, код:
xtype: 'modx-browser',
id: Ext.id(),
multiple: true,
source: orders.config['source'],
openTo: config.record.object.id + '/',
rootId: config.record.object.id + '/',
rootVisible: false,
hideSourceCombo: true

В левом блоке я уже отключил source и видимость папок. Нужно еще отключить возможность создавать папку и файл. Или в принципе отключить всю левую панель, это возможно сделать? Если да, тогда какие параметры прописать

Владимир
06 мая 2019, 14:37
modx.pro
644
0

[extJs] Стилизовать xtype: 'modx-combo-browser'

Есть свой компонент и для загрузки файлов использовал modx-combo-browser. Сохранять значение в поле не нужно, нужно только функционал для загрузки файлов(диспетчер файлов), с чем modx-combo-browser отлично справляться. Но выглядит все как поле


Можно это как-то сделать в виде кнопки, вот таких например
Владимир
11 марта 2019, 13:32
modx.pro
1 419
0

Помощь с SQL запросом

Есть 3 таблицы:
clients
ID Name
1 Client 2

senders
ID Name
1 Sender 1
2 Sender 2

client_sender
ID Client Sender
1 1 1
2 1 2

В третьей таблице одному клиенту может принадлежать несколько SENDERов. Задача по id клиента получить названия SENDERов. Как это сделать с помощью нескольких запросов я знаю, но хочется сделать красиво.

Вот то что есть сейчас
$classKey = 'ordersSender';
$c->leftJoin('ordersClientSender', 'Client', '`Client`.`client` = `'.$this->classKey.'`.`id`');
$c->select(array(
    'sender' => 'Client.sender'
));
Владимир
04 декабря 2018, 18:20
modx.pro
518
0

[Ext JS] Разработка компонента: Выгрузка XLS файла

Есть свой компонент, там есть список заказов и сейчас задача сделать выгрузку XLS файла для отдельного заказа. То есть в списке заказов кликаем на ссылку и выгружается файл с информацией только об этом заказе.

Код ссылки:
{
                        xtype: 'label',
                        html: '<button onclick="orders.utils.renderXLS();" class="icon icon-xls" title="' + _('orders_item_button_excel_title') + '"></button>',
                    }

Код обработчика:
orders.utils.renderXLS = function() {
    var orderID = Ext.getCmp('id');
    console.log(orderID.getValue());
};

В обработчике я могу получить все необходимые данные для выгрузки. Поэтому вопрос, можно выгрузить XLS файл силами extjs без создания и передачи данных в процессор?
Владимир
09 октября 2018, 16:55
modx.pro
878
0

Добавить combobox в форму редактирования пользователя в админке

С добавлением поля практически справился. Создал плагин на события OnUserFormPrerender и OnUserFormSave с кодом:
<?php
switch($modx->event->name) {
	case 'OnUserFormPrerender':
		$modx->regClientStartupScript('/assets/components/orders/js/mgr/user_form/combo.js');
		$modx->regClientStartupScript('/assets/components/orders/js/mgr/user_form/tab.js');
	break;
	case 'OnUserFormSave':
		$profile = $user->getOne('Profile');
        $fields = $profile->get('extended');
        $fields['manager'] = $_POST['manager'];
        $profile->set('extended', $fields);
        $profile->save();
	break;
}

Два JS файла:
1. Для вывода новой вкладки
Ext.onReady(function() {
    var usertabs = Ext.getCmp('modx-user-tabs');
    usertabs.add({
        title: 'Модуль Заказы',
        layout: 'form',
        autoScroll: true,
        autoHeight: true,
        labelAlign: 'top',
        cls: 'main-wrapper',
        items: [
            {
                xtype: 'modx-orders-manager',
                name: 'manager',
                fieldLabel: 'Менеджер',
                width: 176,
            }
        ]
    });
});

2. Для combobox
MODx.combo.Manager = function (config) {
    config = config || {};
    Ext.applyIf(config, {
        name: 'manager',
        hiddenName: config.name || 'manager',
        displayField: 'name',
        valueField: 'id',
        fields: ['id', 'name'],
        pageSize: 9999,
        hideMode: 'offsets',
        emptyText: ' - ',
        url: MODx.config.assets_url+'components/orders/connector.php',
        baseParams: {
            action: 'mgr/manager/getlist',
            sort: 'name',
            dir: 'asc',
            combo: true,
            limit: 9999,
        }
    });
    MODx.combo.Manager.superclass.constructor.call(this, config);
};
Ext.extend(MODx.combo.Manager, MODx.combo.ComboBox);
Ext.reg('modx-orders-manager', MODx.combo.Manager);

В результате получилось вот так


Combobox выводится и данные сохраняются, но сделать чтобы после повторного открытия формы в combobox подставлялось уже сохраненное значение не получается.

И еще один вопрос, где подключить лексокон чтобы можно было вывести тексты из кода JS?
Владимир
25 сентября 2018, 00:38
modx.pro
2
1 139
+1

[Ext JS] Разработка компонента: Права доступа к вкладкам

Есть компонент который состоит из нескольких вкладок(табов). Возникла необходимость для пользователя с правами Админ выводить все вкладки, для пользователя с правами Менеджер выводить только некоторые вкладки. Возможно кто-то сталкивался с подобной задачей, в каком направлении двигаться?

Как вариант можно все вкладки вывести в меню и там настроить доступ к каждому пункту, но их более 20 штук и будет не очень удобно, поэтому хотелось бы все через код сделать.
Владимир
20 сентября 2018, 18:01
modx.pro
759
0

[Ext JS] Разработка компонента: Зафиксировать заголовки в таблице

Возможно кто-то с таким сталкивался. Есть таблица и нужно чтобы при скролле, названия полей в таблице фиксировались, должно выйти что-то такого плана:
Владимир
23 июля 2018, 09:30
modx.pro
784
0