--- a/ckeditor.module 2011-10-28 00:07:21.000000000 -0700 +++ b/ckeditor.module 2011-11-01 10:46:22.000000000 -0700 @@ -94,7 +94,8 @@ function ckeditor_user($type, $edit, &$u */ function ckeditor_perm() { $arr = array('administer ckeditor', 'access ckeditor'); - if (file_exists(drupal_get_path('module', 'ckeditor') . "/ckfinder")) { + $drupal_lib_path = dirname( ckeditor_path(true) ); + if (file_exists($drupal_lib_path . "/ckfinder")) { $arr[] = 'allow CKFinder file uploads'; } return $arr; @@ -780,15 +781,19 @@ function ckeditor_process_textarea($elem $win_size = split('x', $popup_win_size); } + // The CKEditor and CKFinder libraries are preferably installed in sibling directories + // we use ckeditor_path() to determine the parent directory of CKEditor library + $drupal_lib_path = dirname( ckeditor_path() ); + switch ($filebrowser) { case 'ckfinder': if (user_access('allow CKFinder file uploads')) { - $settings[$textarea_id]['filebrowserBrowseUrl'] = $module_full_path .'/ckfinder/ckfinder.html'; - $settings[$textarea_id]['filebrowserImageBrowseUrl'] = $module_full_path .'/ckfinder/ckfinder.html?Type=Images'; - $settings[$textarea_id]['filebrowserFlashBrowseUrl'] = $module_full_path .'/ckfinder/ckfinder.html?Type=Flash'; - $settings[$textarea_id]['filebrowserUploadUrl'] = $module_full_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files'; - $settings[$textarea_id]['filebrowserImageUploadUrl'] = $module_full_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; - $settings[$textarea_id]['filebrowserFlashUploadUrl'] = $module_full_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'; + $settings[$textarea_id]['filebrowserBrowseUrl'] = $drupal_lib_path .'/ckfinder/ckfinder.html'; + $settings[$textarea_id]['filebrowserImageBrowseUrl'] = $drupal_lib_path .'/ckfinder/ckfinder.html?Type=Images'; + $settings[$textarea_id]['filebrowserFlashBrowseUrl'] = $drupal_lib_path .'/ckfinder/ckfinder.html?Type=Flash'; + $settings[$textarea_id]['filebrowserUploadUrl'] = $drupal_lib_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files'; + $settings[$textarea_id]['filebrowserImageUploadUrl'] = $drupal_lib_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; + $settings[$textarea_id]['filebrowserFlashUploadUrl'] = $drupal_lib_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'; } break; case 'imce': @@ -820,8 +825,8 @@ function ckeditor_process_textarea($elem switch ($filebrowser_image) { case 'ckfinder': if (user_access('allow CKFinder file uploads')) { - $settings[$textarea_id]['filebrowserImageBrowseUrl'] = $module_full_path .'/ckfinder/ckfinder.html?Type=Images'; - $settings[$textarea_id]['filebrowserImageUploadUrl'] = $module_full_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; + $settings[$textarea_id]['filebrowserImageBrowseUrl'] = $drupal_lib_path .'/ckfinder/ckfinder.html?Type=Images'; + $settings[$textarea_id]['filebrowserImageUploadUrl'] = $drupal_lib_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; } break; case 'imce': @@ -854,8 +859,8 @@ function ckeditor_process_textarea($elem switch ($filebrowser_flash) { case 'ckfinder': if (user_access('allow CKFinder file uploads')) { - $settings[$textarea_id]['filebrowserFlashBrowseUrl'] = $module_full_path .'/ckfinder/ckfinder.html?Type=Images'; - $settings[$textarea_id]['filebrowserFlashUploadUrl'] = $module_full_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; + $settings[$textarea_id]['filebrowserFlashBrowseUrl'] = $drupal_lib_path .'/ckfinder/ckfinder.html?Type=Images'; + $settings[$textarea_id]['filebrowserFlashUploadUrl'] = $drupal_lib_path .'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; } break; case 'imce': @@ -1347,4 +1352,4 @@ function ckeditor_get_settings() if (empty($_SESSION['cke_get_settings'][$_POST['id']])) echo json_encode(array()); echo json_encode($_SESSION['cke_get_settings'][$_POST['id']]); die(); -} \ No newline at end of file +}