An advanced Link content type for Plone, with image field, customizable content icon and internal link feature
Table of contents
- TODO and know issue
- Additional documentation
- 1.1.3 (2012-09-13)
- 1.1.2 (2012-05-23)
- 1.1.1 (2012-05-18)
- 1.1.0 (2012-02-20)
- 1.0.0 (2011-11-03)
- 1.0.0rc2 (2010-11-06)
- 1.0.0rc1 (2010-09-12)
- 0.7.3 (2010-06-03)
- 0.7.2 (2010-04-06)
- 0.7.1 (2010-03-26)
- 0.7.0 (2010-03-26)
- 0.6.1 (2010-03-10)
- 0.6.0 (Unreleased)
- 0.5.1 (2010-02-02)
- 0.5.0 (2010-01-25)
- 0.4.0 (2009-09-12)
- 0.3.1 (2009-08-30)
- 0.3.0 (2009-08-02)
- 0.2.0beta (2009-04-03)
- 0.1.0dev (2009-03-27)
An enhanced version of the base Plone link content type.
After installing this you’ll see that the Plone link will have a new image and caption fields like the News Item content type.
Also the new Link type can handle internal (to Plone contents) and external links. You can use the internal link field to automatically attach the link value to an internal content of the portal (in a similar way used for related contents).
An event-based system will also keep URLs updated even when you move/rename target document.
You can also customize the link icon for being able to use a different icon from the default Plone ones. Due to changes between Plone 3 and Plone 4 themes, we need to keep the Plone 3 approach for displaying icons (not using CSS sprite. To restore the Plone 4 default way, disable the smart_link.css resource and remove the “Icon (Expression)” value from portal_types tool).
The Smart Link structure is nothing more that a ATLink content, so the way used to store URL in the object or in the site’s catalog is the same as Plone. There is no magic behind.
For this reason, when you are using Smart Link for internal references, the static URL is stored and used.
This will lead to problems when you are using this product for site where you have different back-end/front-end URLs; those problems are the same you have when you don’t use this product!
For this reason you must use the “Configure Smart Link” control panel to handle URL transformation.
You can also use an option that says to Smart Link to store relative URLs, but this will also include the Plone site id in every link (and you must rewrite this from Apache if you don’t like this).
SmartLink supports (starting from 1.0.0 revision) the use of blob for the image field. In this way we doesn’t increases the size of Data.fs .
The Blob support for SmartLink is activated only if plone.app.blob is installed. Plone 4 has Blob as storage default for the images and the files. On Plone 3.x you have to install it by yourself.
If you have already created Smark Link contents with an old version that doesn’t support Blobs you have to launch a migration utility from the Smart Link control panel.
Smart Link shape-change itself to be the Link content type, and hide the basic Plone Link type. Old ATLink already created will continue working normally, but only new created link will behave the Smart Link features.
Pay attention when you update the whole portal_catalog using ZMI from URLs different from back-end or front-end ones (for example: using a SSH tunnel).
If you run the update from (for example) “localhost:8090/site” and this URL is not the public or one of the back-end URLs, all your internal links will be changed to this hostname! Another catalog update (from the right URL) will fix this.
You can re-install Smart Link safely for upgrade task or for restore changes, without any problem.
If you uninstall it, all data from Smart Link will be removed. This means that if you re-install it after all your internal links will not be linked to target contents.
Smart Link has been tested on Plone 3.3, 4.0, 4.1 and 4.2. It’s possible that also older Plone 3.x version can be used safely.
- Evaluate a more general approach to icon substitution
- Uninstall will not work properly in Plone 3.3
Developed with the support of:
All of them supports the PloneGov initiative.
- Smart Link uninstall was changing the Generic Setup baseline context. When we found it, we restore the “profile-Products.CMFPlone:plone” (part of issue #1) [keul]
- when uninstalling, restore old ATLink automatically [keul]
- fixed many bad formatted portal messages visualization [keul]
- uninstall now remove the persisten utility (fix the other part of issue #1) [keul]
- fixed a bug on Plone 3 if plone.app.blob is not present [keul]
- fixed tests for Plone 4.2 compatibility [keul]
- migrating “fake external links” now support the migration of URLs that explicitly use “resolveuid” (sometimes Plone users are really evil) [keul]
- added a link to the view that migrate to blob from the control panel [keul]
- added a new Smart Link: access configuration permission for site configuration that “Site Administrator” role can handle [keul]
- added an utility to convert “fake external” link to internal [keul]
- aligned all Link.xml files to be Plone 4 compliant [keul]
- In Plone 4 the related items were duplicated (if used). Now Plone 3.3 requires collective.relateditems [keul]
- Moved URL transformation features to an ILinkNormalizerUtility [keul]
- fixed all tests to be compatible again with Plone 3.3.6 [keul]
- fixed bug when providing a non ASCII URL (close #8) [keul]
- provide a count of updated links when using the administration utility (close #6) [keul]
- provided an import step to migrate ATLink to Smart Link (close #7) [keul]
- provided an import step to go back to ATLink from Smart Link [keul]
- Plone 4.1 compatibility
- size of a smart link is the size of its image [keul]
- finally removed the fss.zcml. It’s time to BLOB man! [keul]
- added the BLOB extension for image field [mircoangelini]
- added BLOB migration view: blob-smartlink-migration [mircoangelini]
- fixed icon handling, going back to the Plone 3 icons, disabling Sunburst CSS-sprite with a new smart_link.css resource [keul]
- when linking an internal content, do not display a simple URL but a link using item’s title [keul]
- reStructured text fixes [keul]
- uninstall was not working under Plone 4.0 (this close #5) [keul]
- URL utility description updated with latests features added in 1.0 version [keul]
- fixed duplicated icon when using (or not using anymore) this product on Plone 4 (close #4). To make those additional icon disappear from Plone UI you may need a catalog update. [keul]
- configuration icon was not displayed properly on Plone 4 [keul]
- added the “Front-end main URL” feature (close #3) [keul]
- Plone 4 compatibility [keul]
- The explicit use of iw.fss has been removed. The fss.zcml is still there and you can still include it if you like, but you must do this manually [keul]
- ISmartLink also extends the IImageContent interface [keul]
- A better uninstall procedure, that remove Plone UI stuff and restore original linked object status [keul]
- Added the favicon field, that drive the icon’s link [keul]
- Added the anchor field, for manage anchor in internal links [keul]
- Moved new and old secondary fields to the Advanced fieldset [keul]
- The “unlink” event when deleting a referenced object has been removed: keeping an additional index only for this feature was not a soo good idea. Now the internal link will display the latest memoized link [keul]
- Aligned the smartlink_view with the latest Plone link_view, so now will also display the message when you are not redirected to the target URL (however this will be untranslated on Plone < 3.3) [keul]
- Added tests [keul]
- Updated and fixed labels and texts all around and i18n translation too [keul]
- Splitted UI error warn when you don’t provide neither internal and external link, from the fact that you provide both of them [keul]
- When unlinking an internal content, it’s cleaned from marker interface [keul]
- Switched front-end and back-end order in the config panel [keul]
- Fixed a bug that force the front-end URLs in config panel to be unique [keul]
- fix #2 - error upgrading from 0.4.* to 0.7.* (missing utility) [mauro]
- The “smartLink” event was using directlyProvides instead of alsoProvides… this was corrupting some target objects (like: it was impossible to internally link a file that use blobs) [keul]
- Removed the Plone 3.3+ dependency because Smart Link is providing the same feature given by Plone 3.3 also on older Plone versions [keul]
- Version 0.7 had a stupid, unused dependency [keul]
- Added z3c.autoinclude support [keul]
- From this version the minimum requirement is Plone 3.3 [keul]
- Aligned with changes done to ATLink from Plone 3.3 [keul]
- Added a fake link_redirect_view [keul]
- Fixed egg format [keul]
- README updated [keul]
- Changed name of tool [fdelia]
- Added icon for tool [fdelia]
- Fix for the corrupted version 0.5.0 [fdelia]
- Added configuration panel to transform back-end links in front-end links [fdelia]
- Added configuration panel to have internal links relative and not absolute [fdelia]
- Keep relations of internal link even if the target content is renamed/moved [keul]
- Added a marker interface for internally linked contents [keul]
- When target object is deleted, the internal relation became a normal absolute URL info [keul]
- Restored the original remoteUrl StringField , due to continuous bad integration with 3rd party products (like p4a and collective.flowplayer) [keul]
- Fixed syntax error on relation name (“internal_page” was “interal_page”) [keul]
- Disabled the backup of basic Plone ATLink [keul]
- Fixed some integration problem in content/link.py related to p4a (remoteUrl) [lucabel]
- Fixed major bug in post_validate (validation was useless) [fdelia]
- Internalization with i18ndude [fdelia]
- Created italian translation [micecchi]
- Clean uninstall (restoring the original ATLink in portal_types) [keul]
- Added a lot of ATLink methods not migrated to the SmartLink class.
- Fixed a bug that lead all reordering actions in folders with SmartLink inside to failure (or to chaotic results). After migrating to this version from the 0.1.0 you can also launch the fix_meta_data external method or your folder will remains broken.
- Initial release