_oTriggerState = null; // initialise to initial state $this->sFriendlyName = _kt('Base class for workflow triggers'); $this->sDescription = _kt('This is an abstract base class for the overall workflow trigger. It should never actually be available for installation.'); } function loadConfig($oTriggerInstance) { $this->oTriggerInstance = $oTriggerInstance; $this->aConfig = $oTriggerInstance->getConfig(); } function isLoaded() { return (!is_null($this->oTriggerInstance)); } // simple function to inform the UI/registration what kind of event this is function getInfo() { return array( 'guard' => $this->bIsGuard, 'action' => $this->bIsAction, 'name' => $this->sFriendlyName, 'description' => $this->sDescription, ); } function getName() { return $this->sFriendlyName; } function getNamespace() { return $this->sNamespace; } function getConfigId() { return $this->oTriggerInstance->getId(); } // return true for transition allowed on doc, false for transition not allowed on doc. function allowTransition($oDocument, $oUser) { return true; // abstract base class } // perform more expensive checks -before- performTransition. function precheckTransition($oDocument, $oUser) { return true; } /* Multiple triggers can occur on a given transition. If this trigger fails, return a PEAR::error (the overall system -will- roll the db back - no need to do it yourself) with a -useful- human error message. Any other return is simply discarded. */ function performTransition($oDocument, $oUser) { return true; } // display the configuration page for this plugin // will be called -after- loadConfig, so it can prepopulate the options. function displayConfiguration($args) { return _kt('No configuration has been implemented for this plugin.'); } // dispatched - again, after loadConfig, so it can set the config. // throw an error to redispatch displayConfiguration, or return true to cause a db commit (probably). function saveConfiguration() { return true; } // give a brief, friendly description of what we are and what we do. function getConfigDescription() { return ''; } } ?>