PageRenderTime 49ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/libs/HTML/QuickForm2/Controller/Action/Next.php

https://github.com/CodeYellowBV/piwik
PHP | 88 lines | 24 code | 6 blank | 58 comment | 6 complexity | 6d503bf9c4a33c6c2fa4e6cdd653c10b MD5 | raw file
Possible License(s): LGPL-3.0, JSON, MIT, GPL-3.0, LGPL-2.1, GPL-2.0, AGPL-1.0, BSD-2-Clause, BSD-3-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-2010, 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 293411 2010-01-11 16:51:32Z 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. * @version Release: @package_version@
  55. */
  56. class HTML_QuickForm2_Controller_Action_Next
  57. implements HTML_QuickForm2_Controller_Action
  58. {
  59. public function perform(HTML_QuickForm2_Controller_Page $page, $name)
  60. {
  61. $valid = $page->storeValues();
  62. // Wizard and page is invalid: don't go further
  63. if ($page->getController()->isWizard() && !$valid) {
  64. return $page->handle('display');
  65. }
  66. // More pages?
  67. if (null !== ($next = $page->getController()->nextPage($page))) {
  68. return $next->handle('jump');
  69. // Consider this a 'finish' button, if there is no explicit one
  70. } elseif($page->getController()->isWizard()) {
  71. if ($page->getController()->isValid()) {
  72. return $page->handle('process');
  73. } else {
  74. // redirect to the first invalid page
  75. return $page->getController()->getFirstInvalidPage()->handle('jump');
  76. }
  77. } else {
  78. return $page->handle('display');
  79. }
  80. }
  81. }
  82. ?>