PageRenderTime 53ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/web/modules/DirectPostModule.php

https://bitbucket.org/haps/c3s-php
PHP | 62 lines | 40 code | 9 blank | 13 comment | 6 complexity | 367f335526d07a3e97b9672e4f8a4158 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. namespace c3s\web\modules;
  3. use c3s\web\modules\PostModule;
  4. use c3s\request\XRequest;
  5. use c3s\lib\utils\xml\XMLUtils;
  6. class DirectPostModule extends PostModule {
  7. /**
  8. * @param string $method
  9. * @param mixed $params
  10. * @param DOMDocument $xml
  11. * @return string
  12. */
  13. protected function registerSubmitter($method, $params=false, $xml = null) {
  14. $uniq = uniqid("form_");
  15. $class = get_class($this);
  16. //$storage = $this->getStorage();
  17. //prn($class);
  18. $_SESSION["beans"][$uniq] = serialize($params);
  19. $_SESSION["submitters"][$uniq] = $method;
  20. $_SESSION["classes"][$uniq] = $class;
  21. if ($xml !== null && $xml instanceof \DOMDocument) {
  22. $xml->documentElement->setAttribute('_uniq', $uniq);
  23. $xml->documentElement->setAttribute('_url', XMLUtils::str2xml($_SERVER['REQUEST_URI']));
  24. }
  25. return $uniq;
  26. }
  27. /**
  28. * @param string $uniq
  29. */
  30. protected function unregisterSubmitter($uniq) {
  31. //$storage = $this->getStorage();
  32. unset($_SESSION["beans"][$uniq]);
  33. unset($_SESSION["submitters"][$uniq]);
  34. unset($_SESSION["classes"][$uniq]);
  35. }
  36. protected function submit() {
  37. $req = $this->getRequest();
  38. //$storage = $this->getStorage();
  39. $class = get_class($this);
  40. if (($uniq = $req->getParam('_uniq', XRequest::PARAM_STRING)) !== null) {
  41. if (isset($_SESSION["submitters"][$uniq]) && $_SESSION["classes"][$uniq] == $class) {
  42. $beans = isset($_SESSION["beans"][$uniq])?unserialize($_SESSION["beans"][$uniq]):false;
  43. $method = $_SESSION["submitters"][$uniq];
  44. $result = $this->$method($beans);
  45. }
  46. $this->unregisterSubmitter($uniq);
  47. }
  48. }
  49. protected function isPost() {
  50. return strtolower($_SERVER['REQUEST_METHOD']) === 'post';
  51. }
  52. }
  53. ?>