Установка и настройка CKFinder

Опубликовал Максим Баев, 10 января 2015, 19:11

Мне показалась интересной задача настройки файлового браузера CKFinder (в связке с текстовым редактором CKEditor). При устновке с первого раза что-то пошло не так и пришлось немного разобраться. Хотя материала на эту тему достаточно, но русскоязычного топика я не нашел.

Установим модуль

Распаковать все это нужно следующим образом

sites
 |-all
 |  |-modules
 |  |  |-ckeditor     <- это папка модуля ckeditor
 |  |  |  |-ckeditor  <- это папка плагина ckeditor
 |  |  |  |  |-adapters
 |  |  |  |  |...
 |  |  |  |-ckfinder  <- это папка плагина ckfinder
 |  |  |  |  |-_samples
 |  |  |  |  |...
 |  |  |  |...

P.S.: вообще-то есть и другие способы распаковки, но рассмотрим только этот.

Нюансы

После включения модуля CKEditor у вас появится страница настроек (admin/config/content/ckeditor) модуля CKEditor, но CKFinder не заработает. Потому, что нужно:

  1. в файле sites/all/modules/ckeditor/ckfinder/config.php закомментировать функцию CheckAuthentication(). Вот так:

    <?php
    //function CheckAuthentication()
    //{
    //  // WARNING : DO NOT simply return "true". By doing so, you are allowing
    //  // "anyone" to upload and list the files in your server. You must implement
    //  // some kind of session validation here. Even something very simple as...
    //
    //  // return isset($_SESSION['IsAuthorized']) && $_SESSION['IsAuthorized'];
    //
    //  // ... where $_SESSION['IsAuthorized'] is set to "true" as soon as the
    //  // user logs in your system. To be able to use session variables don't
    //  // forget to add session_start() at the top of this file.
    //
    //  return false;
    //}
    
  2. там же нужно найти строку

    <?php
    $baseDir = resolveUrl($baseUrl);
    

    и вставить после неё

    <?php
    require_once '../../../../includes/filemanager.config.php';
    

    P.S.: Путь должен быть именно таким хотя, изначально кажется, что он должен быть ../includes/filemanager.config.php

  3. в вашем settings.php прописать переменную $cookie_domain (сейчас это строка 340). Например:

    <?php
    $cookie_domain = 'http://bithaven.ru';
    

Еще здесь рекомендуют прописать переменную $base_url, но у меня и без неё все заработало.

Все готово, остается сделать 2 шага:

  1. Дать права на использование файлового менеджера CKFinder на странице admin/people/permissions
    drupal_7_enterprise_ckfinder_permission.png
  2. Назначить CKFinder файловым менеджером в настройках CKEditor'а
    drupal_7_os_enable_ckfinder.png

Дополнительные ссылки

Другие посты