'name', 'preserve_keys' => false, 'update_object' => true, 'related_objects' => array ( 'PluginEvents' => array ( '44adf90e0883ff13e7654d89a5f04096' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnChunkFormPrerender","priority":0,"propertyset":0}', 'guid' => '5ba400450fc3608124cffc5f71d86c7d', 'native_key' => array ( 0 => 0, 1 => 'OnChunkFormPrerender', ), 'signature' => 'ecc98f52bdc3020e41b4ced665258cdb', ), 'cfe6d457827fa5cd72d10c61f620851c' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnPluginFormPrerender","priority":0,"propertyset":0}', 'guid' => 'cdefa5dc7e8417de6e93a0a3f9b0c204', 'native_key' => array ( 0 => 0, 1 => 'OnPluginFormPrerender', ), 'signature' => '18215810af813735b8b173467e27d3d3', ), 'bd17db81f47cce1ffbd6e94879758faa' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnSnipFormPrerender","priority":0,"propertyset":0}', 'guid' => 'b9f60f578220b135bac50fd9d3a2ad67', 'native_key' => array ( 0 => 0, 1 => 'OnSnipFormPrerender', ), 'signature' => 'a5480c3c52f7116e888a07126b81c827', ), 'f53789363a35b39d52dfdb23f979a76c' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnTempFormPrerender","priority":0,"propertyset":0}', 'guid' => 'aa4fb89064629bad2dac8717e22cd5fc', 'native_key' => array ( 0 => 0, 1 => 'OnTempFormPrerender', ), 'signature' => 'f6bed55d72511773e0978d60e51e988f', ), '886ce559a5e8a274ea5d21478f4f9f8c' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnFileEditFormPrerender","priority":0,"propertyset":0}', 'guid' => 'f433f3166c096da221cbd83cdb63c2f8', 'native_key' => array ( 0 => 0, 1 => 'OnFileEditFormPrerender', ), 'signature' => '1d6265b005545ecb7fa9598a7bd7b3d9', ), '624fd37b08d2f88dd7c7ba5f9cbd7e4f' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnFileCreateFormPrerender","priority":0,"propertyset":0}', 'guid' => '97bc1dc5244259ec5dd1fbc8c00ba4cb', 'native_key' => array ( 0 => 0, 1 => 'OnFileCreateFormPrerender', ), 'signature' => 'e408db51d53872def2a221849a6889e9', ), 'a2a704df239bb995e03fd12f26c43cf6' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnDocFormPrerender","priority":0,"propertyset":0}', 'guid' => '6814073b8475cc101fabcaaaeca82349', 'native_key' => array ( 0 => 0, 1 => 'OnDocFormPrerender', ), 'signature' => '5f376c98af20848c50ec196ced09a599', ), 'c45fb8c49bb5338d07d958401ed0604f' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnRichTextEditorRegister","priority":0,"propertyset":0}', 'guid' => '32e753cbc838cd20e6d1ba3a0b7d6e8c', 'native_key' => array ( 0 => 0, 1 => 'OnRichTextEditorRegister', ), 'signature' => '54fc305096cce248175961ebc00e1472', ), 'c9ea6e0c1e3f4ab36ecea703d3d6123f' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), 'class' => 'modPluginEvent', 'object' => '{"pluginid":0,"event":"OnManagerPageBeforeRender","priority":0,"propertyset":0}', 'guid' => 'e5a11b4aca6bf5c55b25423b2ce1a27a', 'native_key' => array ( 0 => 0, 1 => 'OnManagerPageBeforeRender', ), 'signature' => 'a2a64f778f4054d745e9917a8a819b15', ), ), ), 'related_object_attributes' => array ( 'PluginEvents' => array ( 'preserve_keys' => true, 'update_object' => false, 'unique_key' => array ( 0 => 'pluginid', 1 => 'event', ), ), ), 'namespace' => 'ace', 'resolve' => array ( 0 => array ( 'type' => 'file', 'body' => '{"source":"ace-1.7.0-pl\\/modPlugin\\/8d60f155ae79c3d87902bba03c8ee57f\\/0\\/","target":"return MODX_ASSETS_PATH . \'components\\/\';","name":"ace"}', ), 1 => array ( 'type' => 'file', 'body' => '{"source":"ace-1.7.0-pl\\/modPlugin\\/8d60f155ae79c3d87902bba03c8ee57f\\/1\\/","target":"return MODX_CORE_PATH . \'components\\/\';","name":"ace"}', ), 2 => array ( 'type' => 'php', 'body' => '{"source":"ace-1.7.0-pl\\/modPlugin\\/8d60f155ae79c3d87902bba03c8ee57f.transport.resolver.resolver","name":"transport.resolver","type":"php"}', ), ), 'validate' => NULL, 'vehicle_package' => 'transport', 'vehicle_class' => 'xPDOObjectVehicle', 'guid' => '3c16fe99c74968afb67f73442fcc8b37', 'package' => 'modx', 'class' => 'modPlugin', 'signature' => '8d60f155ae79c3d87902bba03c8ee57f', 'native_key' => 1, 'object' => '{"id":1,"source":0,"property_preprocess":0,"name":"Ace","description":"Ace code editor plugin for MODx Revolution","editor_type":0,"category":0,"cache_type":0,"plugincode":"\\/**\\n * Ace Source Editor Plugin\\n *\\n * Events: OnManagerPageBeforeRender, OnRichTextEditorRegister, OnSnipFormPrerender,\\n * OnTempFormPrerender, OnChunkFormPrerender, OnPluginFormPrerender,\\n * OnFileCreateFormPrerender, OnFileEditFormPrerender, OnDocFormPrerender\\n *\\n * @author Danil Kostin \\n *\\n * @package ace\\n *\\n * @var array $scriptProperties\\n * @var Ace $ace\\n *\\/\\nif ($modx->event->name == \'OnRichTextEditorRegister\') {\\n $modx->event->output(\'Ace\');\\n return;\\n}\\n\\nif ($modx->getOption(\'which_element_editor\', null, \'Ace\') !== \'Ace\') {\\n return;\\n}\\n\\n$ace = $modx->getService(\'ace\', \'Ace\', $modx->getOption(\'ace.core_path\', null, $modx->getOption(\'core_path\').\'components\\/ace\\/\').\'model\\/ace\\/\');\\n$ace->initialize();\\n\\n$extensionMap = array(\\n \'tpl\' => \'text\\/x-smarty\',\\n \'htm\' => \'text\\/html\',\\n \'html\' => \'text\\/html\',\\n \'css\' => \'text\\/css\',\\n \'scss\' => \'text\\/x-scss\',\\n \'less\' => \'text\\/x-less\',\\n \'svg\' => \'image\\/svg+xml\',\\n \'xml\' => \'application\\/xml\',\\n \'xsl\' => \'application\\/xml\',\\n \'js\' => \'application\\/javascript\',\\n \'json\' => \'application\\/json\',\\n \'php\' => \'application\\/x-php\',\\n \'sql\' => \'text\\/x-sql\',\\n \'md\' => \'text\\/x-markdown\',\\n \'txt\' => \'text\\/plain\',\\n \'twig\' => \'text\\/x-twig\'\\n);\\n\\n\\/\\/ Define default mime for html elements(templates, chunks and html resources)\\n$html_elements_mime=$modx->getOption(\'ace.html_elements_mime\',null,false);\\nif(!$html_elements_mime){\\n \\/\\/ this may deprecated in future because components may set ace.html_elements_mime option now\\n switch (true) {\\n case $modx->getOption(\'twiggy_class\'):\\n $html_elements_mime = \'text\\/x-twig\';\\n break;\\n case $modx->getOption(\'pdotools_fenom_parser\'):\\n $html_elements_mime = \'text\\/x-smarty\';\\n break;\\n default:\\n $html_elements_mime = \'text\\/html\';\\n }\\n}\\n\\n\\/\\/ Defines wether we should highlight modx tags\\n$modxTags = false;\\nswitch ($modx->event->name) {\\n case \'OnSnipFormPrerender\':\\n $field = \'modx-snippet-snippet\';\\n $mimeType = \'application\\/x-php\';\\n break;\\n case \'OnTempFormPrerender\':\\n $field = \'modx-template-content\';\\n $modxTags = true;\\n $mimeType = $html_elements_mime;\\n break;\\n case \'OnChunkFormPrerender\':\\n $field = \'modx-chunk-snippet\';\\n if ($modx->controller->chunk && $modx->controller->chunk->isStatic()) {\\n $extension = pathinfo($modx->controller->chunk->name, PATHINFO_EXTENSION);\\n if(!$extension||!isset($extensionMap[$extension])){\\n $extension = pathinfo($modx->controller->chunk->getSourceFile(), PATHINFO_EXTENSION);\\n }\\n $mimeType = isset($extensionMap[$extension]) ? $extensionMap[$extension] : \'text\\/plain\';\\n } else {\\n $mimeType = $html_elements_mime;\\n }\\n $modxTags = true;\\n break;\\n case \'OnPluginFormPrerender\':\\n $field = \'modx-plugin-plugincode\';\\n $mimeType = \'application\\/x-php\';\\n break;\\n case \'OnFileCreateFormPrerender\':\\n $field = \'modx-file-content\';\\n $mimeType = \'text\\/plain\';\\n break;\\n case \'OnFileEditFormPrerender\':\\n $field = \'modx-file-content\';\\n $extension = pathinfo($scriptProperties[\'file\'], PATHINFO_EXTENSION);\\n $mimeType = isset($extensionMap[$extension])\\n ? $extensionMap[$extension]\\n : \'text\\/plain\';\\n $modxTags = $extension == \'tpl\';\\n break;\\n case \'OnDocFormPrerender\':\\n if (!$modx->controller->resourceArray) {\\n return;\\n }\\n $field = \'ta\';\\n $mimeType = $modx->getObject(\'modContentType\', $modx->controller->resourceArray[\'content_type\'])->get(\'mime_type\');\\n\\n if($mimeType == \'text\\/html\')$mimeType = $html_elements_mime;\\n\\n if ($modx->getOption(\'use_editor\')){\\n $richText = $modx->controller->resourceArray[\'richtext\'];\\n $classKey = $modx->controller->resourceArray[\'class_key\'];\\n if ($richText || in_array($classKey, array(\'modStaticResource\',\'modSymLink\',\'modWebLink\',\'modXMLRPCResource\'))) {\\n $field = false;\\n }\\n }\\n $modxTags = true;\\n break;\\n default:\\n return;\\n}\\n\\n$modxTags = (int) $modxTags;\\n$script = \'\';\\nif ($field) {\\n $script .= \\"MODx.ux.Ace.replaceComponent(\'$field\', \'$mimeType\', $modxTags);\\";\\n}\\n\\nif ($modx->event->name == \'OnDocFormPrerender\' && !$modx->getOption(\'use_editor\')) {\\n $script .= \\"MODx.ux.Ace.replaceTextAreas(Ext.query(\'.modx-richtext\'));\\";\\n}\\n\\nif ($script) {\\n $modx->controller->addHtml(\'