CHips L MINI SHELL

CHips L pro

Current Path : /opt/cpanel/ea-php70/root/usr/share/pear/HTML/QuickForm2/Controller/
Upload File :
Current File : //opt/cpanel/ea-php70/root/usr/share/pear/HTML/QuickForm2/Controller/Page.php

<?php
/**
 * Class representing a page of a multipage form
 *
 * PHP version 5
 *
 * LICENSE
 *
 * This source file is subject to BSD 3-Clause License that is bundled
 * with this package in the file LICENSE and available at the URL
 * https://raw.githubusercontent.com/pear/HTML_QuickForm2/trunk/docs/LICENSE
 *
 * @category  HTML
 * @package   HTML_QuickForm2
 * @author    Alexey Borzov <avb@php.net>
 * @author    Bertrand Mansion <golgote@mamasam.com>
 * @copyright 2006-2019 Alexey Borzov <avb@php.net>, Bertrand Mansion <golgote@mamasam.com>
 * @license   https://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @link      https://pear.php.net/package/HTML_QuickForm2
 */

/**
 * Class representing a page of a multipage form
 *
 * Unlike old HTML_QuickForm_Controller, this does not extend HTML_QuickForm2
 * but accepts an instance of that in the constructor. You need to create a
 * subclass of this class and implement its populateForm() method.
 *
 * @category HTML
 * @package  HTML_QuickForm2
 * @author   Alexey Borzov <avb@php.net>
 * @author   Bertrand Mansion <golgote@mamasam.com>
 * @license  https://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @version  Release: 2.1.0
 * @link     https://pear.php.net/package/HTML_QuickForm2
 */
abstract class HTML_QuickForm2_Controller_Page
{
   /**
    * Button name template (needs form ID and action name substituted by sprintf())
    */
    const KEY_NAME = '_qf_%s_%s';

   /**
    * Whether populateForm() was already called
    * @var  boolean
    */
    private $_formPopulated = false;

   /**
    * The form wrapped by this page
    * @var  HTML_QuickForm2
    */
    protected $form = null;

   /**
    * Controller this page belongs to
    * @var  HTML_QuickForm2_Controller
    */
    protected $controller = null;

   /**
    * Contains the mapping of action names to handlers (objects implementing HTML_QuickForm2_Controller_Action)
    * @var  array
    */
    protected $handlers = array();

   /**
    * Class constructor, accepts the form to wrap around
    *
    * @param HTML_QuickForm2 $form
    */
    public function __construct(HTML_QuickForm2 $form)
    {
        $this->form = $form;
    }

   /**
    * Returns the form this page wraps around
    *
    * @return   HTML_QuickForm2
    */
    public function getForm()
    {
        return $this->form;
    }

   /**
    * Sets the controller owning the page
    *
    * @param HTML_QuickForm2_Controller $controller controller the page belongs to
    */
    public function setController(HTML_QuickForm2_Controller $controller)
    {
        $this->controller = $controller;
    }

   /**
    * Returns the controller owning this page
    *
    * @return   HTML_QuickForm2_Controller
    */
    public function getController()
    {
        return $this->controller;
    }

   /**
    * Adds a handler for a specific action
    *
    * @param string                            $actionName action name
    * @param HTML_QuickForm2_Controller_Action $action     the handler for the action
    */
    public function addHandler($actionName, HTML_QuickForm2_Controller_Action $action)
    {
        $this->handlers[$actionName] = $action;
    }

   /**
    * Handles an action
    *
    * If the page does not contain a handler for this action, controller's
    * handle() method will be called.
    *
    * @param string $actionName Name of the action
    *
    * @return   mixed Return value of action handler
    * @throws   HTML_QuickForm2_NotFoundException   if handler for an action is missing
    */
    public function handle($actionName)
    {
        if (isset($this->handlers[$actionName])) {
            return $this->handlers[$actionName]->perform($this, $actionName);
        } else {
            return $this->getController()->handle($this, $actionName);
        }
    }

   /**
    * Returns a name for a submit button that will invoke a specific action
    *
    * @param string $actionName Name of the action
    *
    * @return string  "name" attribute for a submit button
    */
    public function getButtonName($actionName)
    {
        return sprintf(self::KEY_NAME, $this->getForm()->getId(), $actionName);
    }

   /**
    * Sets the default action invoked on page-form submit
    *
    * This is necessary as the user may just press Enter instead of
    * clicking one of the named submit buttons and then no action name will
    * be passed to the script.
    *
    * @param string $actionName Default action name
    * @param string $imageSrc   Path to a 1x1 transparent GIF image
    *
    * @return HTML_QuickForm2_Controller_DefaultAction Returns the image input used for default action
    */
    public function setDefaultAction(
        $actionName,
        $imageSrc = 'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='
    ) {
        require_once 'HTML/QuickForm2/Controller/DefaultAction.php';

        if (0 == count($this->form)) {
            $image = $this->form->appendChild(
                new HTML_QuickForm2_Controller_DefaultAction(
                    $this->getButtonName($actionName), array('src' => $imageSrc)
                )
            );

        // replace the existing DefaultAction
        } elseif ($image = $this->form->getElementById('qf:default-action')) {
            $image->setName($this->getButtonName($actionName))
                ->setAttribute('src', $imageSrc);

        // Inject the element to the first position to improve chances that
        // it ends up on top in the output
        } else {
            $it = $this->form->getIterator();
            $it->rewind();
            $image = $this->form->insertBefore(
                new HTML_QuickForm2_Controller_DefaultAction(
                    $this->getButtonName($actionName), array('src' => $imageSrc)
                ),
                $it->current()
            );
        }
        return $image;
    }

   /**
    * Wrapper around populateForm() ensuring that it is only called once
    */
    final public function populateFormOnce()
    {
        if (!$this->_formPopulated) {
            if (!empty($this->controller) && $this->controller->propagateId()) {
                $this->form->addElement(
                    'hidden', HTML_QuickForm2_Controller::KEY_ID,
                    array('id' => 'qf:controller-id')
                )->setValue($this->controller->getId());
            }
            $this->populateForm();
            $this->_formPopulated = true;
        }
    }

   /**
    * Populates the form with the elements
    *
    * The implementation of this method in your subclass of
    * HTML_QuickForm2_Controller_Page should contain all the necessary
    * addElement(), addRule() etc. calls. The method will only be called if
    * needed to prevent wasting resources on the forms that aren't going to
    * be seen by the user.
    */
    abstract protected function populateForm();

   /**
    * Stores the form values (and validation status) is session container
    *
    * @param bool $validate Whether to store validation status
    *
    * @return   bool    Validation status for the page
    */
    public function storeValues($validate = true)
    {
        $this->populateFormOnce();
        $container = $this->getController()->getSessionContainer();
        $id        = $this->form->getId();

        $container->storeValues($id, (array)$this->form->getValue());
        if ($validate) {
            $container->storeValidationStatus($id, $this->form->validate());
        }
        return $container->getValidationStatus($id);
    }
}
?>

Copyright 2K16 - 2K18 Indonesian Hacker Rulez