* $sText=$this->Text_Parser($sTestSource);
*
* Настройки парсинга находятся в конфиге /config/jevix.php
*
* @package engine.modules
* @since 1.0
*/
class ModuleText extends Module {
/**
* Объект типографа
*
* @var Jevix
*/
protected $oJevix;
/**
* Инициализация модуля
*
*/
public function Init() {
/**
* Создаем объект типографа и запускаем его конфигурацию
*/
$this->oJevix = new Jevix();
$this->JevixConfig();
}
/**
* Конфигурирует типограф
*
*/
protected function JevixConfig() {
// загружаем конфиг
$this->LoadJevixConfig();
}
/**
* Загружает конфиг Jevix'а
*
* @param string $sType Тип конфига
* @param bool $bClear Очищать предыдущий конфиг или нет
*/
public function LoadJevixConfig($sType='default',$bClear=true) {
if ($bClear) {
$this->oJevix->tagsRules=array();
}
$aConfig=Config::Get('jevix.'.$sType);
if (is_array($aConfig)) {
foreach ($aConfig as $sMethod => $aExec) {
foreach ($aExec as $aParams) {
if (in_array(strtolower($sMethod),array_map("strtolower",array('cfgSetTagCallbackFull','cfgSetTagCallback')))) {
if (isset($aParams[1][0]) and $aParams[1][0]=='_this_') {
$aParams[1][0]=$this;
}
}
call_user_func_array(array($this->oJevix,$sMethod), $aParams);
}
}
/**
* Хардкодим некоторые параметры
*/
unset($this->oJevix->entities1['&']); // разрешаем в параметрах символ &
if (Config::Get('view.noindex') and isset($this->oJevix->tagsRules['a'])) {
$this->oJevix->cfgSetTagParamDefault('a','rel','nofollow',true);
}
}
}
/**
* Возвращает объект Jevix
*
* @return Jevix
*/
public function GetJevix() {
return $this->oJevix;
}
/**
* Парсинг текста с помощью Jevix
*
* @param string $sText Исходный текст
* @param array $aError Возвращает список возникших ошибок
* @return string
*/
public function JevixParser($sText,&$aError=null) {
// Если конфиг пустой, то загружаем его
if (!count($this->oJevix->tagsRules)) {
$this->LoadJevixConfig();
}
$sResult=$this->oJevix->parse($sText,$aError);
return $sResult;
}
/**
* Парсинг текста на предмет видео
* Находит теги
и реобразовываетих в видео
*
* @param string $sText Исходный текст
* @return string
*/
public function VideoParser($sText) {
/**
* youtube.com
*/
$sText = preg_replace('/