Рубрики
Uncategorized

laravel5.1 — Интеграция файлового менеджера и редактора CK в laravel

Автор оригинала: David Wong.

Файловый менеджер Китайское название-файловый менеджер, также называемый файловым браузером. Он предоставляет нам визуальный интерфейс для управления файлами и папками. используйте Файловый менеджер , мы можем просматривать, и, печатать, изменять (свойства файла), переименовывать, искать и так далее. Редактор Я уверен, что друзья очень хорошо знакомы с этим. Это богатый текстовый редактор, поэтому я не буду его повторять. Теперь давайте продемонстрируем, как Файловый менеджер и Редактор Интегрироваться в laravel .

Требуется файловый менеджер

возьмите файловый менеджер Добавьте в composer.json Мы используем bestmomo/файловый менеджер

require : {
        "laravel/framework": "5.2.*",
        "bestmomo/filemanager": "1.1.*"
    }

Обновление Композитора

$ composer update

Когда обновление будет завершено, поставщик услуг Добавит в config/app. php в

 /**
 * App/Config/App.php
 */

Bestmomo\Filemanager\FilemanagerServiceProvider::class,

Выпускать

$ php artisan vendor:publish --provider="Bestmomo\Filemanager\FilemanagerServiceProvider"
/**
* App/Http/Models/User.php
*/

    /**
    * Check media all access
    *
    * @return bool
    */
    public function accessMediasAll(){
    
        return $this->role->slug == 'admin';
    }

    /**
     * Check media access one folder
     *
     * @return bool
     */
    public function accessMediasFolder()
    {
        return $this->role->slug != 'user';
    }

После настройки модели необходимо добавить маршруты и контроллеры

Маршрут

// route.php

Route::get('medias', ['as'=>'medias', 'uses'=>'Admin\[email protected]']);

файл конфигурации

Новый профиль medias.php Для настройки импортированного файлового менеджера Каталога

// Config/medias.php

 'filemanager/index.html',
    'url-files' =>'/public/filemanager/userfiles/'

];

Метод

В контроллере AdminController Мы добавляем файловый менеджер Метод

    /**
    * Show the media panel
    *
    * @return Response
    */
    public function filemanager(){
        $url = config('medias.url') . '?langCode=' . config('app.locale');

        return view('backend.filemanager')->with(compact('url'));
    }

В контроллере || AdminController || Мы добавляем || файловый менеджер || Метод

@extends('backend.layout.master')

@section('head')

    

@stop

@section('main')

    @include('backend.partials.entete', ['heading' => trans('backend/medias.dashboard'), 'operation'=>'', 'symbol' => 'file-image-o', 'superior' => trans('backend/medias.medias')])

    
@stop

Вот он, весь Файловый менеджер Он интегрирован в laravel , Но в реальной операции я сообщил о небольшой ошибке: call_user_func_array() ожидает, что параметр 1 будет допустимым обратным вызовом, класс "Kbwebs\MultiAuth\Guard" не имеет метода "accessMediasAll" предполагается, что "Kbwebs\MultiAuth\Guard" Нет, accessMediasAll Метод. Потому что я здесь laravel5.1 Функция многопользовательской аутентификации выполняется в/| Плагине//’Паутина\Мультиавтор\Защита’ | поэтому для получения Пользователя Добавьте его в модель пользователь() Например Auth::пользователь->пользователь(), аутентификация()->пользователь()->пользователь()

растворитель:

Узнайте доступ ко всем носителям и доступ к папке с носителями Документы /filemanager/connectors/php/default.config.php


 *  @copyright  Authors
 */

// Laravel init
require getcwd() . '/../../../../bootstrap/autoload.php';
$app = require_once getcwd() . '/../../../../bootstrap/app.php';

$kernel = $app->make('Illuminate\Contracts\Http\Kernel');

$response = $kernel->handle(
  $request = Illuminate\Http\Request::capture()
);

$id = $app['encrypter']->decrypt($_COOKIE[$app['config']['session.cookie']]);
$app['session']->driver()->setId($id);
$app['session']->driver()->start();

// Folder path
$folderPath = config('filemanager.folder_path');   

// Check if user in authentified
if(!$app['auth']->check()) 
{
  $laravelAuth = false;
} 
else 
{ //print_r($app['auth']->user()->user()->accessMediasAll());exit;
  // Check if user has all access
  if($app['auth']->user()->accessMediasAll())
  {
    $laravelAuth = true; 
  } 
  elseif(method_exists($app['auth']->user(), 'accessMediasFolder'))
  {  
    // Check if user has access to one folder
    if($app['auth']->user()->accessMediasFolder())
    { 
      // Folder name with user id
      $folderPath .= 'user' . $app['auth']->id();
      $laravelAuth = true;  
    } 
    else
    {
      $laravelAuth = false;
    }    
  }
  else
  {
    $laravelAuth = false;
  } 
}

Отдельно $приложение['auth']->пользователь()->доступ ко всем носителям () | $приложение[‘auth’]->пользователь () $приложение['auth']->пользователь()->доступ к папке мультимедиа () $приложение['auth']->идентификатор () Изменение на $приложение[‘auth’]->пользователь()->пользователь()->Доступ к средам () $приложение['auth']->пользователь()->пользователь () $app['auth']->пользователь()->пользователь()->Папка доступа () $app['auth']->пользователь()->идентификатор()

После обновления приведенного выше кода вы можете увидеть интерфейс управления файлами файлового менеджера

скачать CKEditor И распакуйте архив в общедоступный После папки импортируйте на страницу ckeditor/ckeditor.js



CKEDITOR.replace( 'summary');   

config['height'] = 400;        

CKEDITOR.replace( 'content');

Если мы хотим получить ckeditor из Файлового менеджера Для импорта файла, вам необходимо изменить его filebrowserBrowseUrl опция

    var config = {
    filebrowserBrowseUrl : '/filemanager/index.html'
    }
    
    CKEDITOR.replace( 'summary', config);

    config['height'] = 400;        

    CKEDITOR.replace( 'content', config);

ckeditor Загрузите рендеринги изображений