22 июня 2021, 14:09 Да, я давно уже разобрался)) Сейчас легко расширяю что только можно, в том числе в админке) Но в этом вопросе не знаю что не так, на скринах вроде всё верно. Готовые решения / Расширение любых таблиц MODX 60 0
17 декабря 2020, 19:44 Это скорее всего из-за рекламного баннера в самом низу, который подгружается не сразу. Ему бы фиксированную высоту задать Новости и события / Чего не хватает Вам в документации? 19 0
24 октября 2020, 12:19 Не теоретически, а так и нужно делать, можно что угодно переопределить Вопросы / Совместить вкладки товара minishop2 в одну 9 0
23 октября 2020, 14:56 Самое простое решение — уволить «очень ленивого менеджера» и найти в меру ленивого. Вопросы / Совместить вкладки товара minishop2 в одну 9 +1
12 октября 2020, 18:21 В данном случае тебе поставили дверь с замком и замок вроде как закрыт, но оказалось что его легко можно взломать.Сломать можно много замков обычной монтировкой. Гостов на замки нет (наверное), а раз нет прописанных норм, стало быть все другие оценки качества чисто субъективные и никакой ответственности за них не предусмотрено. Взял и купил шаблон, поставил и в душе не чувствую что там нужно где-то и что-то обновить. Я что, разработчик?Это как рассуждать, типа, я взял и купил запчасть на авто, решил поставить, я что автослесарь? Нет не автослесарь, но будешь ставить на свой страх и риск. И некому будет претензии предъявлять, что на ней не было инструкции по установке, не было специнструмента, никто не сказал про метки и т.д. Я продолжу писать что шаблоны ультрона хлам всратый и рекомендую клиентам не покупать эти шаблоны. Чисто по логике, чтобы не быть пиз.... голословным, нужно как-то аргументировать, желательно по пунктам. Поэтому, взрослые ребята стараются впустую не молоть языком. Хотя бы потому-что понимают, что это крайности, и чем ниже уровень в решении споров, тем дороже итоговая цена конфликта. Ну то есть, когда ты излил душу, выговорился как следует, но нажил врагов, потратил время, испортил настроение себе и окружающим, а в итоге не добился никакого результата. А хуже когда ещё и получил в ответку. Кстати, сайт ultron существует с 2016 года, за 4 года аналогов больше не припомню, не то чтобы не хлам, а хоть каких-нибудь. Для разработчиков / Покупка на ultron.pro! Не забудьте обновить ядро и компонент Gallery 42 0
12 октября 2020, 12:43 Почему, просто когда было указано на проблему это одно, а дальше обсуждение начало плавно скатываться в хейт и угрозы судами. Считаю, что рамки должны быть определённые. Кстати, как-то мне попадался сайт от ультрона на доработку, не мелкую. Не помню точно что там было, но каких-то негативных ощущений, как тут выше писалось, я не испытал. Большинство подобных сайтов не требует постоянных доработок. Поэтому, за 3-5 тыс. готовое решение с неплохим дизайном вариант вполне себе. В любом случае заниматься адаптацией будет разработчик, больше некому, нужны компетенции, поэтому проверка актуальности дополнений на его совести в том числе. Для разработчиков / Покупка на ultron.pro! Не забудьте обновить ядро и компонент Gallery 42 0
12 октября 2020, 02:04 При желании этого ИПшника можно по судам затаскать (правда у нас в РФ суды это такая себе инстанция).Да это вообще чушь. Если я оставлю двери своей квартиры открытыми, то отвечать будет тот, кто залез в квартиру и вынес имущество, а не я за свою беспечность. А судьям до наших MODXов и тёрок вокруг него пофигу, есть законы, есть судебная практика. Короче, человек не может отвечать за действия третьих лиц. Вот если он сам воспользуется уязвимостью, и будет лазить на клиентские сайты, то другой вопрос. И вообще, какой-то тухлый базар пошёл. Человек когда-то сделал сборки 100 лет назад как он считал нужным, как ему казалось правильным. Они рабочие, про уязвимости он мог не знать, но даже если бы знал, подобные вопросы решаются только самим разработчиком в рабочем порядке, на его усмотрение. Когда у него появится время и/или желание, вопрос чисто этики, репутации и т.д. Принудить или обязать его никто не может. Да и галерея эта сторонний компонент. А вот напор в попытках потопить коллегу характеризует скорее не его, а тех кто это делает, ну и сообщество в целом. Лично я не стал бы опускаться до того, чтобы перемывать кому-то кости таким образом. Тем более в деле которое не стоит выеденного яйца. Видать в мире MODX совсем глухо стало, что разрабы от скуки начали друг друга гнобить за свои поделки)) Для разработчиков / Покупка на ultron.pro! Не забудьте обновить ядро и компонент Gallery 42 +1
04 августа 2020, 09:25 Можно попробовать в документации посмотреть — docs.sencha.com/extjs/3.4.0/#!/api/Ext.form.DateField У данного компонента много параметров по умолчанию помимо указанных. Вопросы / ExtJS Пустое значение поля datefield 7 0
01 июля 2020, 11:55 В таком случае данный вариант как компромисс — Установка локального веб-сервера на подсистему Windows для Linux Готовые решения / Скрипт подмены конфигов сайта на лету 17 0
01 июля 2020, 11:45 Это конечно усложняет дело. Виндой вообще не пользуюсь. В крайнем случае можно WSL использовать. Всё-таки родная среда для большинства сайтов это Linux. Готовые решения / Скрипт подмены конфигов сайта на лету 17 0
01 июля 2020, 01:09 Я пользуюсь на постоянной основе, работает как часы. Но правда были какие-то косяки с регуляркой. Обновил заметку, попробуйте мой текущий вариант. Нужно указать пути и настройки БД до звёздочек. Готовые решения / Скрипт подмены конфигов сайта на лету 17 +1
01 июля 2020, 00:58 Попробуйте добавить в параметры alias, его можно получить заранее из ресурса, а потом указать в процессоре. Вопросы / использование процессоров minishop2 во внешнем файле 15 0
20 июня 2020, 10:11 modExtra.grid.Items = function (config) { config = config || {}; Ext.applyIf(config, { ..... remoteSort: true, enableDragDrop: true, ddGroup: 'modextra-grid-dd', ddAction: 'mgr/item/sort', .... }); modExtra.grid.Items.superclass.constructor.call(this, config); ...... if (config.enableDragDrop && config.ddAction) { this.on('render', function(grid) { grid._initDD(config); }); } }; Ext.extend(modExtra.grid.Items, MODx.grid.Grid, { ....... _initDD: function (config) { var grid = this; var el = grid.getEl(); new Ext.dd.DropTarget(el, { ddGroup: grid.ddGroup, notifyDrop: function (dd, e, data) { var store = grid.getStore(); var target = store.getAt(dd.getDragData(e).rowIndex).id; var sources = []; if (data.selections.length < 1 || data.selections[0].id == target) { return false; } for (var i in data.selections) { if (!data.selections.hasOwnProperty(i)) { continue; } var row = data.selections[i]; sources.push(row.id); } el.mask(_('loading'), 'x-mask-loading'); MODx.Ajax.request({ url: config.url, params: { action: config.ddAction, sources: Ext.util.JSON.encode(sources), target: target, }, listeners: { success: { fn: function () { el.unmask(); grid.refresh(); if (typeof(grid.reloadTree) == 'function') { sources.push(target); grid.reloadTree(sources); } }, scope: grid }, failure: { fn: function () { el.unmask(); }, scope: grid }, } }); }, }); } }); Ext.reg('modextra-grid-items', modExtra.grid.Items); Оставил только то, что drag&drop касается. На месте точек другой код, не относящийся к сортировке. Собственно на процессор mgr/item/sort отправляются данные строк какие перемещаем. И в процессоре уже надо будет производить работу по сортировке. Тут уже много разных алгоритмов может быть. Вопросы / Перемещение строк в Grid таблице ExtJs 5 +1
08 июня 2020, 18:21 Вы не поняли, при вызове AjaxForm всё что указано в параметре: validate='phone:required,email:email:required,message'как required, все поля должны присутствовать в html-коде формы Вопросы / Не доходят письма из Form It 8 0
08 июня 2020, 14:00 Ещё надо смотреть чтобы поля указанные как required обязательно присутствовали в форме, иначе письмо молча не отправится. Вопросы / Не доходят письма из Form It 8 0
17 марта 2020, 12:26 IDx это menuindex. menuindex товару ставится максимальный относительно других товаров этой категории, а не относительно всех товаров. То есть товары из разных категорий могут иметь один и тот же menuindex, а значит сортировка как в админке не получится. Можно или компонентом этим воспользоваться, чтобы расставлять сортировку в категориях индивидуально, либо расставить menuindex товарам глобально, например скриптом: <?php function updateMenuIndex($id) { global $menuindex, $modx; $childsIds = $modx->getChildIds($id,1,array('context' => 'web')); if(!count($childsIds)) return; $q = $modx->newQuery('modResource'); $q->where( ['id:IN' => $childsIds] ); $q->sortby('menuindex', 'ASC'); $result = $modx->getIterator('modResource', $q); foreach($result as $key=>$res) { $menuindex++; $res->set('menuindex', $menuindex); $res->save(); //echo "$menuindex - {$res->pagetitle} ({$res->id})<br>"; updateMenuIndex($res->get('id')); } } updateMenuIndex(0); // id родителя в параметре return "menuindex обновлены у $menuindex ресурсов"; А потом отсортировать товары по menuindex. Вопросы / Как отображать товары в порядке отображения в админке? 6 +1 1
21 февраля 2020, 21:00 push это функция языка javascript. Для работы с массивами там есть несколько функций, например splice Вопросы / [РЕШЕНО] Переопределение процессора minishop2 5 +1 1
21 февраля 2020, 15:31 Да этот файл описывает класс miniShop2.grid.OrderProducts, в нём есть метод updateOrderProduct, который при открытии окна редактирования товара делает запрос в процессор mgr/orders/product/get. Можно расширить класс miniShop2.grid.OrderProducts, переписав в нём метод updateOrderProduct. Для этого создаём плагин на событие msOnManagerCustomCssJs, в плагине код: <?php if($modx->event->name == 'msOnManagerCustomCssJs') { $modx->controller->addLastJavascript(MODX_ASSETS_URL . 'mgr/js/orders.js'); }Этот код подключает js-файл к админке для минишоповских страниц. Код orders.js: Ext.override(miniShop2.grid.OrderProducts, { // копируем целиком оригинальный метод, меняем путь к процессору в action на свой updateOrderProduct: function (btn, e, row) { ....... MODx.Ajax.request({ url: miniShop2.config['connector_url'], params: { action: 'mgr/orders/product/customget', id: id }, ....... }, }); Если раньше путь процессору был mgr/orders/product/get, то меняем, допустим, на mgr/orders/product/customget, а в папке с процессорами core/components/minishop2/processors/mgr/orders/product/ создаём копию оригинального процессора (get.class.php) с названием customget.class.php, и меняем там что нужно. Вопросы / [РЕШЕНО] Переопределение процессора minishop2 5 +2
14 февраля 2020, 23:17 Ну почему, сделать похожее тв один в один, только с изменениями нужными. Зато в будущем не натыкаться на эти грабли. Пошаговые инструкции / Отображение превьюшек для svg-картинок в ТВ типа "Изображение" 11 0
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
Где можно править тексты и заголовки писем? «Управление словарями» находится в панели администратора по пути: меню Система (иконка в виде шестеренки) -> Управление словарями.
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Токены для ИИ-агентов, чтобы они могли работать с доской. Подробнее написал тут Баг проверю и постараюсь исправить.
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Лучше автоматический ci/cd настроить и не править прод напрямую. Это самый безопасный вариант. Другое дело, что далеко не каждый владелец сайта и далеко не каждый сайт готовы в авт...
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
пиз....голословным, нужно как-то аргументировать, желательно по пунктам. Поэтому, взрослые ребята стараются впустую не молоть языком. Хотя бы потому-что понимают, что это крайности, и чем ниже уровень в решении споров, тем дороже итоговая цена конфликта. Ну то есть, когда ты излил душу, выговорился как следует, но нажил врагов, потратил время, испортил настроение себе и окружающим, а в итоге не добился никакого результата. А хуже когда ещё и получил в ответку. Кстати, сайт ultron существует с 2016 года, за 4 года аналогов больше не припомню, не то чтобы не хлам, а хоть каких-нибудь.Оставил только то, что drag&drop касается. На месте точек другой код, не относящийся к сортировке. Собственно на процессор mgr/item/sort отправляются данные строк какие перемещаем. И в процессоре уже надо будет производить работу по сортировке. Тут уже много разных алгоритмов может быть.
как required, все поля должны присутствовать в html-коде формы
А потом отсортировать товары по menuindex.
Этот код подключает js-файл к админке для минишоповских страниц.
Код orders.js:
Если раньше путь процессору был mgr/orders/product/get, то меняем, допустим, на mgr/orders/product/customget, а в папке с процессорами core/components/minishop2/processors/mgr/orders/product/ создаём копию оригинального процессора (get.class.php) с названием customget.class.php, и меняем там что нужно.