Drupal Edit is a module that allows inline editing of websites. It has optional support for the CKeditor module.

Ckeditor module has a PHP function, and when Drupal Edit is enabled, it checks to see if the CKeditor module is active and the runs the function.

Unfortunately the WYSIWYG CKEditor module uses the same namespace as CKEditor. As a result, it triggers the function (which isn't in the edit module) and so causes a WSOD on the site.

Can the Edit module be updated to double check that the correct module is enabled, or replace this automatic feature with a checkbox (with warning in the help text about this issue).

Comments

big_smile’s picture

Issue summary: View changes
davidneedham’s picture

Project: CKEditor for WYSIWYG Module » Edit
Component: Miscellaneous » Code
Category: Support request » Bug report

Reassigning to the Edit module. Seems like something they should check for rather than asking wysiwyg_ckeditor to change it's name.

davidneedham’s picture

Title: Namespace causes conflicts with Edit module » Namespace causes conflicts with WYSIWYG CKEditor module
Issue summary: View changes

Forgot to update the title/description to be appropriate for this issue assignment.

Wim Leers’s picture

Project: Edit » CKEditor for WYSIWYG Module

From the wysiwyg_ckeditor project page:

Incompatibility notice

Because this project claims the "ckeditor.module" namespace, it cannot be installed at the same time as the stand-alone CKEditor module in your modules directory. Even if that module is not enabled, the presence of it will confuse Drupal. Be sure to first disable the module, then uninstall it through the Drupal interface, and finally remove any copy of it from your Drupal installation before attempting to use this module. The opposite also applies if you are moving from this module to the stand-alone CKEditor module.

I don't see how Quick Edit (Edit just got renamed to Quick Edit) is responsible for this hackery?

It's also not at all clear which "function" is being referred to. I suspect it's these:

    if (module_exists('ckeditor')) {
      $requirements['quickedit_libraries_ckeditor'] = array(
        'title' => t('Quick Edit: CKEditor library'),
        'value' => t('Exists, compatible and correct location'),
        'severity' => REQUIREMENT_OK,
      );

      $ckeditor_version = _ckeditor_requirements_getinstalledversion();
      if (version_compare($ckeditor_version, '4.2.0') == -1) {

Specifically, the module_exists() call and _ckeditor_requirements_getinstalledversion(). How am I even supposed to change this? How am I supposed to know that module_exists('ckeditor') returning TRUE is in fact a lie, because it's not the one I intended?

This is why we have namespaces in the first place, to avoid these kinds of problems.