📄 default.php
字号:
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP version 4.0 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2003 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Alexey Borzov <borz_off@cs.msu.su> |
// | Adam Daniel <adaniel1@eesus.jnj.com> |
// | Bertrand Mansion <bmansion@mamasam.com> |
// +----------------------------------------------------------------------+
//
// $Id$
require_once('HTML/QuickForm/Renderer.php');
/**
* A concrete renderer for HTML_QuickForm,
* based on QuickForm 2.x built-in one
*
* @access public
*/
class HTML_QuickForm_Renderer_Default extends HTML_QuickForm_Renderer
{
/**
* The HTML of the form
* @var string
* @access private
*/
var $_html;
/**
* Header Template string
* @var string
* @access private
*/
var $_headerTemplate =
"\n\t<tr>\n\t\t<td style=\"white-space: nowrap; background-color: #CCCCCC;\" align=\"left\" valign=\"top\" colspan=\"2\"><b>{header}</b></td>\n\t</tr>";
/**
* Element template string
* @var string
* @access private
*/
var $_elementTemplate =
"\n\t<tr>\n\t\t<td align=\"right\" valign=\"top\"><!-- BEGIN required --><span style=\"color: #ff0000\">*</span><!-- END required --><b>{label}</b></td>\n\t\t<td valign=\"top\" align=\"left\"><!-- BEGIN error --><span style=\"color: #ff0000\">{error}</span><br /><!-- END error -->\t{element}</td>\n\t</tr>";
/**
* Form template string
* @var string
* @access private
*/
var $_formTemplate =
"\n<form{attributes}>\n<div>\n{hidden}<table border=\"0\">\n{content}\n</table>\n</div>\n</form>";
/**
* Required Note template string
* @var string
* @access private
*/
var $_requiredNoteTemplate =
"\n\t<tr>\n\t\t<td></td>\n\t<td align=\"left\" valign=\"top\">{requiredNote}</td>\n\t</tr>";
/**
* Array containing the templates for customised elements
* @var array
* @access private
*/
var $_templates = array();
/**
* Array containing the templates for group wraps.
*
* These templates are wrapped around group elements and groups' own
* templates wrap around them. This is set by setGroupTemplate().
*
* @var array
* @access private
*/
var $_groupWraps = array();
/**
* Array containing the templates for elements within groups
* @var array
* @access private
*/
var $_groupTemplates = array();
/**
* True if we are inside a group
* @var bool
* @access private
*/
var $_inGroup = false;
/**
* Array with HTML generated for group elements
* @var array
* @access private
*/
var $_groupElements = array();
/**
* Template for an element inside a group
* @var string
* @access private
*/
var $_groupElementTemplate = '';
/**
* HTML that wraps around the group elements
* @var string
* @access private
*/
var $_groupWrap = '';
/**
* HTML for the current group
* @var string
* @access private
*/
var $_groupTemplate = '';
/**
* Collected HTML of the hidden fields
* @var string
* @access private
*/
var $_hiddenHtml = '';
/**
* Constructor
*
* @access public
*/
function HTML_QuickForm_Renderer_Default()
{
$this->HTML_QuickForm_Renderer();
} // end constructor
/**
* returns the HTML generated for the form
*
* @access public
* @return string
*/
function toHtml()
{
// _hiddenHtml is cleared in finishForm(), so this only matters when
// finishForm() was not called (e.g. group::toHtml(), bug #3511)
return $this->_hiddenHtml . $this->_html;
} // end func toHtml
/**
* Called when visiting a form, before processing any form elements
*
* @param object An HTML_QuickForm object being visited
* @access public
* @return void
*/
function startForm(&$form)
{
$this->_html = '';
$this->_hiddenHtml = '';
} // end func startForm
/**
* Called when visiting a form, after processing all form elements
* Adds required note, form attributes, validation javascript and form content.
*
* @param object An HTML_QuickForm object being visited
* @access public
* @return void
*/
function finishForm(&$form)
{
// add a required note, if one is needed
if (!empty($form->_required) && !$form->_freezeAll) {
$this->_html .= str_replace('{requiredNote}', $form->getRequiredNote(), $this->_requiredNoteTemplate);
}
// add form attributes and content
$html = str_replace('{attributes}', $form->getAttributes(true), $this->_formTemplate);
if (strpos($this->_formTemplate, '{hidden}')) {
$html = str_replace('{hidden}', $this->_hiddenHtml, $html);
} else {
$this->_html .= $this->_hiddenHtml;
}
$this->_hiddenHtml = '';
$this->_html = str_replace('{content}', $this->_html, $html);
// add a validation script
if ('' != ($script = $form->getValidationScript())) {
$this->_html = $script . "\n" . $this->_html;
}
} // end func finishForm
/**
* Called when visiting a header element
*
* @param object An HTML_QuickForm_header element being visited
* @access public
* @return void
*/
function renderHeader(&$header)
{
$name = $header->getName();
if (!empty($name) && isset($this->_templates[$name])) {
$this->_html .= str_replace('{header}', $header->toHtml(), $this->_templates[$name]);
} else {
$this->_html .= str_replace('{header}', $header->toHtml(), $this->_headerTemplate);
}
} // end func renderHeader
/**
* Helper method for renderElement
*
* @param string Element name
* @param mixed Element label (if using an array of labels, you should set the appropriate template)
* @param bool Whether an element is required
* @param string Error message associated with the element
* @access private
* @see renderElement()
* @return string Html for element
*/
function _prepareTemplate($name, $label, $required, $error)
{
if (is_array($label)) {
$nameLabel = array_shift($label);
} else {
$nameLabel = $label;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -