Помощь htmlspecialchars

rainless

Постоялец
Регистрация
20 Фев 2008
Сообщения
94
Реакции
7
Ещё одна идиотская трабла. Экспериментировал и допиливал магазин с дефолтным шаблоном. Попутно присматривался к прочим. Выбрал симпатичненький. Поставил. И увидел в описаниях товаров html-теги.

<p>Это описание</p>

Подумал, что где-то в шаблоне лишнее преобразование происходит. Полез разбираться, увидел, что в базе уже всё лежит в таком виде. Банальный поиск в коде htmlspecialchars находит в ckeditor_php5.php и system/library/request.php, а htmlspecialchars_decode не находит вообще нигде. Соответственно, вопрос: как-так происходит вывод, что теги декодируются и что и где поправить в сторонней схеме, чтобы там тоже выводилось нормально?

Заодно бредовая идея: может, это за счёт js? В дефолтном шаблоне описания выводятся во вкладках, может, при построении dom где-то это преобразование и происходит? Я бы в жизни так не спроектировал, но мало ли.
 
Вы о чем вообще?
То, что перед записью в базу все спец.символы становятся сущностями - это единственный правильный вариант. Обратно их никто не декодирует, они и так правильно отображаются в броузере (для этого и существуют).
Шаблон здесь вообще не причем.
 
Я о том, что в одном шаблоне я в браузере вижу «Это описание», а в другом «<p>Это описание</p>». Т.е. в дефолтном шаблоне где-то происходит неявный htmlspecialchars_decode.
Как это выглядит в дефолтном шаблоне и в другом (картинка на втором скрине не из поля description, а из image:(
zBZAYPe.jpg
CAcYfy1.jpg
 
Ну по картинке явно проблемы наоборот с чем-то вроде addslashes

Выложите куда-нибудь /template/product/product.tpl этого чудного шаблона
 
на втором скриншоте - это рекомендуемые товары на странице продукта, или это модуль рекомендуемые?
в любом случае описание ты вставлял скорее всего сам т.к в дефолтном варианте его там нет.
так что нужен файл catalog/controller/module/featured.php или catalog/controller/product/product.php
или если хочешь сам разобраться то в первом файле всё сам найдешь, а во втором описание к рекомендуемым будет после
$results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']);

а добавить надо будет html_entity_decode($xxx, ENT_QUOTES, 'UTF-8');
 
Назад
Сверху