Package: collective.ckeditor
IntroductionThis addon is ackeditorintegration for Plone.  This release includesckeditorversion 4.12.1.ContentsIntroductionHow to installDependenciesTranslationsUpgrades4.3.0CKEditor pluginsballoontoolbarpluginuploadimagepluginnonbreakingplugintableresizepluginDevelopmentHow to ReleaseHow to update to a newer version of CKEditorTests statusCreditsCompaniesContributorsChangelog4.10.1 (2021-10-01)4.10.0 (2021-06-11)4.9.1 (2021-02-12)4.9.0 (2019-09-12)4.8.3 (2018-11-13)4.8.2 (2018-10-12)4.8.1 (2018-07-10)4.8.0 (2018-06-22)4.7.2 (2017-12-15)4.7.1 (2017-12-08)4.7.0 (2017-12-01)4.6.0 (2017-08-18)4.5.0 (2017-02-24)4.4.5 (2016-11-23)4.4.4 (2016-05-02)4.4.3 (2016-05-02)4.4.2 (2016-04-13)4.4.1 (2016-04-13)4.4.0 (2016-03-11)4.3.5 (2016-02-16)4.3.4 (2016-01-21)4.3.3 (2016-01-20)4.3.2 (2016-01-08)4.3.1.1 (2015-01-05)4.3.1 (2015-12-14)4.3.0b2 (2014-06-19)4.3.0b1 (2014-06-19)4.2.0 (2014-06-05)4.1.1 (2014-03-27)4.1 (2014-03-27)4.0.0 (2014-02-05)3.6.12 (2013-09-05)3.6.11 (2013-05-30)3.6.10 (2013-05-30)3.6.9 (2013-05-29)3.6.8 (2012-12-13)3.6.7 (2012-08-20)3.6.6 (2012-07-05)3.6.5 (2012-07-04)3.6.4 (2012-07-03)3.6.3 (2012-07-03)3.6.2 (2011-12-12)3.6.2b2 (2011-12-12)3.6.2b1 (2011-12-12)3.6.1 (2011-07-14)3.6.1rc (2011-07-14)3.4.13.43.3.1b3.2.1b3.2.1a3.0.23.0CKEditor for Plone : FAQHow to installYou can install it as any Plone addon. Please follow officialdocumentation.The code source can be found athttps://github.com/collective/collective.ckeditorPlease report issues athttps://github.com/collective/collective.ckeditor/issuesDependenciesPlone >= 4collective.plonefinderTranslationsThis product has been translated intoSpanish.French.Italian.You can contribute for any message missing or other new languages, join us atPlone Collective TeamintoTransifex.netservice with all world Plone translators community.UpgradesGo to ZMI–>portal_setup–>Upgrades, choose “collective.ckeditor:default”
profile and execute the upgrade steps.4.3.0Release 4.3.0 comes with theEnhanced Imageplugin (image2). It is not
enabled by default as it removes some of the advanced functionality provided by
the default image plugin (image). However, theEnhanced Imageplugin
provides the ability to add a caption together with the image. It is also much
more user-friendly.To enable the plugin, you need to setupckeditor_propertiesthrough generic
setuppropertiestool.xml:<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
 <object name="ckeditor_properties" meta_type="Plone Property Sheet">
  <property name="removePlugins" type="lines">
   <element value="image"/>
  </property>
  <property name="plugins" type="lines">
   <element value="ajaxsave;/++resource++cke_ajaxsave/plugin.js"/>
   <element value="image2;/++resource++ckeditor/plugins/image2/plugin.js"/>
  </property>
 </object>
</object>This disables theimage(default) plugin and enables theimage2plugin.Theimage2plugin comes with two specific settings (configurable only through
generic setup):<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
 <object name="ckeditor_properties" meta_type="Plone Property Sheet">
  <property name="image2_captionedClass" type="string">image</property>
  <property name="image2_alignClasses" type="lines">
   <element value="image-left"/>
   <element value="image-dummy"/>
   <element value="image-right"/>
  </property>
 </object>
