*/ class helper_plugin_bureaucracy_action extends syntax_plugin_bureaucracy { /** * Return false to prevent DokuWiki reusing instances of the plugin * * @return bool */ public function isSingleton() { return false; } /** * Handle the user input [required] * * This function needs to be implemented to accept the user data collected * from the form. Data has to be grabbed from $_POST['bureaucracy'] using * the indicies in the 'idx' members of the $data items. * * @param helper_plugin_bureaucracy_field[] $fields the list of fields in the form * @param string $thanks the thank you message as defined in the form * or default one. Might be modified by the action * before returned * @param array $argv additional arguments passed to the action * @return bool|string false on error, $thanks on success */ public function run($fields, $thanks, $argv){ msg('ERROR: called action %s did not implement a run() function'); return false; } /** * Adds some language related replacement patterns */ function prepareLanguagePlaceholder() { global $ID; global $conf; $this->patterns['__lang__'] = '/@LANG@/'; $this->values['__lang__'] = $conf['lang']; $this->patterns['__trans__'] = '/@TRANS@/'; $this->values['__trans__'] = ''; /** @var helper_plugin_translation $trans */ $trans = plugin_load('helper', 'translation'); if (!$trans) return; $this->values['__trans__'] = $trans->getLangPart($ID); $this->values['__lang__'] = $trans->realLC(''); } /** * Adds replacement pattern for fieldlabels (e.g @@Label@@) * * @param helper_plugin_bureaucracy_field $field */ function prepareFieldReplacement($field) { $label = $field->getParam('label'); if(!is_null($label)) { $this->patterns[$label] = $field->getReplacementPattern(); $this->values[$label] = $field->getReplacementValue(); } } /** * Adds to replacement patterns */ function prepareNoincludeReplacement() { $this->patterns['__noinclude__'] = '/(.*?)<\/noinclude>/is'; $this->values['__noinclude__'] = ''; } /** * Generate field replacements * * @param helper_plugin_bureaucracy_field[] $fields List of field objects * @return array */ function prepareFieldReplacements($fields) { foreach ($fields as $field) { //field replacements $this->prepareFieldReplacement($field); } } /** * Returns ACL access level of the user or the (virtual) 'runas' user * * @param string $id pageid * @return int */ protected function aclcheck($id) { $runas = $this->getConf('runas'); if($runas) { $auth = auth_aclcheck($id, $runas, array()); } else { $auth = auth_quickaclcheck($id); } return $auth; } /** * Available methods * * @return array */ public function getMethods() { $result = array(); $result[] = array( 'name' => 'run', 'desc' => 'Handle the user input', 'params' => array( 'fields' => 'helper_plugin_bureaucracy_field[]', 'thanks' => 'string', 'argv' => 'array' ), 'return' => array('false on error, thanks message on success' => 'bool|string') ); return $result; } }