2019-02-07 18:58:47 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
|
|
2025-12-20 07:39:10 +00:00
|
|
|
use App\DiscoverCategory;
|
|
|
|
|
use App\DiscoverCategoryHashtag;
|
|
|
|
|
use App\Hashtag;
|
|
|
|
|
use App\Media;
|
2019-02-07 18:58:47 +00:00
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
|
|
|
|
|
trait AdminDiscoverController
|
|
|
|
|
{
|
2025-12-20 07:39:10 +00:00
|
|
|
public function discoverHome()
|
|
|
|
|
{
|
|
|
|
|
$categories = DiscoverCategory::orderByDesc('id')->paginate(10);
|
|
|
|
|
|
|
|
|
|
return view('admin.discover.home', compact('categories'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function discoverCreateCategory()
|
|
|
|
|
{
|
|
|
|
|
return view('admin.discover.create-category');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function discoverCreateCategoryStore(Request $request)
|
|
|
|
|
{
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'name' => 'required|string|min:1',
|
|
|
|
|
'active' => 'required|boolean',
|
|
|
|
|
'media' => 'nullable|integer|min:1',
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$name = $request->input('name');
|
|
|
|
|
$slug = str_slug($name);
|
|
|
|
|
$active = $request->input('active');
|
|
|
|
|
$media = (int) $request->input('media');
|
|
|
|
|
|
|
|
|
|
$media = Media::findOrFail($media);
|
|
|
|
|
|
|
|
|
|
$category = DiscoverCategory::firstOrNew(['slug' => $slug]);
|
|
|
|
|
$category->name = $name;
|
|
|
|
|
$category->active = $active;
|
|
|
|
|
$category->media_id = $media->id;
|
|
|
|
|
$category->save();
|
|
|
|
|
|
|
|
|
|
return $category;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function discoverCategoryEdit(Request $request, $id)
|
|
|
|
|
{
|
|
|
|
|
$category = DiscoverCategory::findOrFail($id);
|
|
|
|
|
|
|
|
|
|
return view('admin.discover.show', compact('category'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function discoverCategoryUpdate(Request $request, $id)
|
|
|
|
|
{
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'name' => 'required|string|min:1',
|
|
|
|
|
'active' => 'required|boolean',
|
|
|
|
|
'media' => 'nullable|integer|min:1',
|
|
|
|
|
'hashtags' => 'nullable|string',
|
|
|
|
|
]);
|
|
|
|
|
$name = $request->input('name');
|
|
|
|
|
$slug = str_slug($name);
|
|
|
|
|
$active = $request->input('active');
|
|
|
|
|
$media = (int) $request->input('media');
|
|
|
|
|
$media = Media::findOrFail($media);
|
|
|
|
|
|
|
|
|
|
$category = DiscoverCategory::findOrFail($id);
|
|
|
|
|
$category->name = $name;
|
|
|
|
|
$category->active = $active;
|
|
|
|
|
$category->media_id = $media->id;
|
|
|
|
|
$category->save();
|
|
|
|
|
|
|
|
|
|
return $category;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function discoveryCategoryTagStore(Request $request)
|
|
|
|
|
{
|
|
|
|
|
$this->validate($request, [
|
|
|
|
|
'category_id' => 'required|integer|min:1',
|
|
|
|
|
'hashtag' => 'required|string',
|
|
|
|
|
'action' => 'required|string|min:1|max:6',
|
|
|
|
|
]);
|
|
|
|
|
$category_id = $request->input('category_id');
|
|
|
|
|
$category = DiscoverCategory::findOrFail($category_id);
|
|
|
|
|
$hashtag = Hashtag::whereName($request->input('hashtag'))->firstOrFail();
|
|
|
|
|
|
|
|
|
|
$tag = DiscoverCategoryHashtag::firstOrCreate([
|
|
|
|
|
'hashtag_id' => $hashtag->id,
|
|
|
|
|
'discover_category_id' => $category->id,
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if ($request->input('action') == 'delete') {
|
|
|
|
|
$tag->delete();
|
|
|
|
|
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $tag;
|
|
|
|
|
}
|
|
|
|
|
}
|