</object>The settings areimage2_captionedClassandimage2_alignClasses.
The values above are the default values.If you enable the plugin, you also need to setup Plone to accept
thefigcaptiontag.This is done by configuring HTML filtering with a setup handler like:def enable_figcaption(p):
    """ Allow figcaption as valid tag in portal_transforms safe_html"""

    from Products.PortalTransforms.Transform import make_config_persistent

    pt = getToolByName(p, 'portal_transforms')
    tid = 'safe_html'
    if not tid in pt.objectIds():
        return
    trans = pt[tid]
    tconfig = trans._config

    validtags = tconfig['valid_tags']
    validtags.update({'figcaption': 1})

    make_config_persistent(tconfig)
    trans._p_changed = True
    trans.reload()
    log.info('added figcaption as valid tag')CKEditor pluginsballoontoolbarpluginprovided since version 4.8.0Not enabled by default, this plugin provides an API to setup context sensitive toolbars.To enable the plugin, addballoontoolbar;/++resource++ckeditor/plugins/balloontoolbar/plugin.jsto thePluginsfield in CKEditor control panel (@@ckeditor-controlpanel).uploadimagepluginprovided since version 4.7.0Enabled by default, this plugin manages support for uploading images that were dropped or pasted into the editor.nonbreakingpluginprovided since version 4.4.5.When enabled, the plugin provides keyboard shortcuts to insert non breaking chars:Ctrl-Alt-Spacefor non breaking space,Ctrl-Alt-Hyphenfor non breaking hyphen.Corresponding buttons can also be configured in the toolbar:NbSpaceNbHyphenTo enable the plugin, addnonbreaking;/++resource++cke_nonbreaking/plugin.jsto thePluginsfield in CKEditor control panel (@@ckeditor-controlpanel).Or setupckeditor_propertiesthrough generic setuppropertiestool.xml:<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
 <object name="ckeditor_properties" meta_type="Plone Property Sheet">
  <property name="plugins" type="lines">
   <element value="ajaxsave;/++resource++cke_ajaxsave/plugin.js"/>
   <element value="nonbreaking;/++resource++cke_nonbreaking/plugin.js"/>
  </property>
 </object>
</object>tableresizepluginWhen enabled, the plugin makes it easy to change the table columns width by
drag/dropping it from left to right and right to left.To enable the plugin, addtableresize;/++resource++ckeditor/plugins/tableresize/plugin.jsto thePluginsfield in CKEditor control panel (@@ckeditor-controlpanel).Or setupckeditor_propertiesthrough generic setuppropertiestool.xml:<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
 <object name="ckeditor_properties" meta_type="Plone Property Sheet">
  <property name="plugins" type="lines" purge="False">
   <element value="tableresize;/++resource++ckeditor/plugins/tableresize/plugin.js"/>
  </property>
 </object>
