From 652d21edcef88564ef2d3ef404285dc9850ed508 Mon Sep 17 00:00:00 2001 From: John Peca Date: Fri, 5 Feb 2021 19:52:14 +0100 Subject: [PATCH] Fix classes used by property sets (#15372) --- .../Processors/Element/GetClasses.php | 35 ++++--------------- .../widgets/element/modx.panel.plugin.js | 2 +- .../element/modx.panel.property.set.js | 6 ++-- .../widgets/element/modx.panel.snippet.js | 2 +- .../widgets/element/modx.panel.template.js | 2 +- .../modext/widgets/element/modx.panel.tv.js | 2 +- 6 files changed, 14 insertions(+), 35 deletions(-) diff --git a/core/src/Revolution/Processors/Element/GetClasses.php b/core/src/Revolution/Processors/Element/GetClasses.php index 845f1325fa5..c933b010dbf 100644 --- a/core/src/Revolution/Processors/Element/GetClasses.php +++ b/core/src/Revolution/Processors/Element/GetClasses.php @@ -12,6 +12,7 @@ use MODX\Revolution\modClassMap; +use MODX\Revolution\modElement; use MODX\Revolution\Processors\Processor; /** @@ -31,7 +32,7 @@ public function checkPermissions() public function initialize() { $this->setDefaultProperties([ - 'limit' => 10, + 'limit' => 0, 'start' => 0, 'sort' => 'class', 'dir' => 'ASC', @@ -42,36 +43,14 @@ public function initialize() public function process() { - $this->modx->deprecated('2.1.4', 'Please use $modx->getDescendants($className) now.', - 'modElementGetClassesProcessor support'); + $classes = $this->modx->getDescendants(modElement::class); - $limit = $this->getProperty('limit', 10); - $isLimit = !empty($limit); - - /* build query */ - $c = $this->modx->newQuery(modClassMap::class); - $c->where([ - 'parent_class' => 'modElement', - 'class:!=' => 'modTemplate', - ]); - $c->sortby($this->getProperty('sort'), $this->getProperty('dir')); - $name = $this->getProperty('name', ''); - if (!empty($name)) { - $c->where([ - 'modClassMap.name:IN' => is_string($name) ? explode(',', $name) : $name, - ]); - } - if ($isLimit) { - $c->limit($limit, $this->getProperty('start')); - } - $classes = $this->modx->getCollection(modClassMap::class, $c); - - /* iterate */ $list = []; - /** @var modClassMap $class */ + foreach ($classes as $class) { - $el = ['name' => $class->get('class')]; - $list[] = $el; + if ($class === 'MODX\\Revolution\\modScript') continue; + + $list[] = ['name' => $class]; } return $this->outputArray($list); diff --git a/manager/assets/modext/widgets/element/modx.panel.plugin.js b/manager/assets/modext/widgets/element/modx.panel.plugin.js index 60dddbaacf0..0b55f05a318 100644 --- a/manager/assets/modext/widgets/element/modx.panel.plugin.js +++ b/manager/assets/modext/widgets/element/modx.panel.plugin.js @@ -292,7 +292,7 @@ MODx.panel.Plugin = function(config) { xtype: 'modx-panel-element-properties' ,elementPanel: 'modx-panel-plugin' ,elementId: config.plugin - ,elementType: 'modPlugin' + ,elementType: 'MODX\\Revolution\\modPlugin' ,record: config.record }],{ id: 'modx-plugin-tabs' diff --git a/manager/assets/modext/widgets/element/modx.panel.property.set.js b/manager/assets/modext/widgets/element/modx.panel.property.set.js index 9605daafec8..621d0087e67 100644 --- a/manager/assets/modext/widgets/element/modx.panel.property.set.js +++ b/manager/assets/modext/widgets/element/modx.panel.property.set.js @@ -354,8 +354,8 @@ Ext.extend(MODx.window.AddElementToPropertySet,MODx.Window,{ } ,onElementSelect: function(cb) { var ec = Ext.getCmp('modx-combo-element-class'); - if (ec.getValue() == '') { - ec.setValue('modSnippet'); + if (ec.getValue() === '') { + ec.setValue('MODX\\Revolution\\modSnippet'); } } }); @@ -406,7 +406,7 @@ MODx.combo.Elements = function(config) { ,url: MODx.config.connector_url ,baseParams: { action: 'Element/GetListByClass' - ,element_class: 'modSnippet' + ,element_class: 'MODX\\Revolution\\modSnippet' } }); MODx.combo.Elements.superclass.constructor.call(this,config); diff --git a/manager/assets/modext/widgets/element/modx.panel.snippet.js b/manager/assets/modext/widgets/element/modx.panel.snippet.js index 2c7854bc413..3f2ccbee337 100644 --- a/manager/assets/modext/widgets/element/modx.panel.snippet.js +++ b/manager/assets/modext/widgets/element/modx.panel.snippet.js @@ -248,7 +248,7 @@ MODx.panel.Snippet = function(config) { xtype: 'modx-panel-element-properties' ,elementPanel: 'modx-panel-snippet' ,elementId: config.snippet - ,elementType: 'modSnippet' + ,elementType: 'MODX\\Revolution\\modSnippet' ,record: config.record }],{ id: 'modx-snippet-tabs' diff --git a/manager/assets/modext/widgets/element/modx.panel.template.js b/manager/assets/modext/widgets/element/modx.panel.template.js index 703e16fbef8..e520551ff3b 100644 --- a/manager/assets/modext/widgets/element/modx.panel.template.js +++ b/manager/assets/modext/widgets/element/modx.panel.template.js @@ -287,7 +287,7 @@ MODx.panel.Template = function(config) { ,collapsible: true ,elementPanel: 'modx-panel-template' ,elementId: config.template - ,elementType: 'modTemplate' + ,elementType: 'MODX\\Revolution\\modTemplate' ,record: config.record }],{ id: 'modx-template-tabs' diff --git a/manager/assets/modext/widgets/element/modx.panel.tv.js b/manager/assets/modext/widgets/element/modx.panel.tv.js index 10542bc283d..39338763aac 100644 --- a/manager/assets/modext/widgets/element/modx.panel.tv.js +++ b/manager/assets/modext/widgets/element/modx.panel.tv.js @@ -323,7 +323,7 @@ MODx.panel.TV = function(config) { ,itemId: 'panel-properties' ,elementPanel: 'modx-panel-tv' ,elementId: config.tv - ,elementType: 'modTemplateVar' + ,elementType: 'MODX\\Revolution\\modTemplateVar' ,record: config.record }],{ id: 'modx-tv-tabs'