Перейти к содержимому


изображения в шаблоне печати

изображение шаблон печати smarty

Сообщений в теме: 13

#1 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 26 Февраль 2013 - 20:24

Есть поле типа Изображение.
В шаблоне печати используется конструкция вида
<img src="{ImgSource image={$Eskiz}}" style="max-width:800px; max-height:500px;">
Все великолепно пока в поле Эскиз не загрузят несколько картинок. Есть возможность обратится к ним через смарти-переменную?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Февраль 2013 - 11:04

Хм, очевидно не предусмотрели сразу такой вариант. Надо либо функцию как-то дорабатывать, либо не загружать в такие поля несколько картинок.

#3 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 27 Февраль 2013 - 11:10

Просмотр сообщенияCbCoder (27 Февраль 2013 - 11:04) писал:

Хм, очевидно не предусмотрели сразу такой вариант. Надо либо функцию как-то дорабатывать, либо не загружать в такие поля несколько картинок.
Правильнее будет все же для таких полей (файл и изображение) иметь массив.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Февраль 2013 - 11:48

Нет там массива, переменная {$Eskiz} содержит все картинки сразу в виде html-текста, причем текст этот разный в зависимости от направления вывода. Функция {ImgSource} просто парсит этот текст на предмет выделения адреса.

#5 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 27 Февраль 2013 - 12:21

Просмотр сообщенияCbCoder (27 Февраль 2013 - 11:48) писал:

Нет там массива, переменная {$Eskiz} содержит все картинки сразу в виде html-текста
То, что массива нет, я знаю. Я говорю, что теоретически должен быть, поскольку именно эти типы полей могут содержать множественные значения. И их нужно как-то обрабатывать.
Есть вариант относительно проще. Можно написать функцию по аналогии с {ImgSource}, но с параметрами: поле с картинкой и строка css для атрибута style. Пусть она выводит подряд все изображения из поля.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#6 Фёдор

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 03 Июль 2019 - 20:14

Дорый день. Имеется таблица с перечнем продукции и изображениями оной. В таблице изображения показываются уменьшенными и при клике раскрывается основное изображение. При печати в шаблон подставляются основные изображения, размер которых хорош для детального рассмотрения, но никак не подходит для распечатываемого прайса. Если распечатывать, используя стандартный шаблон, то там подставляются превью. Как сделать так, что бы в мой шаблон подставлялись превью?

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Июль 2019 - 11:14

Собственно в первом сообщении темы есть пример. Или он не работает у вас? Просто задайте те же размеры что в настройках поля указаны для превью (или любые другие).

Например: <img src="{ImgSource image={$Изображение}}" style="max-width:100px; max-height:100px;"> для превью размером 100х100

#8 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 12 Март 2020 - 16:34

Функция ImgSource не правильно парсит адрес при использовании в шаблоне рассылки. Присутствуют лишние артефакты в конце строки:
style="background-image: url(open_file.php?form=990&file=pl-4_3_05.jpg&is_show=1' alt='image)"
В итоге подложить изображение в качестве фона в шаблоне не получается.

Сообщение отредактировал andibrag: 12 Март 2020 - 16:46

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Март 2020 - 12:22

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

#10 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 13 Март 2020 - 17:20

Отправил.
Возник еще один вопрос.
Сделал смарти функцию, которая преобразует изображение в data64.
function image_embed($params)
{
    preg_match("/src='(.*)?'/",$params['image'],$matches); // вычленение src
    $img_content = file_get_contents("http://" . $_SERVER['SERVER_NAME'] . "/cb/" . $matches[1]);
    return "data:image/png;base64," .  base64_encode($img_content );
}
$smarty->registerPlugin("function", "ImgEmbed", "image_embed");
Но при передачи ей картинки src содержит ссылку вроде этой
http://tavr.info/cb/open_file.php?form=990&file=pl-4_3_06.jpg&is_show=1
и она кодируется неправильно, т.е. результат не является изображением. Сравнивал результаты кодировки, получаемые по ссылке и просто этого же изображения - они отличаются. По всей видимости file_get_contents при передаче ей такой ссылки получает не совсем корректное содержимое.
Что возвращает open_file.php и почему не работает?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#11 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Март 2020 - 11:45

open_file.php вполне корректно работает, но только в контексте авторизованного пользователя. Когда вы читаете его через file_get_contents, авторизации не происходит и изображение не выдается (скорее всего выдается страница авторизации, можете вывести $img_content на экран и проверить). По крайней мере мой тест показал именно такой результат.

#12 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 18 Март 2020 - 12:41

Просмотр сообщенияCbCoder (17 Март 2020 - 11:45) писал:

open_file.php вполне корректно работает, но только в контексте авторизованного пользователя. Когда вы читаете его через file_get_contents, авторизации не происходит и изображение не выдается (скорее всего выдается страница авторизации, можете вывести $img_content на экран и проверить). По крайней мере мой тест показал именно такой результат.
Запрос идет с авторизированной страницы. Более того ссылка, если ее подставить
src="http://tavr.info/cb/open_file.php?form=990&file=pl-4_3_06.jpg&is_show=1"
содержит изображение, которое нормально отображается в браузере. Но при попытке сделать кодирование в base64 - получаем неправильный результат. Вот это мне не понятно.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#13 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Март 2020 - 14:29

Цитата

Запрос идет с авторизированной страницы

Когда я тестировал ваш код, я тоже заходил с авторизованной страницы. Тем не менее file_get_contents мне выдал страницу авторизации, как будто никакого входа не было (очевидно это из-за того, что загрузка страницы тут идет не из браузера, а со стороны сервера). То что в браузере ссылка нормально отображается, это естественно, так и должно быть если вы там предварительно авторизовались Но тут повторюсь вход не из браузера.

#14 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 18 Март 2020 - 22:18

Просмотр сообщенияCbCoder (18 Март 2020 - 14:29) писал:

Когда я тестировал ваш код, я тоже заходил с авторизованной страницы. Тем не менее file_get_contents мне выдал страницу авторизации, как будто никакого входа не было (очевидно это из-за того, что загрузка страницы тут идет не из браузера, а со стороны сервера). То что в браузере ссылка нормально отображается, это естественно, так и должно быть если вы там предварительно авторизовались Но тут повторюсь вход не из браузера.
Логично.
Попробовал внедрить изображения явно вставляя их в кодировке base64 в тело шаблона. Не отображаются в почтовике. Так что этот подход всё одно оказался тупиковый.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных