Adds lead image to any content in plone site
This products adds complete support for adding descriptive image to any Archetypes based content in Plone site. Each object has new tab “Edit lead image”, which allows to upload new or remove current image. It is similar behaviour as Plone News Item (you can add image to news item and this image is displayed in news item overview listing.
There is folder_leadimage_view page template, which can be used to list all items in the folder together with images attached.
There is configuration control panel, where you can set maximum width and height of the uploaded images. The width and height is applied on each image upload (image is automatically resized). You can specify smaller width and height which is used as image preview in the below content title viewlet (next to content Description). Large image is used in the above content body viewlet (floated left at the top of content body).
Below content title viewlet is preffered, but Manager can easily switch the viewlets on/off in the control panel.
There is FieldIndex and metadata in portal_catalog: hasContentLeadImage (True/False). This may help developers to create own templates optimized for displaying lead image.
Note: For Plone 4.4+ and plone.app.contenttypes based content there is support for lead image behavior out of the box. This addon is only compatible with legacy Archetypes based content.
If you are using zc.buildout and the plone.recipe.zope2instance recipe to manage your project, you can do this:
Add collective.contentleadimage to the list of eggs to install, e.g.:
[buildout] ... eggs = ... collective.contentleadimage
Tell the plone.recipe.zope2instance recipe to install a ZCML slug:
[instance] recipe = plone.recipe.zope2instance ... zcml = collective.contentleadimage
Re-run buildout, e.g. with:
More detailed installation instructions may be found in docs/INSTALL.txt.
plone.app.imaging provides dynamic image scales for all Plone images since Plone version 4.1.
Below is an example how to use @@images with with portal_catalog hasContentLeadImage metadata column to show a custom sized lead image scale in a folder listing.
Example page template snippet from a folder listing:
<div class="tileItem visualIEFloatFix" tal:define="item_has_leadimage item/hasContentLeadImage; item_object item/getObject; item_hide_from_nav item/exclude_from_nav; " tal:condition="not:item_hide_from_nav"> <img tal:condition="exists:item_has_leadimage" tal:define="scale item_object/@@images; img python:scale.scale('leadImage', width=280, height=280)" tal:replace="structure python: img.tag() if img else None" />
Here is another example how Event content type view template is modified to directly display lead image next to the event details table. The modification was done using z3c.jbot and overriding the template as Products.CMFPlone.skins.plone_content.event_view.pt.
The template head:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal" xmlns:i18n="http://xml.zope.org/namespaces/i18n" lang="en" metal:use-macro="context/main_template/macros/master" i18n:domain="plone"> <body> <metal:content-core fill-slot="content-core"> <metal:content-core define-macro="content-core" tal:define="kssClassesView context/@@kss_field_decorator_view; getKssClasses nocall:kssClassesView/getKssClassesInlineEditable; templateId template/getId; toLocalizedTime nocall:context/@@plone/toLocalizedTime;"> <tal:comment replace="nothing"> <!-- Show content lead image above event details on the event page. Match image dimensions to the event details table size. --> </tal:comment> <div class="lead"> <div class="lead-image-wrapper" tal:define="scale context/@@images; img python:scale.scale('leadImage', width=300, height=300)" tal:condition="img"> <img tal:replace="structure python: img.tag() if img else None" /> </div> <div class="eventDetails vcard"> <table class="vertical listing" summary="Event details" i18n:attributes="summary summary_event_details;"> <tbody>
- Add french translation [laulaz]
- Fix gitignore [laulaz]
- Fix: Don’t set None value on hasContentLeadImage index [boulch]
- Register CSS Resources to render as link instead of import for better performance. [thet]
- Also use IMAGE_FIELD_NAME config attributes in leadimage-body.pt [thet]
- Fixed blob based images not being language neutral [miohtama]
- Add french translation [toutpt]
- Fix type vocabulary to ReallyUserFriendlyTypes [amleczko]
- Changed collective.contentleadimage.full registrations in zcml: we should register the viewlet with IViewView interface restriction, in this way it will be shown only in the canonical view [lucabel]
- Allow contententleadimage in all skins [tom_gross]
1.3.4 - 2011/12/28
- Fixed adaption to Plone 4.1 [naro]
1.3.3 - 2011/12/28
- Adapted to Plone 4.1 [davidjonas]
- Fixed ‘//’ bug in purge.py [adamt]
1.3.2 - 2011/05/24
- Check for presence of a leadimage caption so we don’t display an empty div on the page. [davidjb]
- Added new tests to check various aspects of rendering the lead image and associated captioning. [davidjb]
1.3.1 - 2011/05/20
- Checking for Products.CacheSetup presence before registernig its subscriber [silviot]
- add allowed_atributes to folder_leadimage_view so this view can be called from other views [shagi]
- mtool variable definition added [kroman0]
- remove scaled images during migration [otacon]
1.3.0 - 2010/09/15
- fixed migration to blobs. Thanks to David Jonas. [naro]
1.3.0b1 - 2010/09/13
- added migration to blobs [naro]
1.3.0a1 - 2010/08/19
THIS VERSION ADDS BLOB SUPPORT WHICH BECOMES DEFAULT LEAD IMAGE STORAGE IN PLONE4. MIGRATION TO BLOB IS NOT PREPARED YET! DON’T USE THIS VERSION IF YOU ARE MIGRATING TO PLONE4. IT IS SAFE TO USE IT ON PLONE3 OR PLONE4.
- use correct image title (caption) in folder_leadimage_view. Fixes #2 [naro]
- make leadimage languageIndependent. Fixes #1 [naro]
- store images as blobs in case plone.app.blob is installed and use scales defined in plone.app.imaging see TODO.txt for possible issues [fRiSi]
- fixed folder_leadimage_view to display content-type icon only for the headline (in plonetheme.sunburst the next image contained in contenttypes-sprite.png has been visible due to the height of the div) [fRiSi]
- toLocalizedTime has not been available in plone4.0b2 (fetching it as folder_listing does) [fRiSi]
- Added Dutch translation [maartenkling]
- Added Spanish translation [pcaro]
- Large Plone Folder was removed from plone4, added zcml:condition for profile - duplicated and edited profile for plone4. [hpeteragitator]
- make sure the viewlets are not shown after adding and removing an image [enriquepablo]
1.2.0 - 2010/03/14
- Plone 4 compatibility - added dependency on plone.indexer to be compatible with Plone 3.2-
- Plone 4 compatibility - leadimage scale must be stored in plone.app.imaging properties.
1.1.7 - 2009/09/22
- something went wrong with optional plone.indexer. Let’s disable it meanwhile.
1.1.6 - 2009/09/06
- fixed version number
1.1.5 - 2009/09/02
- use plone.indexer if possible
- added controlapnel icon
- reindex hasContentLeadImage index on reinstall
1.1.4 - 2008/12/16
- fixed bug in migration from version 0.x. Thanks to Ben Chodoroff for pointing to it.
- added Italian translation. Thanks to [paulox]
- fixed spelling
1.1.3 - 2008/10/14
- be more careful when accessing cli_properties property sheet in schema extender. It may be called too soon and cause AttributeError.
- added uninstall code which removes configlet
1.1.2 - 2008/10/10
- make lead image field language dependent. This fixes problem with Linguaplone and it helps to make multi language screenshots, for example.
1.1.1 - 2008/10/10
- fixed body viewlet - image tag was there even if there was no image
- fixed potential error when object schema has no ‘description’ field.
1.1 - 2008/09/23
- moved integer and string properties from propertiestool.xml to setuphandlers, because properties were overriden with default values on reinstall.
- removed max size settings from the controlpanel and reuse max_size from ATContentTypes settings (zconf.ATNewsItem.max_image_dimension)
- images may be captioned
- if image is displayed in the body, it is possible to display image fullscreen (the same as newsitem image)
- it is possible to specify, which scale will be used for displaying the image in “description” part and which in “body” part.
- make images “newsitem” like. Image tags uses the same CSS classes as news items, leadImage field uses the same scales as News Item plus one special ‘leadimage’ scale defined by user in the controlpanel.
- it is possible to set allowed_types. Document and Folder are allowed by default.
- changed CSS - define float on the leadimage-wrapper to easily style leadimage itself (for example for adding border around the image)
1.0.1 - 2008/09/11
- fixed dependency on plone.browserlayer
- make extender browser layer aware
1.0 - 2008/09/09
- MIGRATION REQUIRED ! rewritten using archetypes.schemaextender. If you upgrade from version <1.0 please don’t forget to run upgrade step from portal_setup/Upgrades, choose the collective.contentleadimage profile, check the (0.3 - 1.0) upgrade step and press Upgrade button. [naro]
- Moved leadImage field after the Descripton field. [naro]
- leadImage field supports original size and one scale. [naro]
- it is possible to specify maxwidth and maxheight in the controlpanel [naro]
- created new viewlet in AboveContentBody viewlet manager. This viewlet displays large version of the image (size specified as maxwidth/maxheight in the controlpanel). It is possible to switch on/off both viewlets in @@manage-viewlets or in leadimage control panel. [naro]
0.4 - 2008/09/03
- fixed portal action condition. There is new browser view which checks if object provides ILeadImageable interface. This view is called from action condition. [naro]
0.3 - 2008/09/03
- fixed bug - hasContentLeadImage index was not registered. [naro]
- added German translation. Thanks to Rainer Schaffer [naro]
- fixed typo in actions.xml (second icon_expr should be available_expr) Thanks to Dan Jacka for spotting this [naro]
- fixed docs [naro]
- initial release