Файловый менеджер - Редактировать - /home/clickysoft/public_html/travel-guru.clickysoft.net/app/Repositories/CategoryRepository.php
Назад
<?php namespace App\Repositories; use App\Interfaces\CategoryRepositoryInterface; use App\Models\Category; use Yajra\DataTables\Facades\DataTables; use Illuminate\Support\Str; class CategoryRepository implements CategoryRepositoryInterface { public function getAllCategories() { return Category::where('id', 1)->get(); } public function getCategory($id) { return Category::findOrFail($id); } public function getDetailBySlug($slug) { return Category::where('slug', $slug) ->with(['users' => function ($query) { $query->withAvg('userReviews', 'rating') ->where('is_active', true) ->whereNotNull('email_verified_at') ->orderByDesc('user_reviews_avg_rating'); }]) ->firstOrFail(); } public function create($req) { $metaKeywordsJson = $req->input('meta_keywords'); $metaKeywordsArray = json_decode($metaKeywordsJson, true); $metaKeywords = []; if (is_array($metaKeywordsArray)) { foreach ($metaKeywordsArray as $item) { if (isset($item['value'])) { $metaKeywords[] = $item['value']; } } } $metaKeywordsString = implode(', ', $metaKeywords); $req->merge(['meta_keywords' => $metaKeywordsString]); $seoData = []; if ($req->has('seo_name')) { foreach ($req->input('seo_name') as $key => $type) { $name = $req->input('seo_name')[$key] ?? ''; $value = $req->input('seo_value')[$key] ?? ''; $seoData[] = [ 'seo_type' => $type, 'seo_name' => $name, 'seo_value' => $value, ]; } $seoData = json_encode($seoData); $req->merge(['seo' => $seoData]); } $category = Category::create($req->all()); if ($req->hasFile('featured_image')) { $category->addMedia($req->file('featured_image')) ->toMediaCollection('featured_image'); } return $category; } public function update($id, $req) { $category = Category::where('id', $id)->first(); if (!empty($category)) { $metaKeywordsJson = $req->input('meta_keywords'); $metaKeywordsArray = json_decode($metaKeywordsJson, true); $metaKeywords = []; if (is_array($metaKeywordsArray)) { foreach ($metaKeywordsArray as $item) { if (isset($item['value'])) { $metaKeywords[] = $item['value']; } } } $metaKeywordsString = implode(', ', $metaKeywords); $req->merge(['meta_keywords' => $metaKeywordsString]); $seoData = []; if ($req->has('seo_name')) { foreach ($req->input('seo_name') as $key => $type) { $name = $req->input('seo_name')[$key] ?? ''; $value = $req->input('seo_value')[$key] ?? ''; $seoData[] = [ 'seo_type' => $type, 'seo_name' => $name, 'seo_value' => $value, ]; } $seoData = json_encode($seoData); $req->merge(['seo' => $seoData]); } $category->update($req->all()); if ($req->hasFile('featured_image')) { $category->clearMediaCollection('featured_image'); $category->addMedia($req->file('featured_image')) ->toMediaCollection('featured_image'); } return redirect()->route('categories')->with('success_msg', 'Category successfully updated.'); } return redirect()->back()->withInput()->with('error_msg', 'Category not found.'); } public function getDataTable() { $query = Category::query(); return Datatables::of($query) ->filter(function ($instance) { $search = request('search')['value']; if (!empty($search)) { $instance->where(function ($w) use ($search) { $w->orWhere('title', 'LIKE', "%$search%") ->orWhere('short_description', 'LIKE', "%$search%"); }); } }) ->editColumn('short_description', function ($obj) { return Str::limit($obj->short_description, 50, '...'); }) ->editColumn('status', function ($obj) { $isChecked = ""; if ($obj->status) { $isChecked = "checked"; } return '<label class="switch switch-success"> <input type="checkbox" class="switch-input" ' . $isChecked . ' onclick="changeStatus(`' . route('category.change.status', $obj->id) . '`)" /> <span class="switch-toggle-slider"> <span class="switch-on"> <i class="bx bx-check"></i> </span> <span class="switch-off"> <i class="bx bx-x"></i> </span> </span> </label>'; }) ->addColumn('action', function ($obj) { $buttons = '<div class="btn-group"> <a class="btn btn-success btn-sm redirect-btn" href="' . route('category.update', $obj->id) . '">Edit</a> </div>'; return $buttons; }) ->rawColumns(['status','short_description', 'action']) ->make(true); } public function changeStatus($categoryId) { $msg = 'Something went wrong.'; $code = 400; $category = $this->getCategory($categoryId); if (!empty($category)) { $category->update([ 'status' => !$category->status ]); $msg = "Category status successfully changed."; $code = 200; } return response()->json(['msg' => $msg], $code); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка