PageRenderTime 26ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/system/library/PEAR/HTML/QuickForm2/Controller/Action/Next.php

https://bitbucket.org/spekkionu/passworddb
PHP | 90 lines | 25 code | 6 blank | 59 comment | 6 complexity | 95dd1a4c1ac77106e8b9115298c5183a MD5 | raw file
Possible License(s): BSD-2-Clause
  1. <?php
  2. /**
  3. * Action handler for a 'next' button of wizard-type multipage form
  4. *
  5. * PHP version 5
  6. *
  7. * LICENSE:
  8. *
  9. * Copyright (c) 2006-2012, Alexey Borzov <avb@php.net>,
  10. * Bertrand Mansion <golgote@mamasam.com>
  11. * All rights reserved.
  12. *
  13. * Redistribution and use in source and binary forms, with or without
  14. * modification, are permitted provided that the following conditions
  15. * are met:
  16. *
  17. * * Redistributions of source code must retain the above copyright
  18. * notice, this list of conditions and the following disclaimer.
  19. * * Redistributions in binary form must reproduce the above copyright
  20. * notice, this list of conditions and the following disclaimer in the
  21. * documentation and/or other materials provided with the distribution.
  22. * * The names of the authors may not be used to endorse or promote products
  23. * derived from this software without specific prior written permission.
  24. *
  25. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  26. * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  27. * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  28. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  29. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  30. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  31. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  32. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  33. * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  34. * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  35. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  36. *
  37. * @category HTML
  38. * @package HTML_QuickForm2
  39. * @author Alexey Borzov <avb@php.net>
  40. * @author Bertrand Mansion <golgote@mamasam.com>
  41. * @license http://opensource.org/licenses/bsd-license.php New BSD License
  42. * @version SVN: $Id: Next.php 323363 2012-02-19 15:09:07Z avb $
  43. * @link http://pear.php.net/package/HTML_QuickForm2
  44. */
  45. /** Interface for Controller action handlers */
  46. require_once 'HTML/QuickForm2/Controller/Action.php';
  47. /**
  48. * Action handler for a 'next' button of wizard-type multipage form
  49. *
  50. * @category HTML
  51. * @package HTML_QuickForm2
  52. * @author Alexey Borzov <avb@php.net>
  53. * @author Bertrand Mansion <golgote@mamasam.com>
  54. * @license http://opensource.org/licenses/bsd-license.php New BSD License
  55. * @version Release: 2.0.0
  56. * @link http://pear.php.net/package/HTML_QuickForm2
  57. */
  58. class HTML_QuickForm2_Controller_Action_Next
  59. implements HTML_QuickForm2_Controller_Action
  60. {
  61. public function perform(HTML_QuickForm2_Controller_Page $page, $name)
  62. {
  63. $valid = $page->storeValues();
  64. // Wizard and page is invalid: don't go further
  65. if ($page->getController()->isWizard() && !$valid) {
  66. return $page->handle('display');
  67. }
  68. // More pages?
  69. if (null !== ($next = $page->getController()->nextPage($page))) {
  70. return $next->handle('jump');
  71. // Consider this a 'finish' button, if there is no explicit one
  72. } elseif ($page->getController()->isWizard()) {
  73. if ($page->getController()->isValid()) {
  74. return $page->handle('process');
  75. } else {
  76. // redirect to the first invalid page
  77. return $page->getController()->getFirstInvalidPage()->handle('jump');
  78. }
  79. } else {
  80. return $page->handle('display');
  81. }
  82. }
  83. }
  84. ?>