この結果を得るには、フロントエンド(JavaScript)とコネクタ(PHP)の両方に小さなプラグインを作成する必要があります。ブートストラップコードをプラグイン
PHP:
namespace CKSource\CKFinder\Plugin\SanitizeFolderName;
use CKSource\CKFinder\CKFinder;
use CKSource\CKFinder\Event\CKFinderEvent;
use CKSource\CKFinder\Event\RenameFolderEvent;
use CKSource\CKFinder\Plugin\PluginInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class SanitizeFolderName implements PluginInterface, EventSubscriberInterface
{
protected $app;
public function setContainer(CKFinder $app)
{
$this->app = $app;
}
public function getDefaultConfig()
{
return [];
}
public function onFolderRename(RenameFolderEvent $event)
{
$event->setNewFolderName(str_replace(' ', '_', $event->getNewFolderName()));
}
public static function getSubscribedEvents()
{
return [
CKFinderEvent::RENAME_FOLDER => 'onFolderRename'
];
}
}
のJavaScriptコード:あなたのコードはCREATEFOLDERコマンドのために働いたが、私はRenameFolderしようとしたとき、私はフォルダの名前を変更するたびに、それは誤りと、画面の空白を表示し、
CKFinder.start({
onInit: function(finder) {
finder.on('command:before:RenameFolder', function() {
finder.once('command:before:GetFiles', function(evt) {
var folder = evt.data.folder;
folder.set('name', folder.get('name').replace(/ /g, '_'));
});
});
}
});
私はフロントエンドでckfinderを開くたびにエラーを表示し続けますが、フォルダはファイル構造上で名前が変更されます。ログには、WorkingFolderが見つからないと表示されます。 –