Как изменить размер виджета Dexterity? - PullRequest
5 голосов
/ 08 сентября 2011

Я использую DisplayForm для своего класса представления и успешно отрисовал поле NamedBlobImage с:

<span tal:replace="structure view/w/image/render" />

Как настроить ZPT для отображения изображения другого размера, например 'image_mini' или любого другого изображения из plone.app.imaging?

Ответы [ 2 ]

7 голосов
/ 08 сентября 2011

Как и в полях изображений Archetypes, набор предопределенных масштабов автоматически доступен в программе «Ловкость».Для быстрого доступа к ним нужно использовать код, подобный следующему:

<img src=”#” tal:replace=”structure
 context/@@images/fieldname/scale” />

, где «fieldname» - это имя поля, а «scale» - один из предопределенных масштабов.* Посмотрите на http://pypi.python.org/pypi/plone.namedfile/#image-scales для полной информации.

5 голосов
/ 08 сентября 2011

Вы должны использовать plone.app.imaging для этого.

Это было бы как:

<img tal:define="scales context/@@images;
                 thumbnail python: scales.scale('image', width=64, height=64);"
     tal:condition="thumbnail"
     tal:attributes="src thumbnail/url;
                     width thumbnail/width;
                     height thumbnail/height" />

Где context - это объект, который содержит изображение, а image (на scale.scale ('image' ...) - это имя поля с изображением, размер которого вы хотите изменить.

Если вы хотите использовать предопределенные размеры изображений, просто используйте:

<img tal:define="scale context/@@images"
     tal:replace="structure python: scale.scale('image',
                  scale='mini').tag()" />

Приветствия

...