</object>DevelopmentAttention!ConfigurationErrorIf you try to run a Zope/Plone instance with a collective.ckeditor
checkout, your instance will break with aConfigurationError:Directory .../browser/ckeditor does not exist.After checking out collective.ckeditor sources, run the included buildout.This installs and runs thecopy_ckeditor_codescript.  It takes care of
copying ckeditor code in the appropriatebrowser/ckeditordirectory.Thebrowser/ckeditordirectory makes ckeditor javascript code available to
the browser at:http://yourplonesite/++resource++ckeditor/How to ReleaseObviously, the ckeditor code also needs to be included in the released eggs.collective.ckeditorregisters an entry point forzest.releaserthat (if
called properly) takes care of copying the code when preparing the release.However, in order to take advantage of the entry point, you have to use thebin/fullreleaselocally installed by the development buildout instead of
a globally installedfullrelease.Only the localbin/fullreleasescript can see the entry_point registered bycollective.ckeditor.How to update to a newer version of CKEditorValid for CKEditor 4Go todev/build-ckeditorUpdate plugin versions computation inimage2.sh,moono.sh,scaytandwscinscayt.shIssue the following commandCKEDITOR_VERSION=4.x.x makeRunbin/copy_ckeditor_codeTestAdd untracked filesgit add../../src/collective/ckeditor/_src/ckeditor/CommitIf you need unminified JS to debug the release,
step 3 can be replaced with:MINIFIED_JS=--leave-js-unminified CKEDITOR_VERSION=4.x.x makeTests statusThis add-on is tested using Travis CI. The current status of the add-on is:CreditsCompaniesMakina CorpusEcreallBubbleNetHexagonitContributorsKai Lautaportti <kai.lautaportti@hexagonit.fi>Giacomo Spettoli <giacomo.spettoli@gmail.com>Godefroid Chapelle <gotcha@bubblenet.be>Mathieu Le Marec - Pasquet <kiorky@cryptelium.net>Jean-Mat Grimaldi <jeanmat.grimaldi@gmail.com>Michael Smith <msmith64@naz.edu>Victor Fernandez de Alba <sneridagh@gmail.com>Kim Paulissen <spereverde@gmail.com>Jean-Michel FRANCOIS aka toutpt <toutpt@gmail.com>Gauthier Bastien <gauthier@imio.be>Leonardo J. Caballero G. <leonardocaballero@gmail.com>Changelog4.10.1 (2021-10-01)Fix CKEditor not packaged properly in 4.10.0 release.
[aduchene]Use zest.releaser = 6.22.1.
[aduchene]4.10.0 (2021-06-11)Add disallowedContent option to blacklist content.
[naro, gotcha]4.9.1 (2021-02-12)Add Transifex.net service integration to manage the translation process.
[macagua]Add Spanish translation
[macagua]AjaxSave plugin, add message when nothing saved because nothing changed
(Content already saved (nothing changed).)
[gbastien]AjaxSave plugin, addedasync:trueattribute so it is possible to set it
toasync:falseand make sure content is saved before continuing.
[gotcha, gbastien]4.9.0 (2019-09-12)Update to CKEditor 4.12.1
[gotcha]4.8.3 (2018-11-13)AjaxSave plugin, defend against not traversable objects like plone.registry
records
[gotcha]4.8.2 (2018-10-12)refactor AjaxSave pluginfix for Archetypessupport for plone.app.contenttypessupport for formlib portlets[gotcha]4.8.1 (2018-07-10)CKEditor language is coherent with edit view language
[gotcha]4.8.0 (2018-06-22)Update to CKEditor 4.9.2
Include not enabled balloontoolbar plugin
[gotcha]4.7.2 (2017-12-15)Makeuploadimageresolveuidlinks relative.
[gotcha]4.7.1 (2017-12-08)uploadimagesupport usesresolveuid.
[gotcha]4.7.0 (2017-12-01)Enableuploadwidgetanduploadimageplugins.
Corresponding upgrade step
(Now depends onplone.api)
[gotcha]4.6.0 (2017-08-18)Update to CKEditor 4.7.2
[gotcha]4.5.0 (2017-02-24)Add a setting for CKEditor skin: colored or flat buttonsDefault skin remains Moonocolor, colored buttons.
Flat buttons comes from the new Moono-lisa skin (seehttp://ckeditor.com/addon/moono-lisa)
[gotcha]To avoid ugly border-bottom on buttons in default Plone 4 skin: add the
following style to your CSS:#content a.cke_button {
    border-bottom: 0;
}

