'name', 'preserve_keys' => false, 'update_object' => true, 'related_objects' => array ( 'PluginEvents' => array ( '260db4b4ec1c96b9ffb6216e61e14f82' => 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' => '5c9117f3f9306309f3b7257399a7240d', 'native_key' => array ( 0 => 0, 1 => 'OnChunkFormPrerender', ), 'signature' => '702fa0e724ce57cf9fbe9753e0d52e8f', ), '2673ad60bdba74d233019e62d59756e7' => 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' => '7c13e16a515f5f604eb27e99177e239e', 'native_key' => array ( 0 => 0, 1 => 'OnPluginFormPrerender', ), 'signature' => '7c1ed3da538aa3abe7765ef632f7ba6b', ), 'cdb37cda597a7fd6eca3bab18038dc66' => 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' => 'b03fec404d327fd246a4a2825b63eb09', 'native_key' => array ( 0 => 0, 1 => 'OnSnipFormPrerender', ), 'signature' => 'c11237a910dac416f5d2e2c0fae5483b', ), '5cca857e76ca7c36b77598657a6f6c2b' => 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' => 'c666dc4fa3000e3cf992f2851fe92e61', 'native_key' => array ( 0 => 0, 1 => 'OnTempFormPrerender', ), 'signature' => '5c144d5ad82b8d44248dc805a1dd568c', ), '211fa0d50cfb205b5001df75cb76f0b4' => 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' => '7afec938180940ebc633035c7e5b3803', 'native_key' => array ( 0 => 0, 1 => 'OnFileEditFormPrerender', ), 'signature' => '08721d0f3b7139eba08909e181120da6', ), 'fac9e6844e2a9b395515fb7afceffd9b' => 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' => 'dc728cd5e1dc89df8fab87f31cded771', 'native_key' => array ( 0 => 0, 1 => 'OnFileCreateFormPrerender', ), 'signature' => 'd9eac73ed51558d4de35f020c4483442', ), 'ac48c5655cde470ac85fbd245d0b892c' => 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' => 'cb963f3e8877ce33ab7ff2f74557e9c0', 'native_key' => array ( 0 => 0, 1 => 'OnDocFormPrerender', ), 'signature' => '7c4c97410e01700e643c6f9ab9fb7ca5', ), 'f30b618801902f8171280814370fa44b' => 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' => '1150f1d6f7e98e2bc6f78038c3e482ea', 'native_key' => array ( 0 => 0, 1 => 'OnRichTextEditorRegister', ), 'signature' => 'a94cd7084b211ed9fbf2a2bf8fac2b9d', ), '67e299c7a3210c9fc42e5f876aa2e234' => 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' => '54e156a19590fd651049eb44caab8a27', 'native_key' => array ( 0 => 0, 1 => 'OnManagerPageBeforeRender', ), 'signature' => '26abdda131a517512102d681e9cd2d0e', ), ), ), '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.8.0-pl\\/modPlugin\\/49d749eed81e7c63fd7ed8396677179d\\/0\\/","target":"return MODX_ASSETS_PATH . \'components\\/\';","name":"ace"}', ), 1 => array ( 'type' => 'file', 'body' => '{"source":"ace-1.8.0-pl\\/modPlugin\\/49d749eed81e7c63fd7ed8396677179d\\/1\\/","target":"return MODX_CORE_PATH . \'components\\/\';","name":"ace"}', ), 2 => array ( 'type' => 'php', 'body' => '{"source":"ace-1.8.0-pl\\/modPlugin\\/49d749eed81e7c63fd7ed8396677179d.transport.resolver.resolver","name":"transport.resolver","type":"php"}', ), ), 'validate' => NULL, 'vehicle_package' => 'transport', 'vehicle_class' => 'xPDOObjectVehicle', 'guid' => 'e6928d5ac91d2b45d84b5a8c2e9c38d5', 'package' => 'modx', 'class' => 'modPlugin', 'signature' => '49d749eed81e7c63fd7ed8396677179d', '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(\'