CTextHighlighter
| Пакет | system.web.widgets |
|---|---|
| Наследование | class CTextHighlighter » COutputProcessor » CFilterWidget » CWidget » CBaseController » CComponent |
| Реализует | IFilter |
| С | 1.0 |
| Исходный код | framework/web/widgets/CTextHighlighter.php |
Язык синтаксиса, который необходимо применить, задаётся свойством language. В настоящее время CTextHighlighter поддерживает следующие языки: ABAP, CPP, CSS, DIFF, DTD, HTML, JAVA, JAVASCRIPT, MYSQL, PERL, PHP, PYTHON, RUBY, SQL, XML. Установив showLineNumbers в значение true, можно отобразить результат подсветки с номерами строк.
Общественные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| actionPrefix | строка | префикс для идентификаторов действий. | CWidget |
| containerOptions | массив | атрибуты HTML, применяемые к элементу контейнера. | CTextHighlighter |
| controller | CController | Возвращает контроллер, к которому принадлежит данный виджет. | CWidget |
| cssFile | смешанный тип | CSS-файл, используемый для виджета. | CTextHighlighter |
| id | строка | Возвращает ID виджета или генерирует новый, если запрошено. | CWidget |
| isFilter | логическое значение | указывает, используется ли данный виджет в качестве фильтра. | CFilterWidget |
| language | строка | язык, синтаксис которого необходимо использовать для подсветки. | CTextHighlighter |
| lineNumberStyle | строка | стиль отображения номеров строк. | CTextHighlighter |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| showLineNumbers | логическое значение | указывает, необходимо ли отображать номера строк в результатах подсветки. | CTextHighlighter |
| skin | смешанный тип | название скина, который будет использоваться этим виджетом. | CWidget |
| stopAction | логическое значение | указывает, следует ли остановить выполнение действия, когда этот виджет используется как фильтр. | CFilterWidget |
| tabSize | целое число | размер табуляции. | CTextHighlighter |
| viewPath | строка | Возвращает каталог, содержащий файлы представления для этого виджета. | CWidget |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CFilterWidget |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| actions() | Возвращает список действий, используемых этим виджетом. | CWidget |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| beginCache() | Начинает кэширование фрагмента. | CBaseController |
| beginClip() | Начинает запись клипа. | CBaseController |
| beginContent() | Начинает рендеринг контента, который должен быть оформлен указанным представлением. | CBaseController |
| beginWidget() | Создает виджет и выполняет его. | CBaseController |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createWidget() | Создает виджет и инициализирует его. | CBaseController |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые к этому компоненту поведения. | CComponent |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые к этому компоненту поведения. | CComponent |
| endCache() | Завершает кэширование фрагмента. | CBaseController |
| endClip() | Завершает запись клипа. | CBaseController |
| endContent() | Завершает рендеринг контента. | CBaseController |
| endWidget() | Завершает выполнение указанного виджета. | CBaseController |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте этого компонента. | CComponent |
| filter() | Выполняет фильтрацию. | CFilterWidget |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getEventHandlers() | Возвращает список присоединенных обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор виджета или генерирует новый, если запрошено. | CWidget |
| getIsFilter() | Проверяет, используется ли этот виджет в качестве фильтра. | CFilterWidget |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getViewFile() | Ищет файл скрипта представления в соответствии с именем представления. | CWidget |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли у указанного события прикреплённые обработчики. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| highlight() | Подсвечивает контент по синтаксису указанного языка. | CTextHighlighter |
| init() | Инициализирует виджет. | COutputProcessor |
| onProcessOutput() | Срабатывает, когда вывод был получен. | COutputProcessor |
| processOutput() | Обрабатывает полученный вывод. | CTextHighlighter |
| raiseEvent() | Вызывает событие. | CComponent |
| registerClientScript() | Регистрирует необходимые CSS и JavaScript. | CTextHighlighter |
| registerCssFile() | Регистрирует необходимый файл CSS. | CTextHighlighter |
| render() | Отображает представление. | CWidget |
| renderFile() | Отображает файл представления. | CBaseController |
| renderInternal() | Отображает файл представления. | CBaseController |
| run() | Выполняет виджет. | COutputProcessor |
| setId() | Устанавливает идентификатор виджета. | CWidget |
| widget() | Создает виджет и выполняет его. | CBaseController |
События
| Событие | Описание | Определено в |
|---|---|---|
| onProcessOutput | Срабатывает, когда вывод был получен. | COutputProcessor |
Подробное описание свойств
containerOptions свойство
public array $containerOptions;
атрибуты HTML, которые нужно применить к контейнерному элементу. Подчеркнутое содержимое находится в элементе DIV.
cssFile свойство
public mixed $cssFile;
файл CSS, используемый для виджета. По умолчанию равен null, что означает использование файла CSS по умолчанию, включенного вместе с виджетом. Если false, файл CSS не будет использоваться. В противном случае указанный файл CSS будет включён при использовании этого виджета.
language свойство
public string $language;
язык, синтаксис которого должен использоваться для подсветки. Допустимые значения — имена файлов (без расширения), содержащиеся в 'vendors/TextHighlighter/Text/Highlighter'. В настоящее время поддерживаются следующие языки: ABAP, CPP, CSS, DIFF, DTD, HTML, JAVA, JAVASCRIPT, MYSQL, PERL, PHP, PYTHON, RUBY, SQL, XML. Если язык не поддерживается, он будет отображаться как обычный текст. Имена языков нечувствительны к регистру.
lineNumberStyle свойство
public string $lineNumberStyle;
стиль отображения номеров строк. Может быть 'list' или 'table'. По умолчанию 'list'.
См. также
showLineNumbers свойство
public boolean $showLineNumbers;
отображать ли номера строк в результатах подсветки. По умолчанию false.
См. также
tabSize свойство
public integer $tabSize;
размер табуляции. По умолчанию 4.
Подробное описание методов
highlight() метод
public string highlight(string $content) | ||
| $content | string | содержимое, которое нужно подсветить. |
| {return} | string | подсвеченное содержимое |
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);
}
Подсвечивает содержимое по синтаксису указанного языка.
processOutput() метод
public void processOutput(string $output) | ||
| $output | string | захваченный вывод для обработки |
public function processOutput($output)
{
$output=$this->highlight($output);
parent::processOutput($output);
}
Обрабатывает полученный вывод. Этот метод подсвечивает вывод в соответствии с синтаксисом указанного языка.
registerClientScript() метод
public void registerClientScript() |
public function registerClientScript()
{
if($this->cssFile!==false)
self::registerCssFile($this->cssFile);
}
Регистрирует необходимый CSS и JavaScript.
registerCssFile() метод
public static void registerCssFile(string $url=NULL) | ||
| $url | string | URL CSS. Если null, будет использован URL по умолчанию. |
public static function registerCssFile($url=null)
{
if($url===null)
$url=CHtml::asset(Yii::getPathOfAlias('system.vendors.TextHighlighter.highlight').'.css');
Yii::app()->getClientScript()->registerCssFile($url);
}
Регистрирует необходимый файл CSS.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CTextHighlighter