/** * Custom logic code here for setting placeholders, etc * @param array $scriptProperties * @return mixed */ public function process(array $scriptProperties = array()) { $placeholders = array(); /* load plugin */ if (empty($scriptProperties['id'])) { return $this->failure($this->modx->lexicon('plugin_err_ns')); } $this->plugin = $this->modx->getObject('modPlugin', $scriptProperties['id']); if ($this->plugin == null) { return $this->failure($this->modx->lexicon('plugin_err_nf')); } if (!$this->plugin->checkPolicy('view')) { return $this->failure($this->modx->lexicon('access_denied')); } /* get properties */ $properties = $this->plugin->get('properties'); if (!is_array($properties)) { $properties = array(); } $data = array(); foreach ($properties as $property) { $data[] = array($property['name'], $property['desc'], !empty($property['type']) ? $property['type'] : 'textfield', !empty($property['options']) ? $property['options'] : array(), $property['value'], !empty($property['lexicon']) ? $property['lexicon'] : '', false, $property['desc_trans'], !empty($property['area']) ? $property['area'] : '', !empty($property['area_trans']) ? $property['area_trans'] : ''); } $this->pluginArray = $this->plugin->toArray(); $this->pluginArray['properties'] = $data; $this->pluginArray['plugincode'] = $this->plugin->getContent(); if (strpos($this->pluginArray['plugincode'], '<?php') === false) { $this->pluginArray['plugincode'] = "<?php\n" . $this->pluginArray['plugincode']; } $this->prepareElement(); /* load plugin into parser */ $placeholders['plugin'] = $this->plugin; /* invoke OnPluginFormRender event */ $placeholders['onPluginFormRender'] = $this->fireRenderEvent(); return $placeholders; }
/** * @return void */ public function testGetContent() { $this->assertEquals($this->plugin->get('plugincode'), $this->plugin->getContent()); }