actionname = $actionname; } else { // http://stackoverflow.com/a/27457689/172068 $this->actionname = strtolower(substr(strrchr(get_class($this), '\\'), 1)); } } /** * Return the minimum permission needed * * This needs to return one of the AUTH_* constants. It will be checked against * the current user and page after checkPermissions() ran through. If it fails, * the user will be shown the Denied action. * * @return int */ abstract public function minimumPermission(); /** * Check conditions are met to run this action * * @throws ActionException * @return void */ public function checkPreconditions() { } /** * Process data * * This runs before any output is sent to the browser. * * Throw an Exception if a different action should be run after this step. * * @throws ActionException * @return void */ public function preProcess() { } /** * Output whatever content is wanted within tpl_content(); * * @fixme we may want to return a Ui class here * @throws FatalException */ public function tplContent() { throw new FatalException('No content for Action ' . $this->actionname); } /** * Returns the name of this action * * This is usually the lowercased class name, but may differ for some actions. * eg. the export_ modes or for the Plugin action. * * @return string */ public function getActionName() { return $this->actionname; } }