htmlform.php

来自「php 开发的内容管理系统」· PHP 代码 · 共 178 行

PHP
178
字号
<?php/** * This file contain a class to easily build HTML forms as well as custom * functions used by SpecialUserrights.php * @package MediaWiki *//** * Class to build various forms * * @package MediaWiki * @author jeluf, hashar */class HTMLForm {	/** name of our form. Used as prefix for labels */	var $mName, $mRequest;	function HTMLForm( &$request ) {		$this->mRequest = $request;	}	/**	 * @private	 * @param $name String: name of the fieldset.	 * @param $content String: HTML content to put in.	 * @return string HTML fieldset	 */	function fieldset( $name, $content ) {		return "<fieldset><legend>".wfMsg($this->mName.'-'.$name)."</legend>\n" .			$content . "\n</fieldset>\n";	}	/**	 * @private	 * @param $varname String: name of the checkbox.	 * @param $checked Boolean: set true to check the box (default False).	 */	function checkbox( $varname, $checked=false ) {		if ( $this->mRequest->wasPosted() && !is_null( $this->mRequest->getVal( $varname ) ) ) {			$checked = $this->mRequest->getCheck( $varname );		}		return "<div><input type='checkbox' value=\"1\" id=\"{$varname}\" name=\"wpOp{$varname}\"" .			( $checked ? ' checked="checked"' : '' ) .			" /><label for=\"{$varname}\">". wfMsg( $this->mName.'-'.$varname ) .			"</label></div>\n";	}	/**	 * @private	 * @param $varname String: name of the textbox.	 * @param $value String: optional value (default empty)	 * @param $size Integer: optional size of the textbox (default 20)	 */	function textbox( $varname, $value='', $size=20 ) {		if ( $this->mRequest->wasPosted() ) {			$value = $this->mRequest->getText( $varname, $value );		}		$value = htmlspecialchars( $value );		return "<div><label>". wfMsg( $this->mName.'-'.$varname ) .			"<input type='text' name=\"{$varname}\" value=\"{$value}\" size=\"{$size}\" /></label></div>\n";	}	/**	 * @private	 * @param $varname String: name of the radiobox.	 * @param $fields Array: Various fields.	 */	function radiobox( $varname, $fields ) {		foreach ( $fields as $value => $checked ) {			$s .= "<div><label><input type='radio' name=\"{$varname}\" value=\"{$value}\"" .				( $checked ? ' checked="checked"' : '' ) . " />" . wfMsg( $this->mName.'-'.$varname.'-'.$value ) .				"</label></div>\n";		}		return $this->fieldset( $this->mName.'-'.$varname, $s );	}	/**	 * @private	 * @param $varname String: name of the textareabox.	 * @param $value String: optional value (default empty)	 * @param $size Integer: optional size of the textarea (default 20)	 */	function textareabox ( $varname, $value='', $size=20 ) {		if ( $this->mRequest->wasPosted() ) {			$value = $this->mRequest->getText( $varname, $value );		}		$value = htmlspecialchars( $value );		return '<div><label>'.wfMsg( $this->mName.'-'.$varname ).		       "<textarea name=\"{$varname}\" rows=\"5\" cols=\"{$size}\">$value</textarea></label></div>\n";	}	/**	 * @private	 * @param $varname String: name of the arraybox.	 * @param $size Integer: Optional size of the textarea (default 20)	 */	function arraybox( $varname , $size=20 ) {		$s = '';		if ( $this->mRequest->wasPosted() ) {			$arr = $this->mRequest->getArray( $varname );			if ( is_array( $arr ) ) {				foreach ( $_POST[$varname] as $index => $element ) {					$s .= htmlspecialchars( $element )."\n";				}			}		}		return "<div><label>".wfMsg( $this->mName.'-'.$varname ).			"<textarea name=\"{$varname}\" rows=\"5\" cols=\"{$size}\">{$s}</textarea>\n";	}} // end class// functions used by SpecialUserrights.php/** Build a select with all defined groups * @param $selectname String: name of this element. Name of form is automaticly prefixed. * @param $selectmsg String: FIXME * @param $selected Array: array of element selected when posted. Only multiples will show them. * @param $multiple Boolean: A multiple elements select. * @param $size Integer: number of elements to be shown ignored for non-multiple (default 6). * @param $reverse Boolean: if true, multiple select will hide selected elements (default false). * @todo Document $selectmsg*/function HTMLSelectGroups($selectname, $selectmsg, $selected=array(), $multiple=false, $size=6, $reverse=false) {	$groups = User::getAllGroups();	$out = htmlspecialchars( wfMsg( $selectmsg ) );	if( $multiple ) {		$attribs = array(			'name'    => $selectname . '[]',			'multiple'=> 'multiple',			'size'    => $size );	} else {		$attribs = array( 'name' => $selectname );	}	$out .= wfElement( 'select', $attribs, null );	foreach( $groups as $group ) {		$attribs = array( 'value' => $group );		if( $multiple ) {			// for multiple will only show the things we want			if( !in_array( $group, $selected ) xor $reverse ) {				continue;			}		} else {			if( in_array( $group, $selected ) ) {				$attribs['selected'] = 'selected';			}		}		$out .= wfElement( 'option', $attribs, User::getGroupName( $group ) ) . "\n";	}	$out .= "</select>\n";	return $out;}/** Build a select with all existent rights * @param $selected Array: Names(?) of user rights that should be selected. * @return string HTML select. */function HTMLSelectRights($selected='') {	global $wgAvailableRights;	$out = '<select name="editgroup-getrights[]" multiple="multiple">';	$groupRights = explode(',',$selected);	foreach($wgAvailableRights as $right) {		// check box when right exist		if(in_array($right, $groupRights)) { $selected = 'selected="selected" '; }		else { $selected = ''; }		$out .= '<option value="'.$right.'" '.$selected.'>'.$right."</option>\n";	}	$out .= "</select>\n";	return $out;}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?