Server : Apache System : Linux indy02.toastserver.com 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64 User : palandch ( 1163) PHP Version : 7.1.33 Disable Function : NONE Directory : /home/palandch/www/core/model/modx/processors/system/derivatives/ |
<?php /** * Gets a list of derivative classes for a class * * @var modX $modx * @var array $scriptProperties * @var modProcessor $this * * @package modx * @subpackage processors.system.derivatives */ class modSystemDerivativesGetListProcessor extends modProcessor { public function checkPermissions() { return $this->modx->hasPermission('class_map'); } public function initialize() { $this->setDefaultProperties(array( 'class' => '', 'skip' => 'modXMLRPCResource', )); return true; } public function process() { $class = $this->getProperty('class'); if (empty($class)) $this->failure($this->modx->lexicon('class_err_ns')); $skip = explode(',',$this->getProperty('skip')); $descendants = $this->modx->getDescendants($class); $list = array(); foreach ($descendants as $descendant) { if (in_array($descendant,$skip)) continue; /** @var xPDOObject|modResource $obj */ $obj = $this->modx->newObject($descendant); if (!$obj) continue; if ($class == 'modResource' && !$obj->allowListingInClassKeyDropdown) continue; if ($class == 'modResource') { $name = $obj->getResourceTypeName(); } else { $name = $descendant; } $list[] = array( 'id' => $descendant, 'name' => $name, ); } return $this->outputArray($list); } } return 'modSystemDerivativesGetListProcessor';