Здравствуйте.
Подскажите пожалуйста, как реализовать функционал позволяющий видеть картинку исходного размера в продукте.
Возможно реализовать по загрузку по клику или увеличить размер картинки?

Нравится

12 комментариев

Здравствуйте!

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

Как вариант вы можете загружать картинку в деталь "Файлы и ссылки" На закладке "Файлы и примечания" продукта. В таком случае картинка будет сохранена в базе в полном размере, и по клику на ее имя будет происходить ее загрузка или открытие (в зависимости от вашего браузера).

Добрый день!

Максим, идея с файлами и примечаниями интересная, возьму на заметку.

Алексей, дело в том, что в базе (в таблице SysImage) картинки хранятся в несжатом виде, т.к. попадают туда при интеграции из другой системы средствами sql через OPENROWSET. Возможно ли это как-то использовать?

Александр, добрый день!

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

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

Добрый день!
Александр, есть еще 2 варианта:
1. Реализовать свою логику при клике на изображение открывать его в модальном окне. В конфигурации есть примері использования. Метод ModalBox.show() вернет контейнер, в который вы сможете отрендерить нужный вам контент.
2. Взять готовые плагины, например у jQuery, и реализовать его использование.

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

Добрый день!
Да, возможно. Метод show() вернет вам контейнер, а дальше можете делать с ним что угодно. Пример:

var container = ModalBox.show({
	width: "200px",
	height: "100px"
});
var imageHtml = '<image src="http://localhost/bpmonlineSales770/0/img/entity/hash/SysImage/Data/dc0d78a5-18ce-4cbb-9afa-2d7d0143f4a6"/>';
Ext.DomHelper.insertHtml("afterBegin", container.dom, imageHtml);

Здесь выводится фото какого-то контакта

Спасибо, то, что нужно!

Спасибо, то, что нужно!

А как его можно корректно отмасштабировать, вне зависимости от исходных размеров?

style="max-height:100%;max-width: 100%"

Явное указание стилей проблему не решило. По ширине фото вписывается, а по высоте обрезается. Также не удалось отцентровать фото при масштабировании по ширине.

Здравствуйте, Александр!

Пример реализации Вы можете найти в продукте Real Estate на детали "Галерея" раздела "Объекты".

Показать все комментарии