Автопоиск в 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>';
Все это сохраняем и проверяем как все работает.
Количество показов: 3836