После обновления не выводятся вложенные картинки в статьях

  • 31 Ответов
  • 1229 Просмотров

студент

  • Сообщений: 182
    • Просмотр профиля
    • Мировые новости
Здравствуйте. Решил обновить сайт с 055 до последней 155. Возникла проблема с выводом картинок {img1} в статьях. Они просто не выводятся.
Посмотрев в базе увидел различия.

в 155 {img1} выглядит так:
{"1":{"thumb":"up\/article\/icon\/icon.png","image":"up\/article\/icon\/icon.png","align":"left","alt":""}}
а в 055 {img1} выглядит так:
a:2:{i:1;a:4:{s:5:"thumb";s:47:"up/article/img/2017/07/02/170702_1534_thumb.jpg";s:5:"image";s:41:"up/article/img/2017/07/02/170702_1534.jpg";s:5:"align";s:4:"left";s:3:"alt";s:0:"";}i:2;a:4:{s:5:"thumb";s:47:"up/article/img/2017/07/02/170702_8107_thumb.jpg";s:5:"image";s:41:"up/article/img/2017/07/02/170702_8107.jpg";s:5:"align";s:4:"left";s:3:"alt";s:0:"";}}
наверное поэтому не выводиться на сайте. У меня сотни статей с такими картинками, иначе я бы просто вручную все сделал.

good.web-mastrer2

  • Сообщений: 1
    • Просмотр профиля
Видно же сразу что разные формат данных,
первый в форматe JSON
второй в формате сериализованного объекта PHP

PS

Вообще не понимаю как сюда, попал, решил ответить, эта гребанная регистрация на сайте...

Neon

  • Сообщений: 792
    • Просмотр профиля
    • Danneo CMS
good.web-mastrer2, приношу извинения за достаточно сложную регистрацию. Некому спам выгребать, поэтому.

студент, обсуждали эту тему, еще вначале работы над новой веткой (не версией).
http://forum.danneo.ru/index.php?topic=216.msg1277#msg1277

Как обновляли?
В новой ветке мы полностью отказались от serialize в пользу JSON.
В упрощенном виде, нужно конвертировать эти данные, с перезаписью в базу.
1. SELECT
2. unserialize
3. Json::encode
4. UPDATE
DANNEO ™

студент

  • Сообщений: 182
    • Просмотр профиля
    • Мировые новости
студент, обсуждали эту тему, еще вначале работы над новой веткой (не версией).
http://forum.danneo.ru/index.php?topic=216.msg1277#msg1277

Как обновляли?
В новой ветке мы полностью отказались от serialize в пользу JSON.
В упрощенном виде, нужно конвертировать эти данные, с перезаписью в базу.
1. SELECT
2. unserialize
3. Json::encode
4. UPDATE
я увидел эту тему уже после того как написал этот пост. Решил пока сижу в карантине обновить свои сайты. Обновился вручную. Все получилось очень хорошо, были некоторые проблемы, но я справился со всем, кроме того, что описал выше  (и капчи, которая не выводится).
Прошу Вас немного подробнее разъяснить мне 4 пункта написанные Вами выше.
Я скачал поле images и пытался конвертировать данные в json с помощью онлайн сервисов, но ничего не вышло. В базе сайта (mariadb) я не разобрался как конвертировать. Еще раз прошу помочь мне в этом вопросе, чтобы я мог закончить работу.

Sir_G

  • Сообщений: 108
    • Просмотр профиля
Студент, привет! Хотел тебе помочь, но версию 055 не могу найти

Neon

  • Сообщений: 792
    • Просмотр профиля
    • Danneo CMS
Для конвертации не нужны сторонние сервисы
// делаем запрос
$inq = $db->query("SELECT * FROM ".$basepref."_article");
while ($item = $db->fetchassoc($inq))
{
// извлекаем старые, сериализованные данные поля 'images' в массив
$array_images = unserialize($item['images']);
// преобразовываем в формат Json
$json_images = Json::encode($array_images);
// обновляем запись в базе
$db->query("UPDATE ".$basepref."_article SET images = '".$json_images."' WHERE id = '".$item['id']."'");
}
Выполняем код ОДИН РАЗ!
В примере таблица статей, но данный запрос можно использовать для любых таблиц и полей.
DANNEO ™

студент

  • Сообщений: 182
    • Просмотр профиля
    • Мировые новости
Я так понял, что этот код нужно вставить в какой-то файл на сервере. Но в какой? И что делать дальше?
« Последнее редактирование: 11 Апреля 2020, 00:09:58 от студент »

Neon

  • Сообщений: 792
    • Просмотр профиля
    • Danneo CMS
В общем в любой. где подключение к базе выполнено.
Можно в корневой: index.php
После кода:
/**
 * Init Core
 */
require_once DNDIR.'core/init.php';
И обновить страницу, один раз.
« Последнее редактирование: 11 Апреля 2020, 00:28:38 от Neon »
DANNEO ™

студент

  • Сообщений: 182
    • Просмотр профиля
    • Мировые новости
Большое спасибо. Помогло.

студент

  • Сообщений: 182
    • Просмотр профиля
    • Мировые новости
давно зрел вопрос про вложенные картинки. Как можно сделать, чтобы текст идущий после {img} был под ним, а не рядом?
Мне приходится в коде редактора прописывать несколько <p></p>, чтобы опустить текст по высоте картинки.

