Файловый менеджер - Редактировать - /home/clickysoft/public_html/charliapp-v2.clickysoft.net/app/Http/Controllers/Admin/ChatController.php
Назад
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroyChatRequest; use App\Http\Requests\StoreChatRequest; use App\Http\Requests\UpdateChatRequest; use App\Models\Chat; use App\Models\User; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class ChatController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('chat_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Chat::with(['from', 'to'])->select(sprintf('%s.*', (new Chat())->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'chat_show'; $editGate = 'chat_edit'; $deleteGate = 'chat_delete'; $crudRoutePart = 'chats'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('from_name', function ($row) { return $row->from ? $row->from->name : ''; }); $table->addColumn('to_name', function ($row) { return $row->to ? $row->to->name : ''; }); $table->editColumn('message', function ($row) { return $row->message ? $row->message : ''; }); $table->editColumn('attachments', function ($row) { if (!$row->attachments) { return ''; } $links = []; foreach ($row->attachments as $media) { $links[] = '<a href="' . $media->getUrl() . '" target="_blank">' . trans('global.downloadFile') . '</a>'; } return implode(', ', $links); }); $table->editColumn('feature_type', function ($row) { return $row->feature_type ? $row->feature_type : ''; }); $table->editColumn('feature', function ($row) { return $row->feature ? Chat::FEATURE_RADIO[$row->feature] : ''; }); $table->rawColumns(['actions', 'placeholder', 'from', 'to', 'attachments']); return $table->make(true); } $users = User::get(); return view('admin.chats.index', compact('users')); } public function create() { abort_if(Gate::denies('chat_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $froms = User::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $tos = User::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.chats.create', compact('froms', 'tos')); } public function store(StoreChatRequest $request) { $chat = Chat::create($request->all()); foreach ($request->input('attachments', []) as $file) { $chat->addMedia(storage_path('tmp/uploads/' . basename($file)))->toMediaCollection('attachments'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $chat->id]); } return redirect()->route('admin.chats.index'); } public function edit(Chat $chat) { abort_if(Gate::denies('chat_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $froms = User::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $tos = User::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $chat->load('from', 'to'); return view('admin.chats.edit', compact('chat', 'froms', 'tos')); } public function update(UpdateChatRequest $request, Chat $chat) { $chat->update($request->all()); if (count($chat->attachments) > 0) { foreach ($chat->attachments as $media) { if (!in_array($media->file_name, $request->input('attachments', []))) { $media->delete(); } } } $media = $chat->attachments->pluck('file_name')->toArray(); foreach ($request->input('attachments', []) as $file) { if (count($media) === 0 || !in_array($file, $media)) { $chat->addMedia(storage_path('tmp/uploads/' . basename($file)))->toMediaCollection('attachments'); } } return redirect()->route('admin.chats.index'); } public function show(Chat $chat) { abort_if(Gate::denies('chat_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $chat->load('from', 'to'); return view('admin.chats.show', compact('chat')); } public function destroy(Chat $chat) { abort_if(Gate::denies('chat_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $chat->delete(); return back(); } public function massDestroy(MassDestroyChatRequest $request) { Chat::whereIn('id', request('ids'))->delete(); return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('chat_create') && Gate::denies('chat_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Chat(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка