Сменить вывод картинки по ссылке убрать /upload/

InstantCMS 2.X
#1 29 декабря 2022 в 11:00

Здравствуйте перенес базу каталог с другого сайта  и так уж получилось что картинки хранятся в виде ссылок.

При выводе изображений ссылка выходит вида /upload/http://sitename.ru/lalala/image.jpg задача состоит в том, чтобы убрать в начале ссылки папку /upload/

Шаблон стандартный default версия системы 2.15.2 

Копал шаблон с помощью поиска по ключевому /upload/ правил, но что-то не выходит. Подскажите куда копнуть и где поправить этот вывод? желательно в списке и записи.

#2 29 декабря 2022 в 11:12

Вы прописали в базе ссылки на картинки и хотите, чтобы поле Изображение или Изображения использовало удаленные ссылки вместо локальных?

Это так работать не будет.

#3 29 декабря 2022 в 11:14

Вы прописали в базе ссылки на картинки и хотите, чтобы поле Изображение или Изображения использовало удаленные ссылки вместо локальных?

Это так работать не будет.

Zau4man

Да именно так, хочу чтобы поле изображение подгружало ссылку из вне, так как возможности хостинга ограничены, а картинок на 1гб выкачивать не хочется.

#4 29 декабря 2022 в 11:28

Самый простой вариант. Делаете экспорт вашей таблицы. Открываете в редакторе. Например в Notepad++. Делаете поиск и замену /upload/ на ничего. Заливаете обратно в базу

#5 29 декабря 2022 в 11:51

Самый простой вариант. Делаете экспорт вашей таблицы. Открываете в редакторе. Например в Notepad++. Делаете поиск и замену /upload/ на ничего. Заливаете обратно в базу

Lora

Ссылки на картинки я уже подогнал под формат базы

-

 original: mysite.ru/image.jpg

там нет папки upload в ссылках, дело в том, что сама система подставляет ссылку ткущего сайта и папку /upload/

Все картинки которые я планирую использовать одного размера и пресеты изображений мне не нужны.

Добавлено спустя 18 минут

вывода картинок в списке я добился убрав в строке шаблона default_list_tiles.tpl.php на строке 34 значение true

  1. <div class="photo" style="background-image: url(<?php echo html_image_src((empty($item['is_private_item']) ? $item['photo'] : default_images('private', $preset)), $preset); ?>);">
  2.  

 буду копать поля записи возможно и там что-то получится.


                   

#6 29 декабря 2022 в 11:59

Ну значит в файле который выводит ваши картинки заменить системный вывод ссылки на простой. Всё зависит от того где вы выводите. Список это или запись? Компонент или тип контента?

#7 29 декабря 2022 в 14:11

Ну значит в файле который выводит ваши картинки заменить системный вывод ссылки на простой. Всё зависит от того где вы выводите. Список это или запись? Компонент или тип контента?

Lora

Да думаю методом проб и ошибок найду решение.  Вывожу картинки в типе контента, картинки выводятся в списке и записи в списке уже решил задачу. Сейчас решаю в записи. В общем то логика шаблонов мне понятна и я уже нашел отвечающий за вывод шаблон /templates/default/controllers/photos

Спасибо за участие если решу данный вопрос отпишусь здесь, возможно кому-то пригодится.

Добавлено спустя 1 час

Поправил  в файле system/fields/image.php в строке 94 значение .html_image_src($paths, $this->getOption('size_full'), false)  с true на false

Появился вывод картинок в записи при клике, но начальное изображение до клика все равно идет неправильная ссылка. Буду думать дальше.

#8 29 декабря 2022 в 15:12

Можно поменять ссылки прямо в базе данных.

На примере поля content в таблице cms_con_posts

  1. UPDATE cms_con_posts SET content = REPLACE('/upload/http', 'http', content)
#9 29 декабря 2022 в 16:25

Можно поменять ссылки прямо в базе данных.

На примере поля content в таблице cms_con_posts

  1. UPDATE cms_con_posts SET content = REPLACE('/upload/http', 'http', content)
Ris

ссылки в базе имеют вид

-

 original:http://site.ru/image.jpg

там ничего менять не надо именно сама CMS добавляет к ссылкам которые я импортировал приставку /upload/

В шаблоне вывода категории я уже поправил как мне надо

В записи тоже выводятся изображения по клику.

но основное изображение до клика выводится с этой приставкой

<img src="/upload/https://mysite.ru/image.jpg" title=«тайтл» alt=«альт» class=«img-fluid img-thumbnail»>

За вывод этого изображения отвечает код /system/fields/images.php строка 94

  1. if(!empty($paths['original']) && strtolower(pathinfo($paths['original'], PATHINFO_EXTENSION)) === 'gif'){
  2. $html .= html_gif_image($paths, 'size_full', $title.' '.$key, array('class'=>'img-'.$this->getName()));
  3. } else {
  4. $html .= '<a title="'.html($title, false).'" class="img-'.$this->getName().' '.$a_class.'" href="'.html_image_src($paths, $this->getOption('size_full'), false).'">'.html_image($paths, $small_preset, $title.' '.$key, ['class' => 'img-thumbnail']).'</a>';
  5. }

пока разбираюсь как изменить.

Добавлено спустя 2 минуты

В общем то я понимаю, что форумчане не моя личная армия, чтобы решать задачи за меня и это не та тема, чтобы было полезно всем и каждому ежедневно. Поэтому постараюсь решить сам и не навязываться с бесплатными вопросами.

Добавлено спустя 36 минут

Нашел решение вывода, в строке  269 сменил тру на фолс /system/libs/template.helper.php

Теперь все мои ссылки с внешнего сайта отображаются корректно, иногда грузятся дольше но в целом все работает! Спасибо всем кто проявил участие!

#10 29 декабря 2022 в 18:49

original:http://site.ru/image.jpg

Алексей

Это не лечится.

Хотя, есть компонент редирект, может в нем попробовать добавить переадрес с upload/http на http?

Или вообще в конфиге прописать 

'upload_host'                        => 'http://site.ru/',

#11 29 декабря 2022 в 19:58

Это всё хорошо конечно, но вы сами себе роете яму. Нельзя менять системные файлы. Добром это не закончится).

Добавлено спустя 8 минут

Почитайте документацию. Тут есть отличная выручалка. Называется хуки. Возможно это вам поможет решить проблему.

#12 29 декабря 2022 в 20:43

 Lora

Предложите событие, по которому сработает хук. Я попробую сделать.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.