Помощь htmlspecialchars

Тема в разделе "Opencart", создана пользователем rainless, 20 апр 2013.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. rainless

    rainless Постоялец

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

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

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

    Заодно бредовая идея: может, это за счёт js? В дефолтном шаблоне описания выводятся во вкладках, может, при построении dom где-то это преобразование и происходит? Я бы в жизни так не спроектировал, но мало ли.
     
  2. tan_81

    tan_81 Постоялец

    Регистр.:
    18 окт 2006
    Сообщения:
    128
    Симпатии:
    30
    Вы о чем вообще?
    То, что перед записью в базу все спец.символы становятся сущностями - это единственный правильный вариант. Обратно их никто не декодирует, они и так правильно отображаются в броузере (для этого и существуют).
    Шаблон здесь вообще не причем.
     
  3. rainless

    rainless Постоялец

    Регистр.:
    20 фев 2008
    Сообщения:
    94
    Симпатии:
    7
    Я о том, что в одном шаблоне я в браузере вижу «Это описание», а в другом «<p>Это описание</p>». Т.е. в дефолтном шаблоне где-то происходит неявный htmlspecialchars_decode.
    Как это выглядит в дефолтном шаблоне и в другом (картинка на втором скрине не из поля description, а из image:(
    [​IMG][​IMG]
     
  4. tan_81

    tan_81 Постоялец

    Регистр.:
    18 окт 2006
    Сообщения:
    128
    Симпатии:
    30
    Ну по картинке явно проблемы наоборот с чем-то вроде addslashes

    Выложите куда-нибудь /template/product/product.tpl этого чудного шаблона
     
  5. Dick Dickenson

    Dick Dickenson Постоялец

    Регистр.:
    29 сен 2007
    Сообщения:
    51
    Симпатии:
    8
    на втором скриншоте - это рекомендуемые товары на странице продукта, или это модуль рекомендуемые?
    в любом случае описание ты вставлял скорее всего сам т.к в дефолтном варианте его там нет.
    так что нужен файл 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');
     
    rainless нравится это.