X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fformaction.php;h=5cf05d4a324fede134e48eb9f0024a979f80b6f8;hb=b24d711f552854d88f2df2120672bdaf173335fc;hp=a3e5498aad2e59f38678857cb6e4419c86d5c70e;hpb=8dafce34c39c20161abb1ed2688678c3d18ad566;p=quix0rs-gnu-social.git diff --git a/lib/formaction.php b/lib/formaction.php index a3e5498aad..5cf05d4a32 100644 --- a/lib/formaction.php +++ b/lib/formaction.php @@ -27,9 +27,7 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET')) { - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } /** * Form action extendable class @@ -41,11 +39,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,22 +63,6 @@ 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) { return !$this->isPost(); } @@ -108,38 +92,28 @@ class FormAction extends Action /** * @return string with instructions to pass into common_markup_to_html() */ - public function getInstructions() + protected 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(); } - /** - * Gets called from handle() if isPost() is true; - * @return void - */ - protected function handlePost() + protected function showContent() { - // check for this before token since all POST and FILES data - // is losts when size is exceeded - if (empty($_POST) && $_SERVER['CONTENT_LENGTH']>0) { - // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. - // TRANS: %s is the number of bytes of the CONTENT_LENGTH. - $msg = _m('The server was unable to handle that much POST data (%s MiB) due to its current configuration.', - 'The server was unable to handle that much POST data (%s MiB) due to its current configuration.', - round($_SERVER['CONTENT_LENGTH']/1024/1024,2)); - throw new ClientException($msg); - } + $form = $this->getForm(); + $form->show(); + } - $this->checkSessionToken(); + protected function getForm() + { + $class = $this->form.'Form'; + $form = new $class($this, $this->formOpts); + return $form; } }