CKFINDER 3.0: ссылка на файлы PDF при двойном щелчке по ним

Я использую ckfinder 3.0 на одном из своих сайтов, в автономном режиме я загрузил несколько изображений и PDF-файлов.

Когда я дважды щелкаю изображения, они отображаются во всплывающем окне. Когда я дважды щелкаю файлы PDF, значок PDF отображается во всплывающем окне, но мне нужно щелкнуть правой кнопкой мыши значок PDF, а затем выбрать «загрузить» в контекстном меню, чтобы загрузить файл PDF и открыть его. Или я бы хотел, чтобы файлы такого типа (которые можно читать прямо в моем браузере) открывались на новой вкладке моего браузера вместо отображения значка PDF в всплывающем окне!

Я пытался разработать плагин для этого, но я не знаю, где я могу отключить «отображение всплывающих окон», когда я дважды щелкаю свой PDF-файл в CKFinder.

CKFinder.define( [ 'jquery' ], function( jQuery ) {
'use strict';

return {
    init: function( finder ) {

        finder.on( 'file:dblclick', function( evt ) {
            finder.request( 'files:getSelected' ).forEach( function( file ) {
                 finder.request( 'file:getUrl', { file: file } )
                     .then( function( fileUrl ) {
                        console.log( 'The file: ' + file.get( 'name' ) + ' has url: ' + fileUrl );
                        if(fileUrl.match(/.pdf/gi))
                        {    
                            window.open(fileUrl);
                        }
                } );
         } );              

    } );

}
};
});

Кто-нибудь знает, как отключить эту функцию в CKFinder?

Спасибо за вашу помощь !


person pibrom    schedule 05.10.2015    source источник


Ответы (1)


вы можете отключить предварительный просмотр файла (галерею), отменив событие:

finder.on( 'file:dblclick', function( evt ) {
    var file = evt.data.file;

    if ( file.getExtension().toLowerCase() === 'pdf' ) {
        // Cancel the event so the default handler won't be called
        evt.cancel();

        // Do whatever you want with file
        alert( file.getUrl() );
    }
}, null, null, 5 );

В предстоящей версии 3.1 будет предварительный просмотр файла PDF. Вы можете создать аналогичный плагин, прослушав file:preview событие и изменить шаблон, чтобы он отображал iframe с PDF:

finder.on( 'file:preview', function( evt ) {
    // Check if file extension is supported your plugin

    if ( evt.data.extension === 'pdf' ) {
        // Stop event propagation so no other listener is fired
        evt.stop();
        // Add data for template
        evt.data.templateData = {
            url : evt.data.url
        };

        // Add template for file preview rendering
        evt.data.template = '<iframe src="{{= it.url}}"></iframe>';
    }
} );

Приведенный выше пример не будет работать на удаленных серверах, таких как Dropbox или Amazon, из-за проблем с получением прямого URL. Однако версия 3.1 будет поддерживать команду Proxy, которая позволит загружать такие файлы.

person jodator    schedule 06.10.2015