Example #1
0
	/**
	 * Загружает конфиг 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);
			}
		}
	}
Example #2
0
 /**
  * Загружает конфиг Qevix'а
  *
  * @param string $sType     Тип конфига
  * @param bool   $bClear    Очищать предыдущий конфиг или нет
  */
 public function LoadQevixConfig($sType = 'default', $bClear = true)
 {
     // Временный костыль по методам, отсутствующим в Qevix
     $aExcludeConfig = array('cfgSetAutoReplace', 'cfgSetTagParamCombination');
     if ($bClear) {
         $this->oTextParser->tagsRules = array();
     }
     $aConfig = Config::Get('jevix.' . $sType);
     if (is_array($aConfig)) {
         foreach ($aConfig as $sMethod => $aExec) {
             foreach ($aExec as $aParams) {
                 if (!in_array($sMethod, $aExcludeConfig)) {
                     call_user_func_array(array($this->oTextParser, $sMethod), $aParams);
                 }
             }
         }
         // * Хардкодим некоторые параметры
         unset($this->oTextParser->entities1['&']);
         // разрешаем в параметрах символ &
         if (Config::Get('view.noindex') && isset($this->oTextParser->tagsRules['a'])) {
             $this->oTextParser->cfgSetTagParamDefault('a', 'rel', 'nofollow', true);
         }
     }
     $this->oTextParser->cfgSetTagBuildCallback('ls', array($this, 'CallbackTagLs'));
     if (C::Get('module.text.char.@')) {
         $this->oTextParser->cfgSetSpecialCharCallback('@', array($this, 'CallbackTagAt'));
     }
 }
Example #3
0
 /**
  * Конфигурирует типограф
  *
  */
 protected function JevixConfig()
 {
     // разрешаем в параметрах символ &
     unset($this->oJevix->entities1['&']);
     // Разрешённые теги
     $this->oJevix->cfgAllowTags(array('cut', 'a', 'img', 'i', 'b', 'u', 's', 'video', 'em', 'strong', 'nobr', 'li', 'ol', 'ul', 'sup', 'abbr', 'sub', 'acronym', 'h4', 'h5', 'h6', 'br', 'hr', 'pre', 'code', 'object', 'param', 'embed', 'blockquote'));
     // Коротие теги типа
     $this->oJevix->cfgSetTagShort(array('br', 'img', 'hr', 'cut'));
     // Преформатированные теги
     $this->oJevix->cfgSetTagPreformatted(array('pre', 'code', 'video'));
     // Разрешённые параметры тегов
     $this->oJevix->cfgAllowTagParams('img', array('src', 'alt' => '#text', 'title', 'align' => array('right', 'left', 'center'), 'width' => '#int', 'height' => '#int', 'hspace' => '#int', 'vspace' => '#int'));
     $this->oJevix->cfgAllowTagParams('a', array('title', 'href', 'rel'));
     $this->oJevix->cfgAllowTagParams('cut', array('name'));
     $this->oJevix->cfgAllowTagParams('object', array('width' => '#int', 'height' => '#int', 'data' => '#link', 'type' => '#text'));
     $this->oJevix->cfgAllowTagParams('param', array('name' => '#text', 'value' => '#text'));
     $this->oJevix->cfgAllowTagParams('embed', array('src' => '#image', 'type' => '#text', 'allowscriptaccess' => '#text', 'allowfullscreen' => '#text', 'width' => '#int', 'height' => '#int', 'flashvars' => '#text', 'wmode' => '#text'));
     // Параметры тегов являющиеся обязательными
     $this->oJevix->cfgSetTagParamsRequired('img', 'src');
     $this->oJevix->cfgSetTagParamsRequired('a', 'href');
     // Теги которые необходимо вырезать из текста вместе с контентом
     $this->oJevix->cfgSetTagCutWithContent(array('script', 'iframe', 'style'));
     // Вложенные теги
     $this->oJevix->cfgSetTagChilds('ul', array('li'), false, true);
     $this->oJevix->cfgSetTagChilds('ol', array('li'), false, true);
     $this->oJevix->cfgSetTagChilds('object', 'param', false, true);
     $this->oJevix->cfgSetTagChilds('object', 'embed', false, false);
     // Если нужно оставлять пустые не короткие теги
     $this->oJevix->cfgSetTagIsEmpty(array('param', 'embed'));
     // Не нужна авто-расстановка <br>
     $this->oJevix->cfgSetTagNoAutoBr(array('ul', 'ol', 'object'));
     // Теги с обязательными параметрами
     $this->oJevix->cfgSetTagParamDefault('embed', 'wmode', 'opaque', true);
     if (Config::Get('view.noindex')) {
         $this->oJevix->cfgSetTagParamDefault('a', 'rel', 'nofollow', true);
     }
     // Отключение авто-добавления <br>
     $this->oJevix->cfgSetAutoBrMode(true);
     // Автозамена
     $this->oJevix->cfgSetAutoReplace(array('+/-', '(c)', '(с)', '(r)', '(C)', '(С)', '(R)'), array('±', '©', '©', '®', '©', '©', '®'));
     //$this->oJevix->cfgSetXHTMLMode(false);
     $this->oJevix->cfgSetTagNoTypography('code');
     $this->oJevix->cfgSetTagNoTypography('video');
     $this->oJevix->cfgSetTagNoTypography('object');
     // Теги, после которых необходимо пропускать одну пробельную строку
     $this->oJevix->cfgSetTagBlockType(array('h4', 'h5', 'h6', 'ol', 'ul', 'blockquote', 'pre'));
 }
