1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-17 07:10:48 +03:00

Jevix update and fix https bug

This commit is contained in:
Mzhelskiy Maxim 2010-05-02 12:30:16 +00:00
parent 53df204709
commit 97bef245c2

View file

@ -10,6 +10,8 @@
* @version 1.01
*
* История версий:
* 1.11:
* + Исправлены ошибки из-за которых удалялись теги и аттрибуты со значением "0". Спасибо Dmitry Shurupov (dmitry.shurupov@trueoffice.ru)
* 1.1:
* + cfgSetTagParamsAutoAdd() deprecated. Вместо него следует использовать cfgSetTagParamDefault() с более удобным синтаксисом
* + Исправлен критический баг с обработкой атрибутов тегов https://code.google.com/p/jevix/issues/detail?id=1
@ -911,7 +913,7 @@ class Jevix{
foreach($params as $param=>$value){
$param = mb_strtolower($param, 'UTF-8');
$value = trim($value);
if(empty($value)) continue;
if($value == '') continue;
// Атрибут тега разрешён? Какие возможны значения? Получаем список правил
$paramAllowedValues = isset($tagRules[self::TR_PARAM_ALLOWED][$param]) ? $tagRules[self::TR_PARAM_ALLOWED][$param] : false;
@ -961,7 +963,7 @@ class Jevix{
continue(2);
}
// HTTP в начале если нет
if(!preg_match('/^http:\/\//ui', $value) && !preg_match('/^\//ui', $value)) $value = 'http://'.$value;
if(!preg_match('/^(http|https):\/\//ui', $value) && !preg_match('/^\//ui', $value)) $value = 'http://'.$value;
break;
default:
@ -979,7 +981,7 @@ class Jevix{
$requiredParams = isset($tagRules[self::TR_PARAM_REQUIRED]) ? array_keys($tagRules[self::TR_PARAM_REQUIRED]) : array();
if($requiredParams){
foreach($requiredParams as $requiredParam){
if(empty($resParams[$requiredParam])) return $content;
if(!isset($resParams[$requiredParam])) return $content;
}
}
@ -995,14 +997,14 @@ class Jevix{
// Пустой некороткий тег удаляем кроме исключений
if (!isset($tagRules[self::TR_TAG_IS_EMPTY]) or !$tagRules[self::TR_TAG_IS_EMPTY]) {
if(!$short && empty($content)) return '';
if(!$short && $content == '') return '';
}
// Собираем тег
$text='<'.$tag;
// Параметры
foreach($resParams as $param => $value) {
if (!empty($value)) {
if ($value != '') {
$text.=' '.$param.'="'.$value.'"';
}
}
@ -1047,7 +1049,7 @@ class Jevix{
} elseif (isset($this->tagsRules[$tag]) and isset($this->tagsRules[$tag][self::TR_TAG_BLOCK_TYPE])) {
$count=0;
$this->skipNL($count,2);
} elseif (empty($tagText)){
} elseif ($tagText == ''){
$this->skipSpaces();
}
@ -1334,6 +1336,19 @@ class Jevix{
$href = 'http://'.$url;
return true;
} elseif($this->matchStr('https://')){
while($this->curChClass & $urlChMask){
$url.= $this->curCh;
$this->getCh();
}
if(!mb_strlen($url, 'UTF-8')) {
$this->restoreState();
return false;
}
$href = 'https://'.$url;
return true;
} elseif($this->matchStr('www.')){
while($this->curChClass & $urlChMask){
$url.= $this->curCh;