студент

  • Сообщений: 182
    • Просмотр профиля
    • Мировые новости
Уважаемый Неон, как думаете не лучше ли будет стандартный загрузчик изображений заменить этим:
http://staf4.danneo.ru/index.php?dn=article&to=art&id=23
+
http://staf4.danneo.ru/index.php?dn=article&to=art&id=57
он вроде лучше и по удобству и по времени.

Neon

  • Сообщений: 792
    • Просмотр профиля
    • Danneo CMS
давно зрел вопрос про вложенные картинки. Как можно сделать, чтобы текст идущий после {img} был под ним, а не рядом?
Может для вложенного изображения установить выравнивание "В центр"?
Если не сработает, значит у вас свой, измененный шаблон оформления. Смотрите в Lite, там это работает.

По картинкам.
Объясните, что там есть такого, что нет сейчас в системе?

По папкам для изображений, вопрос обсуждаемый.
При больших количествах загружаемых картинок, разумно их раскладывать в разные папки, а не в одну.
Это снизит нагрузку на сервер, при поиске файлов. Чем меньше файлом в папке, тем лучше.
Другое дело, что создавать папки для каждого дня (как предлагал Staf4), это такая же нагрузка, как и все изображения в одну.
Слишком много папок, также плохо для файловой системы.

Нужен компромисс. Думаю, одну папку для каждого месяца, это оптимально.
С другой стороны, многие пользователи не любят когда система за них думает, в какую папку складывать те или иные изображения.
Как я уже сказал, это вопрос для обсуждения.
DANNEO ™

студент

  • Сообщений: 182
    • Просмотр профиля
    • Мировые новости
давно зрел вопрос про вложенные картинки. Как можно сделать, чтобы текст идущий после {img} был под ним, а не рядом?
Может для вложенного изображения установить выравнивание "В центр"?
Если не сработает, значит у вас свой, измененный шаблон оформления. Смотрите в Lite, там это работает.
сработало! не знал этого.
Цитировать
По картинкам.
Объясните, что там есть такого, что нет сейчас в системе?
при этом изменении картинки (большая и тумб.) загружаются также как вложенные картинки {img}.
Понимаете если сайт новостной (информационный) и каждый день добавляется большое количество материала, то существующая загрузка изображений утомляет. Слишком долгий процесс и много действий (клик на кнопку Файлбраузер - выбор папки(ок) - клик на Загрузка файлов - выбор картинки - она загружается - кликаешь на тумбу и она попадает в поле "Уменьшенная копия изображения" - копируешь ее и вставляешь в поле "Изображение и удаляешь _thumb")
А тут нажал на Загрузить - выбрал картинку и все. Могу дать доступ а админку сами посмотрите как это удобно (у меня на 055 так).

P.S http://staf4.danneo.ru/index.php?dn=article&to=art&id=23 тут показана не та картинка. Это основной загрузчик картинки, тот что в самом низу. Он не загружает несколько картинок как Вложенные изображения {img}, а только одну (большую и тумбу).
Фото прикрепил!

Цитировать
По папкам для изображений, вопрос обсуждаемый.
При больших количествах загружаемых картинок, разумно их раскладывать в разные папки, а не в одну.
Это снизит нагрузку на сервер, при поиске файлов. Чем меньше файлом в папке, тем лучше.
Другое дело, что создавать папки для каждого дня (как предлагал Staf4), это такая же нагрузка, как и все изображения в одну.
Слишком много папок, также плохо для файловой системы.
Нужен компромисс. Думаю, одну папку для каждого месяца, это оптимально.
я тоже думаю, что 1 папка в месяц оптимально.
конечно можно это обсудить. Я думаю это всем понравиться, так как быстро и просто.
Цитировать
С другой стороны, многие пользователи не любят когда система за них думает, в какую папку складывать те или иные изображения.
там также можно выбирать в какую папку загрузить.
отправил Вам доступ в личку.
« Последнее редактирование: 27 Апреля 2020, 22:52:15 от студент »

Neon

  • Сообщений: 792
    • Просмотр профиля
    • Danneo CMS
Цитировать
А тут нажал на Загрузить - выбрал картинку и все.
студент, насколько я понял вы недавно работаете с новой версией, может не со всем функционалом познакомились.
У нас есть быстрая загрузка изображения. Нажал, выбрал, и забыл.
Кстати, была добавлена по просьбе Staf4.

Кнопка "Выбрать файл" на картинке, это она.
DANNEO ™

студент

  • Сообщений: 182
    • Просмотр профиля
    • Мировые новости
Цитировать
А тут нажал на Загрузить - выбрал картинку и все.
студент, насколько я понял вы недавно работаете с новой версией, может не со всем функционалом познакомились.
У нас есть быстрая загрузка изображения. Нажал, выбрал, и забыл.
какая прелесть. я все больше и больше люблю эту систему ))
ну сюда обязательно нужно прикрутить создание папок по месяцам, чтобы все в одну папку не складывалось.

такс.. быстрая загрузка загружает картинку в размере 145х90
при загрузке обычным способом выбранные размеры сохраняются. Но если загрузить с помощью быстрой загрузки то сохранение слетает.
« Последнее редактирование: 28 Апреля 2020, 00:32:57 от студент »