Skip to main content

An additional outputfilter that enhance file and image links informations in rich text

Project description

https://travis-ci.org/PloneGov-IT/collective.outputfilters.enhancelinks.svg?branch=master

This product add a new outputfilter that generates additional informations for Tiny MCE’s internal link.

It’s a substitute of collective.tinymceplugins.advfilelinks, that doesn’t work with Plone >= 4.3 because it uses Products.TinyMCE >= 1.3.

Features

For every link that points to an internal content (file or image), in the rendered html will be added some new informations:

  • The mimetype icon before the link text

  • The mimetype and filesize after the link text

  • The url of a File points to the direct download

Installation

Install collective.outputfilters.enhancelinks by adding it to your buildout:

[buildout]

 ...

 eggs =
     collective.outputfilters.enhancelinks

and then run “bin/buildout”.

It doesn’t need to be installed.

Extending content-types

This product is modular, so if you want to add this feature (or more features) to some custom content-types you only need to provide a new adapter for the ILinkEnhancerProvider interface:

<adapter
    for="your.package.interfaces.IYourContent"
    provides="collective.outputfilters.enhancelinks.interfaces.ILinkEnhancerProvider"
    factory=".adapters.YourContentEnhanceLink"
/>

Then provide the Python adapter code:

from collective.outputfilters.enhancelinks.adapters import BaseEnhanceLink

class YourContentEnhanceLink(BaseEnhanceLink):
    ...

There are 4 basic methods for a basic override:

def get_url_suffix(filename):
    """ Return additional suffix to append at the end of the url """

def get_icon_url(mime_infos):
    """ Return the correct mimetype icon url """

def get_extension(content_file, mime_infos):
    """ Return the filename extension"""

def get_formatted_size(content_file):
    """ Return a formatted file size """

Additional mimetype icons

If you want more mimetype icons (for example for OpenOffice documents), you could add and install collective.mtrsetup in your buildout.

Contribute

Compatibility

This product has been tested on:

  • Plone 5.0

  • Plone 5.1

  • Plone 5.2

It works with Dexterity-based (plone.app.contenttypes) standard File and Image content-types. If you want support for Archetype-based content-types or Plone 4 compatibility, go with versions < 1.0.0.

License

The project is licensed under the GPLv2.

Credits

Developed with the support of:

All of them supports the PloneGov initiative.

Authors

This product was developed by RedTurtle Technology team.

RedTurtle Technology Site

Contributors

Changelog

1.1.5 (2023-01-09)

  • Python3 support. [cekk]

1.1.4 (2020-10-08)

  • Changed position of the attachment icon. Updated tests. [daniele]

1.1.3 (2020-05-14)

  • Fixed unicode issue. [daniele]

1.1.2 (2020-04-21)

  • Fixed extra infos in link description. [daniele]

1.1.1 (2020-01-30)

  • Fix links in readme. [cekk]

1.1.0 (2020-01-30)

  • Refactored mimetypes patch to avoid transaction writes on every call. [cekk]

  • Python 3 compatibility. [cekk]

  • Use humanfriendly for print file size informations. [cekk]

1.0.0 (2020-01-16)

  • REMOVED SUPPORT FOR AT CONTENT TYPES. AT support is only in version < 1.0.0. [arsenico13]

  • Patched a problem to avoid issues with csv files that doesn’t seem to be recognize by Products.MimetypesRegistry. [arsenico13]

  • Update tests for csv files. [arsenico13]

0.4.5 (2019-01-24)

  • Fixed obj retrieval when href attribute is none. [daniele-andreotti]

0.4.4 (2018-02-06)

  • Better unicode/decode error handling [cekk]

  • Don’t enhance links with “@@download” if already present in the href attribute to avoid duplication [cekk]

0.4.3 (2018-01-29)

  • Use set() to remove duplicated entries in link detection [cekk]

0.4.2 (2018-01-29)

  • Fix xpath filter to get all old-style internal-links [cekk]

0.4.1 (2017-12-18)

  • Fixed unicode. [daniele]

0.4.0 (2017-12-11)

  • Add support for Plone5 [cekk]

0.3.0 (2017-01-26)

  • Parse only links with internal-link class [cekk]

0.2.1 (2016-12-21)

  • Handle problems with malformed html that etree are unable to parse. Transformation is skipped and a warning log message is send. [cekk]

0.2.0 (2016-12-14)

  • Avoid etree.tostring to auto close empty divs with method=”html” parameter. This prevents some problems with browsers that don’t like self-closed div and renders a wrong html. [cekk]

0.1.2 (2015-12-09)

  • Fix additional infos position when a link has some children (for example a span) [cekk]

0.1.1 (2015-12-03)

  • Handled UnicodeDecodeError in Transform [cekk]

0.1.0 (2015-12-02)

  • Initial release. [cekk]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page