CTextHighlighter
包 | system.web.widgets |
---|---|
继承 | class CTextHighlighter » COutputProcessor » CFilterWidget » CWidget » CBaseController » CComponent |
实现 | IFilter |
可用自 | 1.0 |
源码 | framework/web/widgets/CTextHighlighter.php |
The language of the syntax to be applied is specified via language property. Currently, CTextHighlighter supports the following languages: ABAP, CPP, CSS, DIFF, DTD, HTML, JAVA, JAVASCRIPT, MYSQL, PERL, PHP, PYTHON, RUBY, SQL, XML. By setting showLineNumbers to true, the highlighted result may be shown with line numbers.
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
actionPrefix | string | the prefix to the IDs of the actions. | CWidget |
containerOptions | array | the HTML attributes to be applied to the container element. | CTextHighlighter |
controller | CController | Returns the controller that this widget belongs to. | CWidget |
cssFile | mixed | the CSS file used for the widget. | CTextHighlighter |
id | string | Returns the ID of the widget or generates a new one if requested. | CWidget |
isFilter | boolean | whether this widget is used as a filter. | CFilterWidget |
language | string | the language whose syntax is to be used for highlighting. | CTextHighlighter |
lineNumberStyle | string | the style of line number display. | CTextHighlighter |
owner | CBaseController | Returns the owner/creator of this widget. | CWidget |
showLineNumbers | boolean | whether to show line numbers in the highlighted result. | CTextHighlighter |
skin | mixed | the name of the skin to be used by this widget. | CWidget |
stopAction | boolean | whether to stop the action execution when this widget is used as a filter. | CFilterWidget |
tabSize | integer | tab size. | CTextHighlighter |
viewPath | string | Returns the directory containing the view files for this widget. | CWidget |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | Constructor. | CFilterWidget |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
actions() | Returns a list of actions that are used by this widget. | CWidget |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
beginCache() | Begins fragment caching. | CBaseController |
beginClip() | Begins recording a clip. | CBaseController |
beginContent() | Begins the rendering of content that is to be decorated by the specified view. | CBaseController |
beginWidget() | Creates a widget and executes it. | CBaseController |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
createWidget() | Creates a widget and initializes it. | CBaseController |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
endCache() | Ends fragment caching. | CBaseController |
endClip() | Ends recording a clip. | CBaseController |
endContent() | Ends the rendering of content. | CBaseController |
endWidget() | Ends the execution of the named widget. | CBaseController |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
filter() | Performs the filtering. | CFilterWidget |
getController() | Returns the controller that this widget belongs to. | CWidget |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getId() | Returns the ID of the widget or generates a new one if requested. | CWidget |
getIsFilter() | Checks whether this widget is used as a filter. | CFilterWidget |
getOwner() | Returns the owner/creator of this widget. | CWidget |
getViewFile() | Looks for the view script file according to the view name. | CWidget |
getViewPath() | Returns the directory containing the view files for this widget. | CWidget |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
highlight() | Highlights the content by the syntax of the specified language. | CTextHighlighter |
init() | Initializes the widget. | COutputProcessor |
onProcessOutput() | Raised when the output has been captured. | COutputProcessor |
processOutput() | Processes the captured output. | CTextHighlighter |
raiseEvent() | Raises an event. | CComponent |
registerClientScript() | Registers the needed CSS and JavaScript. | CTextHighlighter |
registerCssFile() | Registers the needed CSS file. | CTextHighlighter |
render() | Renders a view. | CWidget |
renderFile() | Renders a view file. | CBaseController |
renderInternal() | Renders a view file. | CBaseController |
run() | Executes the widget. | COutputProcessor |
setId() | Sets the ID of the widget. | CWidget |
widget() | Creates a widget and executes it. | CBaseController |
属性详情
the HTML attributes to be applied to the container element. The highlighted content is contained in a DIV element.
the CSS file used for the widget. Defaults to null, meaning using the default CSS file included together with the widget. If false, no CSS file will be used. Otherwise, the specified CSS file will be included when using this widget.
the language whose syntax is to be used for highlighting. Valid values are those file names (without suffix) that are contained in 'vendors/TextHighlighter/Text/Highlighter'. Currently, the following languages are supported: ABAP, CPP, CSS, DIFF, DTD, HTML, JAVA, JAVASCRIPT, MYSQL, PERL, PHP, PYTHON, RUBY, SQL, XML If a language is not supported, it will be displayed as plain text. Language names are case-insensitive.
the style of line number display. It can be either 'list' or 'table'. Defaults to 'list'.
whether to show line numbers in the highlighted result. Defaults to false.
tab size. Defaults to 4.
方法详情
public string highlight(string $content)
| ||
$content | string | the content to be highlighted. |
{return} | string | the highlighted content |
public function highlight($content)
{
$this->registerClientScript();
$options['use_language']=true;
$options['tabsize']=$this->tabSize;
if($this->showLineNumbers)
$options['numbers']=($this->lineNumberStyle==='list')?HL_NUMBERS_LI:HL_NUMBERS_TABLE;
$highlighter=empty($this->language)?false:Text_Highlighter::factory($this->language);
if($highlighter===false)
$o='<pre>'.CHtml::encode($content).'</pre>';
else
{
$highlighter->setRenderer(new Text_Highlighter_Renderer_Html($options));
$o=preg_replace('/<span\s+[^>]*>(\s*)<\/span>/','\1',$highlighter->highlight($content));
}
return CHtml::tag('div',$this->containerOptions,$o);
}
Highlights the content by the syntax of the specified language.
public void processOutput(string $output)
| ||
$output | string | the captured output to be processed |
public function processOutput($output)
{
$output=$this->highlight($output);
parent::processOutput($output);
}
Processes the captured output. This method highlights the output according to the syntax of the specified language.
public void registerClientScript()
|
public function registerClientScript()
{
if($this->cssFile!==false)
self::registerCssFile($this->cssFile);
}
Registers the needed CSS and JavaScript.
public static void registerCssFile(string $url=NULL)
| ||
$url | string | the CSS URL. If null, a default CSS URL will be used. |
public static function registerCssFile($url=null)
{
if($url===null)
$url=CHtml::asset(Yii::getPathOfAlias('system.vendors.TextHighlighter.highlight').'.css');
Yii::app()->getClientScript()->registerCssFile($url);
}
Registers the needed CSS file.