Мужики, столкнулся с такой проблемой, при редактировании записей в cms_uc_items в phpmyadmin.
Действия следующие:
1.В админке создаю раздел каталога, (одна запись с типом html).
2.Добавляю в раздел запись. В поле html добавляю игру, *.swf файл (через редактор)
3.Флэшка на сайте отображается.
4.Захожу в базу phpmyadmin, таблица cms_uc_items. Открываю добавленную запись, нажимаю редактировать, затем, ничего не меняя, жму ок.
После этого игра на сайте не отображается. В чем причина, подскажите.
a:4:{i:0;s:185:"<p>Now you can test you poker skills by challenging some sexy girls on this dress up adventure, but dont be fooled by their sexy appearance, they can leave you without a dime! </p>";i:1;s:255:"<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://site.ru/images/swf/games/game1313250443egbaccarat.swf" width="600" height="500" play="true" loop="true" menu="true"></embed> <p> </p>";i:2;s:8:"0,214843";i:3;s:63:"http://site.ru/images/swf/games/game1313250443egbaccarat.swf";}
Отредактируйте заново через редактор, зачем заморачиваться ручным экранированием. Всё что нужно можно в редакторе вставить. Не лезьте в БД.Подскажите как, очень прошу.
просматривая значение поля fieldsdata обнаружил непонятные циферки, начал копаться в коде.
оказывается в поле записи вставляются после обработки функцией serialize(), т. е. преобразуются в хранимое представление данных. Когда берутся из таблицы, то преобразуются функцией unserialize(). Может быть причина в этом. Если делать прямой импорт из csv, а потом обработать данные при выводе unserialize(), не должно получится то, что надо.
Да, такая же ситуация происходит и с импортом. А вы пробовали воспроизвести по шагам? У вас также происходит? Может у меня что с phpmyadmin не так…
Спасибо, что уделил время, Марат.
Сейчас продолжаю ковыряться. Если ничего не найду, то прийдется подбирать другую cms для проекта.
Напиши просто скрипт для импорта из csv. За основу можешь взять вот этот скрипт. Данные перед тем как вставлять в БД обработай serialize() и вставляй методами класса cmsDataBase $inDB->query(). При вставке данные автоматом обработаются musql_real_escape_string(). И всё будет нормально. Как готовятся и вставляются данные можно посмотреть в файле model.php и frontend.php в /components/catalog. По подобию и надо делать.