|
Server IP : 10.2.73.233 / Your IP : 216.73.216.223 Web Server : Apache/2.4.59 (Debian) System : Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64 User : www-data ( 33) PHP Version : 5.6.40-64+0~20230107.71+debian10~1.gbp673146 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/ilpnowa/../ifk/web.back/framework/Web/UI/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
/**
* TForm class file
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.pradosoft.com/
* @copyright Copyright © 2005-2014 PradoSoft
* @license http://www.pradosoft.com/license/
* @package System.Web.UI
*/
/**
* TForm class
*
* TForm displays an HTML form. Besides regular body content,
* it displays hidden fields, javascript blocks and files that are registered
* through {@link TClientScriptManager}.
*
* A TForm is required for a page that needs postback.
* Each page can contain at most one TForm. If multiple HTML forms are needed,
* please use regular HTML form tags for those forms that post to different
* URLs.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @package System.Web.UI
* @since 3.0
*/
class TForm extends TControl
{
/**
* Registers the form with the page.
* @param mixed event parameter
*/
public function onInit($param)
{
parent::onInit($param);
$this->getPage()->setForm($this);
}
/**
* Adds form specific attributes to renderer.
* @param THtmlWriter writer
*/
protected function addAttributesToRender($writer)
{
$writer->addAttribute('id',$this->getClientID());
$writer->addAttribute('method',$this->getMethod());
$uri=$this->getRequest()->getRequestURI();
$writer->addAttribute('action',str_replace('&','&',str_replace('&','&',$uri)));
if(($enctype=$this->getEnctype())!=='')
$writer->addAttribute('enctype',$enctype);
$attributes=$this->getAttributes();
$attributes->remove('action');
$writer->addAttributes($attributes);
if(($butt=$this->getDefaultButton())!=='')
{
if(($button=$this->findControl($butt))!==null)
$this->getPage()->getClientScript()->registerDefaultButton($this, $button);
else
throw new TInvalidDataValueException('form_defaultbutton_invalid',$butt);
}
}
/**
* Renders the form.
* @param THtmlWriter writer
*/
public function render($writer)
{
$page=$this->getPage();
$this->addAttributesToRender($writer);
$writer->renderBeginTag('form');
$cs=$page->getClientScript();
if($page->getClientSupportsJavaScript())
{
$cs->renderHiddenFieldsBegin($writer);
$cs->renderScriptFilesBegin($writer);
$cs->renderBeginScripts($writer);
$page->beginFormRender($writer);
$this->renderChildren($writer);
$cs->renderHiddenFieldsEnd($writer);
$page->endFormRender($writer);
$cs->renderScriptFilesEnd($writer);
$cs->renderEndScripts($writer);
}
else
{
$cs->renderHiddenFieldsBegin($writer);
$page->beginFormRender($writer);
$this->renderChildren($writer);
$page->endFormRender($writer);
$cs->renderHiddenFieldsEnd($writer);
}
$writer->renderEndTag();
}
/**
* @return string id path to the default button control.
*/
public function getDefaultButton()
{
return $this->getViewState('DefaultButton','');
}
/**
* Sets a button to be default one in a form.
* A default button will be clicked if a user presses 'Enter' key within
* the form.
* @param string id path to the default button control.
*/
public function setDefaultButton($value)
{
$this->setViewState('DefaultButton',$value,'');
}
/**
* @return string form submission method. Defaults to 'post'.
*/
public function getMethod()
{
return $this->getViewState('Method','post');
}
/**
* @param string form submission method. Valid values include 'post' and 'get'.
*/
public function setMethod($value)
{
$this->setViewState('Method',TPropertyValue::ensureEnum($value,'post','get'),'post');
}
/**
* @return string the encoding type a browser uses to post data back to the server
*/
public function getEnctype()
{
return $this->getViewState('Enctype','');
}
/**
* @param string the encoding type a browser uses to post data back to the server.
* Commonly used types include
* - application/x-www-form-urlencoded : Form data is encoded as name/value pairs. This is the standard encoding format.
* - multipart/form-data : Form data is encoded as a message with a separate part for each control on the page.
* - text/plain : Form data is encoded in plain text, without any control or formatting characters.
*/
public function setEnctype($value)
{
$this->setViewState('Enctype',$value,'');
}
/**
* @return string form name, which is equal to {@link getUniqueID UniqueID}.
*/
public function getName()
{
return $this->getUniqueID();
}
}