Блог специалистов
07.11.2012

Автопоиск в 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>';

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


Количество показов: 3736




Возврат к списку