#content a.cke_button:hover {
    border-bottom: #ccc 0.1em solid;
}Update to CKEditor 4.6.2
[gotcha]4.4.5 (2016-11-23)nonbreakingplugin: used to insert non breaking spaces and hyphens.
[gotcha]4.4.4 (2016-05-02)Fix overloading settings: it should be empty dict rather than None
[gotcha]4.4.3 (2016-05-02)Enable settings overloading for formlib wysiwyg widget
[gotcha]4.4.2 (2016-04-13)Fix customization per widget of filexxxBrowserUrl, depending on language
[gotcha]4.4.1 (2016-04-13)Enable settings overloading for plone.app.z3cform wysiwyg widget
[gotcha]Enable customization per widget of filexxxBrowserUrl, depending on language
[gotcha]4.4.0 (2016-03-11)Store custom toolbars in registry.
(With previous change, enable different toolbars per widget)
[gotcha]Improve settings overloading per widget
[gotcha]Load js only if you are an authenticated user.
[bsuttor]4.3.5 (2016-02-16)Fix image preview in ckeditor when clicking on main image in pop-pup window.
[boulch]4.3.4 (2016-01-21)Fix context of ckeditor_plone_config.js
when called by plone.app.form.widgets.wysiwygwidget
when adding a portlet.
[gotcha]4.3.3 (2016-01-20)Fix context of ckeditor_plone_config.js
when called by plone.app.form.widgets.wysiwygwidget
when editing a portlet.
[gotcha]4.3.2 (2016-01-08)Fix default value of image2_alignClasses (plus upgrade step)
[gotcha]Add option to not minify JS to build-ckeditor scripts
[gotcha]Fix build-ckeditor scripts to keep option to not use
image2 plugin
[gotcha]Update ckeditor accordingly
[gotcha]Check validity of image2_alignClasses
[gotcha]4.3.1.1 (2015-01-05)Re-publish egg with generated static resources
[ebrehault]4.3.1 (2015-12-14)Update to CKeditor 4.5.6
[gotcha]Add some robot tests
[spreverde, gotcha]Add defaultTableWidth option to control panel to set the default table width in the table dialog window.4.3.0b2 (2014-06-19)Fix javascript order though GS.
[montypie]4.3.0b1 (2014-06-19)Add image2 plugin and its dependencies.
[gotcha]Add image2_alignClasses and image2_captionedClass setting to setup
image2 plugin.
[gotcha]Updated to CKeditor 4.4.1.
[gotcha]Add removePlugins option to control panel to allow to deactivate plugins.
[gotcha]4.2.0 (2014-06-05)Show actual url in link dialog besides resolveuid.
[gotcha]4.1.1 (2014-03-27)Fix upgrade steps to avoid overwriting custom configuration.
[gotcha]Updated to CKeditor 4.3.4
[gotcha]4.1 (2014-03-27)Expand setup of Advanced Content filter (ACF).
[spereverde, gotcha]4.0.0 (2014-02-05)Updated to CKeditor 4.3.2
[gotcha]Add extraAllowedContent option to setup filter rules.
[gotcha]Backward compatibility of toolbar settings
[gotcha]Moved to CKeditor 4.2.3
[gbastien]3.6.12 (2013-09-05)Make it possible to enable/disable SCAYT by default
[gbastien]3.6.11 (2013-05-30)Stay compatible with IE<9, do not use indexOf in JS
[gbastien]3.6.10 (2013-05-30)Updated ckeditor to 3.6.6.1
[vincentfretin]travis setup / buildout infra
[kiorky]3.6.9 (2013-05-29)Works under Plone 4.3.
[thomasdesvenain]3.6.8 (2012-12-13)Update install and uninstall to change the default_editor site
property instead of the wysiwyg_editor memberdata property.
[maurits]Also check the default_editor site property when determining whether
the member wants to use CKeditor.
[maurits]Changed the way external plugins are registered. It’s better to use the three
parameter variant ofCKEDITOR.plugins.addExternalbecause this will make
the base URL for the plugin resources available within the plugin code asthis.pathcorrectly. Otherwisethis.pathcontains the full URL to the
plugin script itself which consequently breaks loading of related resources
(images, translations, etc).
[dokai]Refactored theck_ruid_to_urltransform to use plone.app.uuid to transform
UIDs to URLs. This avoids using reference_catalog in favor of portal_catalog
and appears to fix issues with Dexterity types not available through the
reference_catalog.
[dokai]Limited string length to be searched under 3000 characters by re.search method.
[taito]3.6.7 (2012-08-20)take care of external stylesheets registered with an absolute URL.
[gotcha]fix plugins (add migration)
[kiorky]refresh translations
[kiorky]translate styles menu
[kiorky]3.6.6 (2012-07-05)Fix default value for images
[kai.hoppert@tomcom.de]Add a duplicate directory for ckeditor sources: it needs a more ambitious
patch but fix a development installation
[kiorky]3.6.5 (2012-07-04)Fix missing directory in 3.6.4 release
[encolpe]3.6.4 (2012-07-03)Fix missing include for rst files in the manifest
[encolpe]Version the latest known working ckeditor commited in browser/ckeditor
[kiorky]3.6.3 (2012-07-03)Don’t show ckeditor if html is not in the allowable content types of the field.
This fixes integration with Products.Poi where the details field of a
PoiIssue allows only text/x-web-intelligent by default.
[vincentfretin]Fixed the finder to honor the “Allow folder creation” option.
[dokai]Added i18n support
[giacomos]Added Italian translation
[giacomos]Fix language configuration according to plone_portal_state.language()
[toutpt]Add French translation
[toutpt]Add z3c.autoinclude targeted to Plone
[toutpt]3.6.2 (2011-12-12)Describe in README how to release to ensureckeditorcode is included in
the egg.
[gotcha]3.6.2b2 (2011-12-12)Nothing changed yet.3.6.2b1 (2011-12-12)use ckeditor 3.6.2
[spereverde]Addajaxsaveplugin to allow asynchronous save.
[gotcha]Use zest.releaser entry point to bundle ckeditor code.
[gotcha]3.6.1 (2011-07-14)Nothing changed yet.3.6.1rc (2011-07-14)use ckeditor 3.6.1
[spereverde]some pep8 and pyflakes
[spereverde]added control panel setting for templates_replaceContent
[spereverde]add control panel setting for registration of custom templates
[gotcha]Plone4.1 support - fix IVocabularyFactory import
[msmith64]3.4.1use ckeditor 3.4.1
[macadames]fix an error in set_media_type
[macadames]fix an error in mediaupload session
[macadames]3.4use ckeditor 3.43.3.1buse ckeditor 3.3.1
[macadames]icon for control panel is now in controlpanel.xml
[macadames]Make control panel (and tests) running without errors with last Plone4 version …
The listTypesForInterface method was broken.
[macadames]Use the new mediaupload attribute in collective.plonefinder
(Force the selection of content-type in jquery.uploadify)
[macadames]Added support for z3c.autoinclude so no zcml slugs will be needed for this package.
[sneridagh]3.2.1bimage sizes selection added (use this new option provided by collective.plonefinder)some fixes for last collective.plonefinder usage.3.2.1ause ckeditor 3.2.1plone 4 compliance :remove iw.resourcetraverser dependencyremove wysiwyg_support in skin (no more useful)control panel improvementsfunctional doctests added or improvedFAQ addedbuildout examples added to help developers using svn productjavascript contextuel config is now packedadded local field widget settings overloadchanged portal_transforms resolveuidall basehref problems fixedmenu styles through control panel finishedtoolbar through control panel finished3.0.2use ckeditor 3.0.23.0Initial releaseCKEditor for Plone : FAQHow to completely remove any trace of ckeditor in Plone ?Use the Plone control panel > Addons > remove the product
In ZMI > portal_properties remove ‘ckeditor_properties’, all your registered
parameters for ckeditor will be destroyed.How to install a new version of CKeditor for Plone ?Always read this FAQ
From one version to another, it could be needed to run a migration
Generic Setup upgrade step for ckeditor_properties sheet.How to use a svn version of collective.ckeditor ?Just take a  look at buildout/buildout.cfg and buildout/sources.cfg in this package.
Checkout the standard plone4 buildout.
Make a diff with standard plone4 buidout to see the parts you need to change.
You need to add the svn adresses in sources.cfg for mr.developper, ‘ckeditor’
in egg and zcml sections, and the ‘ckeditor’ part ….How to completly overload the ckeditor configuration with your own javascript config ?Just create a javascript file called ‘ckeditor_plone_config.js’ in your ZMI
> portal_skins > Custom or in a skin product.