переделать поле расположение в админке

Тема в разделе "OpenCart", создана пользователем cherkas, 31 окт 2016.

  1. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57
    Здравствуйте, проблема в следующем

    решил использовать поле расположение как дополнительную вкладку с видео

    в БД сменил тип данных locanion на text, вывел переменную $location в карточку товара...

    ввожу в админке в это поле текст
    HTML:
    <center><iframe allowfullscreen="" src="https://youtu.be/...." frameborder="0"></iframe></center>
    а в БД попадает
    HTML:
    &lt;center&gt;&lt;iframe allowfullscreen=&quot;&quot; src=&quot;https://youtu.be/....&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/center&gt;
    и соответстенно в карточке товара я вижу не видео, а код.


    OCSHOP.CMS Версия 1.5.6.4.1
    --- Добавлено, 1 ноя 2016 ---
    частично решил
    вывел переменную следующим образом

    HTML:
    <?php echo html_entity_decode($location); ?>
    но хотелось бы, что бы код в БД попадал в нормальном виде.
     
    Последнее редактирование: 1 ноя 2016
  2. ISomeInterface

    ISomeInterface

    Регистрация:
    4 окт 2016
    Сообщения:
    106
    Симпатии:
    76
    А какую задачу вы решаете? Может есть модуль для вашей проблемы.
    Ну как бы преобразование спецсимволов это вполне себе нормальный вид. Что бы понять зачем оно нужно создайте файл .html вставь этот код и запусти его в браузере.
    HTML:
    <input type="text" value="&lt;center&gt;&lt;iframe allowfullscreen=&quot;&quot; src=&quot;https://youtu.be/....&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/center&gt;" /><br>
    <input type="text" value="<center><iframe allowfullscreen="" src="https://youtu.be/...." frameborder="0"></iframe></center>" />
     
  3. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57

    Задача простая, делаю дополнительную вкладку видео в карточке товара

    Использовать модули не хочу, так как в любом модуле будет большой минус, у него будут свои поля или даже таблицы в БД, а соответственно импорт/экспорт такого модуля будет не возможен.

    Добавить одну вкладку не проблема, просто хотел, что бы она в БД была в человекочитаемом виде.
     
  4. ISomeInterface

    ISomeInterface

    Регистрация:
    4 окт 2016
    Сообщения:
    106
    Симпатии:
    76
    В любом случае преобразовывать спецсимволы придется. Выводить это значение нужно как в админке (с преобразованными спецсимволами) и на фронтенде (в нормальном виде).
    Плюс нужно учесть что это значение может быть импортировано. И вообще зачем хранить в бд блок кода а не просто ссылку на видео?
     
  5. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Это и есть нормальный вид. Посмотрите, например, как хранится описание товара. Де факто - это стандарт (преобразование html сущностей при сохранении в базу).

    Ну, и как уже сказано постом выше, правильное решение - это хранить в базе только ссылку на видео, а код фрейма вписать в шаблон (и выводить при условии не пустой ссылки).
    Это не только позволит избавить базу от лишнего повторяющегося мусора, но и позволит избежать проблем в будущем, если понадобится модифицировать код фрейма.
     
  6. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57

    сначала и хотел хранить только ссылку, но оказалось, что видео может быть несколько
     
  7. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Это тоже решаемо. Разделяйте ссылки через точку с запятой, а при выводе просто делайте так:

    PHP:
    $links explode(';'$location);
    А затем просто обходите массив $links циклом и подставляете ссылки в код фрейма. Если ссылка только одна (и точки с запятой, соответственно, нет), то в массиве будет только один элемент с этой ссылкой, так что и тут проблем нет.
     
    cherkas нравится это.
  8. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57
    хороший вариант, спасибо

    тогда уж еще один вопрос по теме

    поле для ввода в админке я расширил, но оно какое то не правильное, т.е. в нем не работает enter(переход на новую строку) как это поправить?
     
  9. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Каким образом?
    Перевод строки будет работать только в textarea теге.