/web/modules/DirectPostModule.php
PHP | 62 lines | 40 code | 9 blank | 13 comment | 6 complexity | 367f335526d07a3e97b9672e4f8a4158 MD5 | raw file
Possible License(s): LGPL-2.1
- <?php
-
- namespace c3s\web\modules;
-
- use c3s\web\modules\PostModule;
- use c3s\request\XRequest;
- use c3s\lib\utils\xml\XMLUtils;
-
- class DirectPostModule extends PostModule {
-
- /**
- * @param string $method
- * @param mixed $params
- * @param DOMDocument $xml
- * @return string
- */
- protected function registerSubmitter($method, $params=false, $xml = null) {
- $uniq = uniqid("form_");
- $class = get_class($this);
- //$storage = $this->getStorage();
- //prn($class);
- $_SESSION["beans"][$uniq] = serialize($params);
- $_SESSION["submitters"][$uniq] = $method;
- $_SESSION["classes"][$uniq] = $class;
- if ($xml !== null && $xml instanceof \DOMDocument) {
- $xml->documentElement->setAttribute('_uniq', $uniq);
- $xml->documentElement->setAttribute('_url', XMLUtils::str2xml($_SERVER['REQUEST_URI']));
-
- }
- return $uniq;
- }
-
- /**
- * @param string $uniq
- */
- protected function unregisterSubmitter($uniq) {
- //$storage = $this->getStorage();
- unset($_SESSION["beans"][$uniq]);
- unset($_SESSION["submitters"][$uniq]);
- unset($_SESSION["classes"][$uniq]);
- }
-
- protected function submit() {
- $req = $this->getRequest();
- //$storage = $this->getStorage();
- $class = get_class($this);
- if (($uniq = $req->getParam('_uniq', XRequest::PARAM_STRING)) !== null) {
- if (isset($_SESSION["submitters"][$uniq]) && $_SESSION["classes"][$uniq] == $class) {
- $beans = isset($_SESSION["beans"][$uniq])?unserialize($_SESSION["beans"][$uniq]):false;
- $method = $_SESSION["submitters"][$uniq];
- $result = $this->$method($beans);
- }
- $this->unregisterSubmitter($uniq);
- }
- }
-
- protected function isPost() {
- return strtolower($_SERVER['REQUEST_METHOD']) === 'post';
- }
- }
-
- ?>