Вы не зашли.
В столбце xfields_article все урл-ы изменились, но в админ панели урл-ы в полях не поменялись
поля идут из столбца xfields БД, а не из xfields_article
Изменено Klim (2018-07-10 01:09:15)
Не в сети
В общем, для переезда нужно выполнить касаемо БД
1 Сделать доп. поле article как Персональное поле в БД с типом text - текст с ограничением длины (65535) и замена из phpMyAdmin
UPDATE `ng_news` SET content = REPLACE (content, 'http://site.ru', 'https://site.ru');
UPDATE `ng_news` SET xfields_article = REPLACE (xfields_article, 'http://site.ru', 'https://site.ru');
2 Для вывода в шаблоне news.full.tpl
{{ system_flags['news']['db.record']['xfields_article'] }}
Изменено rusiq (2018-07-10 01:22:56)
Не в сети
Ну у меня на локалке PHP 7, MariaDB и т.д. не суть - проблем вообще не возникло. Но у меня то не было полной инфы из вашей ячейки xfields, может там длина строки превышает значения или еще чего.
Не в сети
А почему данные все равно не выводятся из xfields_article нормальным способом?
Понятия не имею. Не охота в коде движка ковырять и смотреть, как отдельный столбец доп.поля обрабатывает. Тут может кто появится, подскажет как изящнее сделать
Не в сети
Не дает мне покоя тема сериализованных данных, решил почитать про это.
Вот здесь: https://sheensay.ru/move-wordpress#ispolzuem-search-replace-db нашел про утилиту для редактирование БД, скачал: https://github.com/interconnectit/Search-Replace-DB/releases поставил на сайте.
С ее помощью заменил http://www.сайт.ру на https:// сайт.ру, доп. поля пропали. Потом, с помощью этой утилиты сделал обратный процесс поменял https:// сайт.ру на http://www.сайт.ру и доп. поля появились, значит проблема не в том что замена в БД ломает сериализованные данные, а в обработке этих данных.
Изменено Klim (2018-07-11 01:51:24)
Не в сети
Сразу до меня не доперло, что когда замену производишь, то количество символов на один увеличивается. Например, у нас есть строка серилизованная
'a:1:{s:3:"img";a:1:{s:4:"link";s:14:"http://site.ru";}}'
Если мы просто заменим http на https, то она будет не валидная, потому что количество символов в строке https://site.ru уже не s:14, а s:15. То есть валидная строка должна быть
'a:1:{s:3:"img";a:1:{s:4:"link";s:15:"https://site.ru";}}'
Изменено rusiq (2018-07-11 09:39:14)
Не в сети
Про длину серилизованных данных тоже читал и было такое предположение, сделал эксперимент, заменил http://site.Ru на http://site.Su по логике длинна строки должна остаться прежней, но все равно поля пропали.
Изменено Klim (2018-07-11 10:52:09)
Не в сети
Ладно, предположений больше не делаю, бессмысленное занятие гадать. И правда 4 страницы исписаны. Закончится всё тем, что из-за кодировки проблемы.
Изменено rusiq (2018-07-11 11:08:33)
Не в сети