Здравствуйте, проблема в следующем решил использовать поле расположение как дополнительную вкладку с видео в БД сменил тип данных locanion на text, вывел переменную $location в карточку товара... ввожу в админке в это поле текст HTML: <center><iframe allowfullscreen="" src="https://youtu.be/...." frameborder="0"></iframe></center> а в БД попадает HTML: <center><iframe allowfullscreen="" src="https://youtu.be/...." frameborder="0"></iframe></center> и соответстенно в карточке товара я вижу не видео, а код. OCSHOP.CMS Версия 1.5.6.4.1 --- Добавлено, 1 ноя 2016 --- частично решил вывел переменную следующим образом HTML: <?php echo html_entity_decode($location); ?> но хотелось бы, что бы код в БД попадал в нормальном виде.
А какую задачу вы решаете? Может есть модуль для вашей проблемы. Ну как бы преобразование спецсимволов это вполне себе нормальный вид. Что бы понять зачем оно нужно создайте файл .html вставь этот код и запусти его в браузере. HTML: <input type="text" value="<center><iframe allowfullscreen="" src="https://youtu.be/...." frameborder="0"></iframe></center>" /><br> <input type="text" value="<center><iframe allowfullscreen="" src="https://youtu.be/...." frameborder="0"></iframe></center>" />
Задача простая, делаю дополнительную вкладку видео в карточке товара Использовать модули не хочу, так как в любом модуле будет большой минус, у него будут свои поля или даже таблицы в БД, а соответственно импорт/экспорт такого модуля будет не возможен. Добавить одну вкладку не проблема, просто хотел, что бы она в БД была в человекочитаемом виде.
В любом случае преобразовывать спецсимволы придется. Выводить это значение нужно как в админке (с преобразованными спецсимволами) и на фронтенде (в нормальном виде). Плюс нужно учесть что это значение может быть импортировано. И вообще зачем хранить в бд блок кода а не просто ссылку на видео?
Это и есть нормальный вид. Посмотрите, например, как хранится описание товара. Де факто - это стандарт (преобразование html сущностей при сохранении в базу). Ну, и как уже сказано постом выше, правильное решение - это хранить в базе только ссылку на видео, а код фрейма вписать в шаблон (и выводить при условии не пустой ссылки). Это не только позволит избавить базу от лишнего повторяющегося мусора, но и позволит избежать проблем в будущем, если понадобится модифицировать код фрейма.
Это тоже решаемо. Разделяйте ссылки через точку с запятой, а при выводе просто делайте так: PHP: $links = explode(';', $location); А затем просто обходите массив $links циклом и подставляете ссылки в код фрейма. Если ссылка только одна (и точки с запятой, соответственно, нет), то в массиве будет только один элемент с этой ссылкой, так что и тут проблем нет.
хороший вариант, спасибо тогда уж еще один вопрос по теме поле для ввода в админке я расширил, но оно какое то не правильное, т.е. в нем не работает enter(переход на новую строку) как это поправить?