orderBy('id', 'DESC')->get(); return view('blog.index', compact('blogs')); } public function create() { $blog_category = BlogCategory::orderBy('name')->get(); return view('blog.create', compact('blog_category')); } public function store(Request $request) { $category_type = $request->get('category_type'); $media = new Media(); $blog = new Blog(); $blog->tags = json_encode(explode(',', $request->get('tags'))); $blog->unit_bisnis = $request->get('unit_bisnis'); $blog->content = $request->get('content'); $blog->title = $request->get('title'); $blog->user_id = Auth::user()->id; $blog->slug = Str::slug($request->get('title'), '-'); $blog->status = $request->get('submit_type'); $blog->created = date('Y-m-d H:i:s'); $blog->post = $request->get('submit_type') == 'post' ? date('Y-m-d H:i:s') : NULL; if($category_type == 'select') { $blog->blog_category_id = $request->get('category'); } else { $check_category = BlogCategory::where('name', $request->get('category'))->first(); if($check_category) { $blog->blog_category_id = $check_category->id; } else { $category = new BlogCategory(); $category->name = $request->get('category_name'); $category->slug = Str::slug($request->get('category_name'), '-'); $category->save(); $blog->blog_category_id = $category->id; } } if ($request->hasFile('image')) { $image = $request->file('image'); $ext = $image->getClientOriginalExtension(); if ($request->file('image')->isValid()) { $check_media = Media::where('name', str_replace('.' . $image->getClientOriginalExtension(), '', $image->getClientOriginalName()) . '.webp')->count(); if($check_media > 0) { $no = 2; $image_name = ''; while (true) { $image_name = str_replace('.'. $image->getClientOriginalExtension(), '', $image->getClientOriginalName()) . '-' .$no . '.' . $image->getClientOriginalExtension(); $image_webp = str_replace('.'. $image->getClientOriginalExtension(), '', $image->getClientOriginalName()) . '-' .$no . '.webp'; if(Media::where('name', $image_webp)->count() < 1) { break; } $no++; } } else { $image_name = $image->getClientOriginalName(); } $upload_path = 'media'; $request->file('image')->move($upload_path, $image_name); if($ext == 'png') { $img_new_a = imagecreatefrompng(public_path('media/' . $image_name)); } else { $img_new_a = imagecreatefromjpeg(public_path('media/' . $image_name)); } imagepalettetotruecolor($img_new_a); imagealphablending($img_new_a, true); imagesavealpha($img_new_a, true); imagewebp($img_new_a, public_path('media/' . str_replace('.'.$ext, '.webp',$image_name)), 80); imagedestroy($img_new_a); unlink(public_path('media/' . $image_name)); $blog->image = str_replace('.'.$ext, '.webp',$image_name); $media->name = str_replace('.'.$ext, '.webp',$image_name); $media->alt = $request->get('alt'); $media->save(); } } $blog->save(); return redirect()->route('blog.index')->with('message', 'Data Successfully Added'); } public function edit($id_blog) { $seo = new SEOController; $id = \Crypt::decrypt($id_blog); $blog_category = BlogCategory::orderBy('name')->get(); $blog = Blog::findOrFail($id); $persen = $seo->keyphraseDensityWithId('blog',$id); $final_score = $seo->altImageCheckWithId('blog',$id); $keyphrase_check = $seo->keyphraseCheckWithId('blog', $id); return view('blog.edit', compact('blog_category', 'blog','persen','final_score','keyphrase_check')); } public function update(Request $request, $id) { $category_type = $request->get('category_type'); $media = new Media(); $blog = Blog::findOrFail($id); $blog->tags = json_encode(explode(',', $request->get('tags'))); $blog->content = $request->get('content'); $blog->unit_bisnis = $request->get('unit_bisnis'); $blog->title = $request->get('title'); $blog->slug = Str::slug($request->get('title'), '-'); if($category_type == 'select') { $blog->blog_category_id = $request->get('category'); } else { $check_category = BlogCategory::where('name', $request->get('category'))->first(); if($check_category) { $blog->blog_category_id = $check_category->id; } else { $category = new BlogCategory(); $category->name = $request->get('category_name'); $category->slug = Str::slug($request->get('category_name'), '-'); $category->save(); $blog->blog_category_id = $category->id; } } if ($request->hasFile('image')) { $image = $request->file('image'); $ext = $image->getClientOriginalExtension(); if ($request->file('image')->isValid()) { $check_media = Media::where('name', str_replace('.' . $image->getClientOriginalExtension(), '', $image->getClientOriginalName()) . '.webp')->count(); if($check_media > 0) { $no = 2; $image_name = ''; while (true) { $image_name = str_replace('.'. $image->getClientOriginalExtension(), '', $image->getClientOriginalName()) . '-' .$no . '.' . $image->getClientOriginalExtension(); $image_webp = str_replace('.'. $image->getClientOriginalExtension(), '', $image->getClientOriginalName()) . '-' .$no . '.webp'; if(Media::where('name', $image_webp)->count() < 1) { break; } $no++; } } else { $image_name = $image->getClientOriginalName(); } $upload_path = 'media'; $request->file('image')->move($upload_path, $image_name); if($ext == 'png') { $img_new_a = imagecreatefrompng(public_path('media/' . $image_name)); } else { $img_new_a = imagecreatefromjpeg(public_path('media/' . $image_name)); } imagepalettetotruecolor($img_new_a); imagealphablending($img_new_a, true); imagesavealpha($img_new_a, true); imagewebp($img_new_a, public_path('media/' . str_replace('.'.$ext, '.webp',$image_name)), 80); imagedestroy($img_new_a); unlink(public_path('media/' . $image_name)); $blog->image = str_replace('.'.$ext, '.webp',$image_name); $media->name = str_replace('.'.$ext, '.webp',$image_name); $media->alt = $request->get('alt'); $media->save(); } } else { $old_media = Media::where('name', $blog->image)->first(); if($old_media) { $old_media->alt = $request->get('alt'); $old_media->save(); } } $blog->save(); return redirect()->route('blog.index')->with('message', 'Data Successfully Added'); } public function delete(Request $request) { $blog_id = $request->get('blog_id'); Blog::destroy($blog_id); return 'true'; } public function detail($id_blog) { $id = \Crypt::decrypt($id_blog); $blog = Blog::findOrFail($id); return view('blog.detail', compact('blog')); } public function changeStatus(Request $request) { $status = $request->get('status'); $blog_id = $request->get('blog_id'); $blog = Blog::findOrFail($blog_id); $blog->status = $status == 'post' ? 'draft' : 'post'; $blog->post = $status == 'post' ? NULL : date('Y-m-d H:i:s'); $blog->save(); return $status == 'post' ? 'draft' : 'post'; } public static function checkALtMedia($image) { $media = Media::where('name', $image)->first(); if($media) { return $media->alt; } else { return ''; } } public function seo(Request $request, $id) { $blog = Blog::findOrFail($id); $blog->keyphrase = $request->get('focus_keyphrase'); $blog->seo_title = $request->get('seo_title'); $blog->meta_description = $request->get('meta_description'); $blog->save(); return redirect()->route('blog.index')->with('message', 'Seo Successfully Updated'); } }