You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
после этого в конце метода protected function anyThing(&$content = '', $parentTag = null) найти строки:
// Текст
} elseif($this->text($text)){
$content.=$text;
}
и заменить их на:
// Текст
} elseif($this->text($text)){
/** * Исправление работы автозамены (cfgSetAutoReplace) на корректную * * fix by Serge Pustovit (PSNet) <[email protected]> http://psnet.lookformp3.net * @link https://github.com/livestreet/livestreet-framework/issues/62 */if(!empty($this->autoReplace)){
$text = str_ireplace($this->autoReplace['from'], $this->autoReplace['to'], $text);
}
$content.=$text;
}
Результат
Отныне проблема решена. Ура. Существовала она более 7 лет.
Что произошло
Мы научили парсер обрабатывать только просто текст и текст внутри тегов, но аккуратно, а не весь текст в целом, как было раньше. К тому же парсер не будет ломать теги, если в значениях их атрибутов или вообще в их составе будут содержаться возможные замены. Раньше парсер это делал.
Но в этих тегах замена и не нужна вовсе, исходя из их назначения.
Проверка
Проверочный текст:
Текст (C) здесь
<code>Больше текста внутри (C) кода (R) знаки +/-</code>
Некоторый (R) текст после
<blockquote>Тест тегов (C) внутри +/- другого (R) тега</blockquote>
<ol>
<li>Проверка вложенных (R) тегов (C)</li>
</ol>
<a href="#test" title="У нас тут свой (С)">Ссылка, в которой раньше парсер покопался бы</a>
Проблема
Парсер Jevix заменяет все вхождения, указанные в конфиге
даже внутри преформатированного тега
<code />
где делать этого не нужно. Эта проблема существует с самого создания парсера и довольно таки уже давно.Решение
Нужно найти в файле
jevix.class.php
методfunction parse($text, &$errors)
в котором удалить строки:после этого в конце метода
protected function anyThing(&$content = '', $parentTag = null)
найти строки:и заменить их на:
Результат
Отныне проблема решена. Ура. Существовала она более 7 лет.
Что произошло
Мы научили парсер обрабатывать только просто текст и текст внутри тегов, но аккуратно, а не весь текст в целом, как было раньше. К тому же парсер не будет ломать теги, если в значениях их атрибутов или вообще в их составе будут содержаться возможные замены. Раньше парсер это делал.
Нюансы
Автозамена не будет работать в:
cfgSetTagCallback
) или полный (cfgSetTagCallbackFull
)Но в этих тегах замена и не нужна вовсе, исходя из их назначения.
Проверка
Проверочный текст:
теперь будет отображаться корректно:
а не так, как раньше:
(обратите внимание на содержимое тегов
<code />
и<a />
)The text was updated successfully, but these errors were encountered: