2016-06-20 18 views
0

Ich versuche, ckeditor und ckfinder in ein Projekt mit yii2 zu integrieren. Ich habe sowohl ckeditor und ckfinder Ordner in root/vendor platziert und notwendige Anpassungen vorgenommen, ckeditor funktioniert gut, ckfinder zeigt auch das Datei-Browser-Popup mit "Browser-Server" -Taste. Aber wenn ich auf den Browse-Button klicke, öffnet sich das Popup-Fenster für die Dateiauswahl nicht, stattdessen wird der Fehler "Seite nicht gefunden" angezeigt.So integrieren Sie ckfinder mit yii2

Ich habe versucht, CKFinder Schreiben folgende Codezeilen in ckeditor/config.js zu integrieren:

config.filebrowserBrowseUrl = 'hostname/vendor/ckfinder/ckfinder.html'; 
config.filebrowserImageBrowseUrl = 'hostname/vendor/ckfinder/ckfinder.html?type=Images'; 
config.filebrowserFlashBrowseUrl = 'hostname/vendor/ckfinder/ckfinder.html?type=Flash'; 
config.filebrowserUploadUrl = 'hostname/vendor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files'; 
config.filebrowserImageUploadUrl = 'hostname/vendor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; 
config.filebrowserFlashUploadUrl = 'hostname/vendor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'; 

Aber ich keine Lösung gefunden zu haben.

Kann mir bitte jemand helfen, dieses Problem zu beheben?

+1

Ein paar Fragen: Welche Version von CKFinder verwenden Sie? Könnten Sie klären, welcher Browse-Button nicht funktioniert? Ist das eine benutzerdefinierte Schaltfläche auf der Seite, die den Dateibrowser startet? Bitte überprüfen Sie auch, ob CKFinder-Beispiele korrekt funktionieren. – zaak

+1

Vielleicht diese Hilfe https://github.com/2amigos/yii2-ckeditor-widget – Vitaly

+0

Die Schaltfläche "Server durchsuchen" befindet sich im Popup zum Hinzufügen von Bildern/Dateien zum Inhalt. Das Popup wird geöffnet, wenn auf das Bildsymbol aus dem Editor geklickt wird. Ich habe gerade den Ordner ckeditor und ckfinder von 'root/vendor' nach 'root/web' verschoben und andere Einstellungen wie zuvor vorgenommen und das Problem ist jetzt behoben. Es scheint, dass in yii2 keine 3rd-Party-Dateien direkt außerhalb des 'web' -Verzeichnisses zugänglich sind, es sei denn, sie sind als yii-Erweiterung formatiert. –

Antwort

0

war ich Gewohnheit CKEditorAsset in yii2 wie folgt erstellen:

namespace vendor\yiif\ckeditor; 


use iutbay\yii2kcfinder\KCFinder; 
use iutbay\yii2kcfinder\KCFinderAsset; 

class CKEditorAsset extends \dosamigos\ckeditor\CKEditorAsset 
{ 
    public $depends = [ 
     'yii\web\YiiAsset', 
     'yii\web\JqueryAsset', 
     //'iutbay\yii2kcfinder\KCFinderAsset' 
    ]; 

    public function init() 
    { 
     $register = KCFinderAsset::register(\Yii::$app->view); 
     $kcfinderUrl = $register->baseUrl; 

     \Yii::$app->view->registerJs(<<<js 
      CKEDITOR.config.filebrowserBrowseUrl="$kcfinderUrl/browse.php?opener=ckeditor&type=files"; 
      CKEDITOR.config.filebrowserUploadUrl="$kcfinderUrl/upload.php?opener=ckeditor&type=files"; 
js 
    ); 



     // kcfinder options 
     // http://kcfinder.sunhater.com/install#dynamic 
     $kcfOptions = array_merge(KCFinder::$kcfDefaultOptions, [ 
      'uploadURL' => \Yii::getAlias('@web/uploads/modules/ckfinder'), 
      'uploadDir'=>\Yii::getAlias('@app/web/uploads/modules/ckfinder'), 
      'access' => [ 
       'files' => [ 
        'upload' => true, 
        'delete' => false, 
        'copy' => false, 
        'move' => false, 
        'rename' => false, 
       ], 
       'dirs' => [ 
        'create' => true, 
        'delete' => false, 
        'rename' => false, 
       ], 
      ], 
     ]); 

// Set kcfinder session options 
     \Yii::$app->session->set('KCFINDER', $kcfOptions); 
     parent::init(); 
    } 
}