вопрос
DLE 12.1
В DLE при создании тегов не учли воможность наличия в тегах одинарной кавычки ( ' - не знаю, как правильно называется). Лечится сия ошибка заменой одинарных кавычек в коде двойными кавычками. Проблема одинарной кавычки встречается всюду постоянно, например заливка торрентов на турбобите...
Но "лечить" уже поздно - сайту 12 лет и за это время добавлены тысячи новостей с "исправленой кавычкой" (вместо ' делал ’ ("верхнюю запятую")) и добавление "неиспраленых кавычек" будет создавать "новые теги".
Посему хочу сделать автозамену одинарной кавычки на "исправленую". Надоело уже ручками переделывать...
Сама замена крайне проста - перед записью в базу нужно заменить кавычку (код условный):
Вопрос лишь в том в каких файлах перед чем подставить? Прошу подсказать знающих людей...
Лично мне кажется, что в двух файлах engine\inc\addnews.php и engine\modules\addnews.php
Думаю либо после:
либо после:
поставить:
Угадал ли я или совсем нет, или не полностью (ещё куда-то нужно поставить)?
Заранее благодарю...
В DLE при создании тегов не учли воможность наличия в тегах одинарной кавычки ( ' - не знаю, как правильно называется). Лечится сия ошибка заменой одинарных кавычек в коде двойными кавычками. Проблема одинарной кавычки встречается всюду постоянно, например заливка торрентов на турбобите...
Но "лечить" уже поздно - сайту 12 лет и за это время добавлены тысячи новостей с "исправленой кавычкой" (вместо ' делал ’ ("верхнюю запятую")) и добавление "неиспраленых кавычек" будет создавать "новые теги".
Посему хочу сделать автозамену одинарной кавычки на "исправленую". Надоело уже ручками переделывать...
Сама замена крайне проста - перед записью в базу нужно заменить кавычку (код условный):
$tags = str_replace ("", "’", $tags);
Вопрос лишь в том в каких файлах перед чем подставить? Прошу подсказать знающих людей...
Лично мне кажется, что в двух файлах engine\inc\addnews.php и engine\modules\addnews.php
Думаю либо после:
if( @preg_match( "/[\||\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['tags'] ) ) $_POST['tags'] = "";
либо после:
if ( $_POST['tags'] ) {
поставить:
$_POST['tags'] = str_replace ( "", "’", $_POST['tags'] );
Угадал ли я или совсем нет, или не полностью (ещё куда-то нужно поставить)?
Заранее благодарю...