Главная » Блог » Автопоиск в InstantCMS не работает и выводит кракозябры.
Полезное

Автопоиск в InstantCMS не работает и выводит кракозябры.

Столкнулись с проблемой при разработке сайта на InstantCMS версии 1.10.

Весь функционал сайта работал хорошо, но вот при включении в Универсальном каталоге у некоторых полей функции Автопоиск, ссылки появлялись, но по ним невозможно было перейти.

Ссылка декодируется и в «Глубинометр» и поисковую строку браузера передается кракозябрами или точнее декодированными в HTML символами.

Решение данной проблемы довольно легкое, но найти его не так то просто. Нужно было убрать двойное декодирование в файле cms.php.

Ниже показано где и что убирать:

1. В директории /core/ отрываем файл cms.php.

2. Находим сначала строчку:

$html .= '<a href="/catalog/'.$cat_id.'/find/'.urlencode(urlencode($text)).'">'.$text.'</a>';

У меня это строка 3461.

И убираем из нее лишний urlencode, т.е. заменям ее на:

$html .= '<a href="/catalog/'.$cat_id.'/find/'.urlencode($text).'">'.$text.'</a>';

3. Находим строчку:

$html .= '<a href="/catalog/'.$cat_id.'/find/'.urlencode(urlencode($value)).'">'.$value.'</a>';

У меня это строка 3475.

Из нее также убираем лишний urlencode, т.е. заменям ее на:

$html .= '<a href="/catalog/'.$cat_id.'/find/'.urlencode($value).'">'.$value.'</a>';

Все это сохраняем и проверяем как все работает.

Читать все статьи

Добавить комментарий