同步操作将从 IBOS开源OA协同办公管理/IBOS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php/*** CFormatter class file.** @author Qiang Xue <qiang.xue@gmail.com>* @link http://www.yiiframework.com/* @copyright 2008-2013 Yii Software LLC* @license http://www.yiiframework.com/license/*//*** CFormatter provides a set of commonly used data formatting methods.** The formatting methods provided by CFormatter are all named in the form of <code>formatXyz</code>.* The behavior of some of them may be configured via the properties of CFormatter. For example,* by configuring {@link dateFormat}, one may control how {@link formatDate} formats the value into a date string.** For convenience, CFormatter also implements the mechanism of calling formatting methods with their shortcuts (called types).* In particular, if a formatting method is named <code>formatXyz</code>, then its shortcut method is <code>xyz</code>* (case-insensitive). For example, calling <code>$formatter->date($value)</code> is equivalent to calling* <code>$formatter->formatDate($value)</code>.** Currently, the following types are recognizable:* <ul>* <li>raw: the attribute value will not be changed at all.</li>* <li>text: the attribute value will be HTML-encoded when rendering.</li>* <li>ntext: the {@link formatNtext} method will be called to format the attribute value as a HTML-encoded plain text with newlines converted as the HTML <br /> or <p></p> tags.</li>* <li>html: the attribute value will be purified and then returned.</li>* <li>date: the {@link formatDate} method will be called to format the attribute value as a date.</li>* <li>time: the {@link formatTime} method will be called to format the attribute value as a time.</li>* <li>datetime: the {@link formatDatetime} method will be called to format the attribute value as a date with time.</li>* <li>boolean: the {@link formatBoolean} method will be called to format the attribute value as a boolean display.</li>* <li>number: the {@link formatNumber} method will be called to format the attribute value as a number display.</li>* <li>email: the {@link formatEmail} method will be called to format the attribute value as a mailto link.</li>* <li>image: the {@link formatImage} method will be called to format the attribute value as an image tag where the attribute value is the image URL.</li>* <li>url: the {@link formatUrl} method will be called to format the attribute value as a hyperlink where the attribute value is the URL.</li>* <li>size: the {@link formatSize} method will be called to format the attribute value, interpreted as a number of bytes, as a size in human readable form.</li>* </ul>** By default, {@link CApplication} registers {@link CFormatter} as an application component whose ID is 'format'.* Therefore, one may call <code>Yii::app()->format->boolean(1)</code>.* You might want to replace this component with {@link CLocalizedFormatter} to enable formatting based on the* current locale settings.** @property CHtmlPurifier $htmlPurifier The HTML purifier instance.** @author Qiang Xue <qiang.xue@gmail.com>* @package system.utils* @since 1.1.0*/class CFormatter extends CApplicationComponent{/*** @var CHtmlPurifier*/private $_htmlPurifier;/*** @var string the format string to be used to format a date using PHP date() function. Defaults to 'Y/m/d'.*/public $dateFormat='Y/m/d';/*** @var string the format string to be used to format a time using PHP date() function. Defaults to 'h:i:s A'.*/public $timeFormat='h:i:s A';/*** @var string the format string to be used to format a date and time using PHP date() function. Defaults to 'Y/m/d h:i:s A'.*/public $datetimeFormat='Y/m/d h:i:s A';/*** @var array the format used to format a number with PHP number_format() function.* Three elements may be specified: "decimals", "decimalSeparator" and "thousandSeparator".* They correspond to the number of digits after the decimal point, the character displayed as the decimal point* and the thousands separator character.*/public $numberFormat=array('decimals'=>null, 'decimalSeparator'=>null, 'thousandSeparator'=>null);/*** @var array the text to be displayed when formatting a boolean value. The first element corresponds* to the text display for false, the second element for true. Defaults to <code>array('No', 'Yes')</code>.*/public $booleanFormat=array('No','Yes');/*** @var array the options to be passed to CHtmlPurifier instance used in this class. CHtmlPurifier is used* in {@link formatHtml} method, so this property could be useful to customize HTML filtering behavior.* @since 1.1.13*/public $htmlPurifierOptions=array();/*** @var array the format used to format size (bytes). Three elements may be specified: "base", "decimals" and "decimalSeparator".* They correspond to the base at which a kilobyte is calculated (1000 or 1024 bytes per kilobyte, defaults to 1024),* the number of digits after the decimal point (defaults to 2) and the character displayed as the decimal point.* "decimalSeparator" is available since version 1.1.13* @since 1.1.11*/public $sizeFormat=array('base'=>1024,'decimals'=>2,'decimalSeparator'=>null,);/*** Calls the format method when its shortcut is invoked.* This is a PHP magic method that we override to implement the shortcut format methods.* @param string $name the method name* @param array $parameters method parameters* @return mixed the method return value*/public function __call($name,$parameters){if(method_exists($this,'format'.$name))return call_user_func_array(array($this,'format'.$name),$parameters);elsereturn parent::__call($name,$parameters);}/*** Formats a value based on the given type.* @param mixed $value the value to be formatted* @param string $type the data type. This must correspond to a format method available in CFormatter.* For example, we can use 'text' here because there is method named {@link formatText}.* @throws CException if given type is unknown* @return string the formatted data*/public function format($value,$type){$method='format'.$type;if(method_exists($this,$method))return $this->$method($value);elsethrow new CException(Yii::t('yii','Unknown type "{type}".',array('{type}'=>$type)));}/*** Formats the value as is without any formatting.* This method simply returns back the parameter without any format.* @param mixed $value the value to be formatted* @return string the formatted result*/public function formatRaw($value){return $value;}/*** Formats the value as a HTML-encoded plain text.* @param mixed $value the value to be formatted* @return string the formatted result*/public function formatText($value){return CHtml::encode($value);}/*** Formats the value as a HTML-encoded plain text and converts newlines with HTML <br /> or* <p></p> tags.* @param mixed $value the value to be formatted* @param boolean $paragraphs whether newlines should be converted to HTML <p></p> tags,* false by default meaning that HTML <br /> tags will be used* @param boolean $removeEmptyParagraphs whether empty paragraphs should be removed, defaults to true;* makes sense only when $paragraphs parameter is true* @return string the formatted result*/public function formatNtext($value,$paragraphs=false,$removeEmptyParagraphs=true){$value=CHtml::encode($value);if($paragraphs){$value='<p>'.str_replace(array("\r\n", "\n", "\r"), '</p><p>',$value).'</p>';if($removeEmptyParagraphs)$value=preg_replace('/(<\/p><p>){2,}/i','</p><p>',$value);return $value;}else{return nl2br($value);}}/*** Formats the value as HTML text without any encoding.* @param mixed $value the value to be formatted* @return string the formatted result*/public function formatHtml($value){return $this->getHtmlPurifier()->purify($value);}/*** Formats the value as a date.* @param mixed $value the value to be formatted* @return string the formatted result* @see dateFormat*/public function formatDate($value){return date($this->dateFormat,$this->normalizeDateValue($value));}/*** Formats the value as a time.* @param mixed $value the value to be formatted* @return string the formatted result* @see timeFormat*/public function formatTime($value){return date($this->timeFormat,$this->normalizeDateValue($value));}/*** Formats the value as a date and time.* @param mixed $value the value to be formatted* @return string the formatted result* @see datetimeFormat*/public function formatDatetime($value){return date($this->datetimeFormat,$this->normalizeDateValue($value));}/*** Normalizes an expression as a timestamp.* @param mixed $time the time expression to be normalized* @return int the normalized result as a UNIX timestamp*/protected function normalizeDateValue($time){if(is_string($time)){if(ctype_digit($time) || ($time{0}=='-' && ctype_digit(substr($time, 1))))return (int)$time;elsereturn strtotime($time);}elseif (class_exists('DateTime', false) && $time instanceof DateTime)return $time->getTimestamp();elsereturn (int)$time;}/*** Formats the value as a boolean.* @param mixed $value the value to be formatted* @return string the formatted result* @see booleanFormat*/public function formatBoolean($value){return $value ? $this->booleanFormat[1] : $this->booleanFormat[0];}/*** Formats the value as a mailto link.* @param mixed $value the value to be formatted* @return string the formatted result*/public function formatEmail($value){return CHtml::mailto($value);}/*** Formats the value as an image tag.* @param mixed $value the value to be formatted* @return string the formatted result*/public function formatImage($value){return CHtml::image($value);}/*** Formats the value as a hyperlink.* @param mixed $value the value to be formatted* @return string the formatted result*/public function formatUrl($value){$url=$value;if(strpos($url,'http://')!==0 && strpos($url,'https://')!==0)$url='http://'.$url;return CHtml::link(CHtml::encode($value),$url);}/*** Formats the value as a number using PHP number_format() function.* @param mixed $value the value to be formatted* @return string the formatted result* @see numberFormat*/public function formatNumber($value){return number_format($value,$this->numberFormat['decimals'],$this->numberFormat['decimalSeparator'],$this->numberFormat['thousandSeparator']);}/*** @return CHtmlPurifier the HTML purifier instance*/public function getHtmlPurifier(){if($this->_htmlPurifier===null)$this->_htmlPurifier=new CHtmlPurifier;$this->_htmlPurifier->options=$this->htmlPurifierOptions;return $this->_htmlPurifier;}/*** Formats the value in bytes as a size in human readable form.* @param integer $value value in bytes to be formatted* @param boolean $verbose if full names should be used (e.g. bytes, kilobytes, ...).* Defaults to false meaning that short names will be used (e.g. B, KB, ...).* @return string the formatted result* @see sizeFormat* @since 1.1.11*/public function formatSize($value,$verbose=false){$base=$this->sizeFormat['base'];for($i=0; $base<=$value && $i<5; $i++)$value=$value/$base;$value=round($value, $this->sizeFormat['decimals']);$formattedValue=isset($this->sizeFormat['decimalSeparator']) ? str_replace('.',$this->sizeFormat['decimalSeparator'],$value) : $value;$params=array($value,'{n}'=>$formattedValue);switch($i){case 0:return $verbose ? Yii::t('yii','{n} byte|{n} bytes',$params) : Yii::t('yii', '{n} B',$params);case 1:return $verbose ? Yii::t('yii','{n} kilobyte|{n} kilobytes',$params) : Yii::t('yii','{n} KB',$params);case 2:return $verbose ? Yii::t('yii','{n} megabyte|{n} megabytes',$params) : Yii::t('yii','{n} MB',$params);case 3:return $verbose ? Yii::t('yii','{n} gigabyte|{n} gigabytes',$params) : Yii::t('yii','{n} GB',$params);default:return $verbose ? Yii::t('yii','{n} terabyte|{n} terabytes',$params) : Yii::t('yii','{n} TB',$params);}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。