X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fformaction.php;h=2599153870cf426c54adaba956fed7a14523776b;hb=dd61ae8fbeee64c85f8186672292335592be1ff5;hp=8f300d3a63053c18e9f168e89219d2bb921066a7;hpb=f0e967fefd48daa677bfa3bdac656373d1fc2e79;p=quix0rs-gnu-social.git diff --git a/lib/formaction.php b/lib/formaction.php index 8f300d3a63..2599153870 100644 --- a/lib/formaction.php +++ b/lib/formaction.php @@ -41,11 +41,13 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ -class FormAction extends Action +class FormAction extends ManagedAction { protected $form = null; + protected $formOpts = array(); protected $type = null; protected $needLogin = true; + protected $canPost = true; protected function prepare(array $args=array()) { parent::prepare($args); @@ -63,23 +65,7 @@ class FormAction extends Action return true; } - protected function handle() - { - parent::handle(); - - if ($this->isPost()) { - try { - $msg = $this->handlePost(); - $this->showForm($msg, true); - } catch (Exception $e) { - $this->showForm($e->getMessage()); - } - } else { - $this->showForm(); - } - } - - public function isReadOnly($args) { + public function isReadOnly(array $args=array()) { return !$this->isPost(); } @@ -102,24 +88,45 @@ class FormAction extends Action public function showInstructions() { // instructions are nice, so users know what to do + $this->raw(common_markup_to_html($this->getInstructions())); + } + + /** + * @return string with instructions to pass into common_markup_to_html() + */ + public function getInstructions() + { + return null; } public function showForm($msg=null, $success=false) { - if ($success) { - $this->msg = $msg; - } else { - $this->error = $msg; - } + $this->msg = $msg; + $this->success = $success; $this->showPage(); } + protected function showContent() + { + $form = $this->getForm(); + $form->show(); + } + + protected function getForm() + { + $class = $this->form.'Form'; + $form = new $class($this, $this->formOpts); + return $form; + } + /** * Gets called from handle() if isPost() is true; * @return void */ protected function handlePost() { + parent::handlePost(); + // check for this before token since all POST and FILES data // is losts when size is exceeded if (empty($_POST) && $_SERVER['CONTENT_LENGTH']>0) {