Problem/Motivation

This module now ships with a custom skin path setting. But that setting's not optional, at least with local versions of the editor library.

When updating from 7.x-1.19 to a newer version (1.20 or 1.21), the setting is empty, so no matter what the skin is set to on admin/config/content/ckeditor/editg, the skin won't load anymore, until the path is explicitly set ($form['ckeditor_advanced_settings']['skins_path']).

This is a bit puzzling for admins.

Steps to reproduce

Use a local CKEditor version (in sites/all/libraries)
Update from 7.x-1.19 to a newer version

The skin is where it was before, it ships with the library beneath sites/all/libraries/ckeditor/skins/moono
Moono is also the setting on admin/config/content/ckeditor/editg
It's the latest version of CKEditor (4.16.2).

Proposed resolution

Per #3230470-9: After updating to 7.x-1.20+ skin path setting is required, a proposed solution might entail:
1) Populate default value if field is blank to match library location
2) Update hook for upgrading from 7.x-1.19 or older
3) Document breaking changes in project page / release notes for version
4) Test new changes against multiple configurations / don't include breaking changes in regular releases.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

indigoxela created an issue. See original summary.

indigoxela’s picture

indigoxela’s picture

Issue summary: View changes
Webbeh’s picture

I suppose this might be caused by https://git.drupalcode.org/project/ckeditor/-/commit/92b3637c20d7400142a... and #2671806: Add custom skin support.

Should this be an update_hook based on what the CKEditor plugin library setting is to determine and set the skin location if it is null? Or, should the module provide a workable default value (that is derived from said library setting)?

indigoxela’s picture

Should this be an update_hook ... Or, should the module provide a workable default value

Whatever's feasible. ;-)

As there's a user interface for that value, maybe an update hook makes sense?
But people are probably happy with anything, that works.

indigoxela’s picture

Issue summary: View changes

Seems like I forgot the most obvious: describe what to do when the editor initializes, but looks as messed as in my screenshot:

  1. Go to admin/config/content/ckeditor/editg (the global setting)
  2. Set the proper value for Path to the CKEditor skins directory and save

In my case it's %l/ckeditor/skins, as my editor library is locally installed under /sites/all/libraries

indigoxela’s picture

Issue summary: View changes
indigoxela’s picture

Some more details:

Out of curiosity I created a new CKEditor4 build (using my build-config.js), but switched the theme in that build to moono-lisa.

After flushing caches, the editor worked with module version 7.x-1.21. Without an additional theme path setting.

So the main glitch is the assumption that local CKEditor libraries always ship with the default skin. The actual skin setting on /admin/config/content/ckeditor/editg gets ignored and actually overwritten. Which IMO is not as intended.

omarsidd’s picture

Confirming this still exists with 7.x-1.22 and ckeditor library 4.17.1. Thanks to OP for reporting.

Adding a new required config field and not populating it (or putting it obviously in the docs) isn't a great idea, much less for a module this popular. Suggest:
1) Populate default value if field is blank to match library location
2) Update hook for upgrading from 7.x-1.19 or older
3) Document breaking changes in project page / release notes for version
4) Test new changes against multiple configurations / don't include breaking changes in regular releases.

WebMetod’s picture

Hello. I cannot get this module to work since the release of ckeditor 7.x-1.20, and for this reason I still keep 7.x-1.19 on all my projects. I created dozens of sites with the ckeditor module and never had to configure anything in the global profile - it just worked!
Where can I read what exactly has changed since 7.x-1.19 and how to configure the latest versions?

Webbeh’s picture

Issue summary: View changes

Comment #6 should help describe how to implement this.

Per #10, can you describe why 1.20 isn't working. What's not appearing as you would expect? Does the solution outlined in #6 fix it for you?

indigoxela’s picture

I cannot get this module to work since the release of ckeditor 7.x-1.20

Sorry to hear that. If you're struggling with the problem (using a non-default skin from a former build):

In the Global settings on /admin/config/content/ckeditor, section "CKEditor skins" set the path to %l/ckeditor/skins. That should do the trick. If not, inspect your browser console for additional nagging.

Alternatively switch the skin your build (CKEditor library) uses to Moono-lisa - then no settings need to get updated:

Grab the file build-config.js from /sites/all/libraries/ckeditor/ and uploaded it here: https://ckeditor.com/cke4/builder (hit button "Upload build-config.js")
Switch the skin to Moono-lisa, leave everything else untouched, download that build and replace the library on your sites.

Why build-config.js? Maybe you didn't, but I did some customized builds in the past and don't remember on which sites. So I'm using that file to get exactly the same plugins/languages again with a newer CKEditor (library) release.

Either of these approaches should work.

izmeez’s picture

I think the problem is with the change to the skin path. As I recall if you simply go to the ckeditor config admin/config/content/ckeditor and select the profiles and save it will revert to the default skin and should work. You can then look at changes needed for a different skin. It is interesting to note that older Drupal 6 sites include a warning with a link to the profiles and each of them may need to be opened and saved.

keha3912’s picture

Adding %l/ckeditor/skins in /admin/config/content/ckeditor/editg really me helpfull )
After that all my skins are correctly read from sites/all/libraries/ckeditor/skins

izmeez’s picture

There are actually several problems related to the skins.

First, on the global profile, there is the lack of a path to the skins. While the path to the skins is empty the select box will incorrectly show previous skins and the new default as available when they really are not.

ckeditor global profile edit

ckeditor skin selection

ckeditor skins path default empty

ckeditor skins path set

Once the skins path is set and saved , the selections will accurately show the skins that are available.

Another, possibly related, issue that surprised me was that downloading new skins kama-4.17.1 and moono-4.17.1 and placing them in the skins directory then enabling them failed to load icon images as below:

ckeditor kama-4.17.1 skin fails to load icons

Patricia_W’s picture

Possibly I am not understanding this discussion but I was able to fix it (to my satisfaction) by downloading the moono skin to the skins directory.

nagy.balint’s picture

I can confirm the issue, setting the path like on #12 worked to fix it.

v.kydyba’s picture

A #12 solution works for me as well.