Example #4
0
$jevix->cfgSetTagPreformatted(array('pre'));
// 4. Устанавливаем теги, которые необходимо вырезать из текста вместе с контентом.
$jevix->cfgSetTagCutWithContent(array('script', 'object', 'iframe', 'style'));
// 5. Устанавливаем разрешённые параметры тегов. Также можно устанавливать допустимые значения этих параметров.
$jevix->cfgAllowTagParams('a', array('title', 'href'));
$jevix->cfgAllowTagParams('img', array('src', 'alt' => '#text', 'title', 'align' => array('right', 'left', 'center'), 'width' => '#int', 'height' => '#int', 'hspace' => '#int', 'vspace' => '#int'));
// 6. Устанавливаем параметры тегов являющиеся обязяательными. Без них вырезает тег оставляя содержимое.
$jevix->cfgSetTagParamsRequired('img', 'src');
$jevix->cfgSetTagParamsRequired('a', 'href');
// 7. Устанавливаем теги которые может содержать тег контейнер
//    cfgSetTagChilds($tag, $childs, $isContainerOnly, $isChildOnly)
//       $isContainerOnly : тег является только контейнером для других тегов и не может содержать текст (по умолчанию false)
//       $isChildOnly : вложенные теги не могут присутствовать нигде кроме указанного тега (по умолчанию false)
//$jevix->cfgSetTagChilds('ul', 'li', true, false);
// 8. Устанавливаем атрибуты тегов, которые будут добавлятся автоматически
$jevix->cfgSetTagParamDefault('a', 'rel', null, true);
//$jevix->cfgSetTagParamsAutoAdd('a', array('rel' => 'nofollow'));
//$jevix->cfgSetTagParamsAutoAdd('a', array('name'=>'rel', 'value' => 'nofollow', 'rewrite' => true));
$jevix->cfgSetTagParamDefault('img', 'width', '300px');
$jevix->cfgSetTagParamDefault('img', 'height', '300px');
//$jevix->cfgSetTagParamsAutoAdd('img', array('width' => '300', 'height' => '300'));
//$jevix->cfgSetTagParamsAutoAdd('img', array(array('name'=>'width', 'value' => '300'), array('name'=>'height', 'value' => '300') ));
// 9. Устанавливаем автозамену
$jevix->cfgSetAutoReplace(array('+/-', '(c)', '(r)'), array('±', '©', '®'));
// 10. Включаем или выключаем режим XHTML. (по умолчанию включен)
$jevix->cfgSetXHTMLMode(true);
// 11. Включаем или выключаем режим замены переноса строк на тег <br/>. (по умолчанию включен)
$jevix->cfgSetAutoBrMode(true);
// 12. Включаем или выключаем режим автоматического определения ссылок. (по умолчанию включен)
$jevix->cfgSetAutoLinkMode(true);
// 13. Отключаем типографирование в определенном теге