JFIF x x C C " } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w !1AQ aq"2B #3Rbr{
File "BlogController.php"
Full Path: /var/www/laravel_filter/Modules/Blog/Http/Controllers/BlogController.php
File size: 9.68 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Modules\Blog\Http\Controllers;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Blog\Entities\BlogCategory;
use Modules\Blog\Entities\Blog;
use Modules\Blog\Entities\BlogTranslation;
use Modules\Blog\Entities\BlogCategoryTranslation;
use Modules\Blog\Entities\BlogComment;
use Modules\Language\Entities\Language;
use Session, Auth, Image, File, Str;
class BlogController extends Controller
{
public function __construct()
{
$this->middleware('auth:admin');
}
public function index()
{
$blogs = Blog::with('translate','category')->orderBy('id','desc')->get();
return view('blog::blog_list',compact('blogs'));
}
public function create()
{
$categories = BlogCategory::with('translate')->get();
return view('blog::create_blog',compact('categories'));
}
public function store(Request $request)
{
$rules = [
'title'=>'required|unique:blog_translations',
'slug'=>'required|unique:blogs',
'image'=>'required',
'description'=>'required',
'category'=>'required',
];
$customMessages = [
'title.required' => trans('admin_validation.Title is required'),
'title.unique' => trans('admin_validation.Title already exist'),
'slug.required' => trans('admin_validation.Slug is required'),
'slug.unique' => trans('admin_validation.Slug already exist'),
'image.required' => trans('admin_validation.Image is required'),
'description.required' => trans('admin_validation.Description is required'),
'category.required' => trans('admin_validation.Category is required'),
];
$request->validate($rules,$customMessages);
$admin = Auth::guard('admin')->user();
$blog = new Blog();
if($request->image){
$image_name = 'blog-'.date('-Y-m-d-h-i-s-').rand(999,9999).'.webp';
$image_name ='uploads/custom-images/'.$image_name;
Image::make($request->image)
->encode('webp', 80)
->save(public_path().'/'.$image_name);
$blog->image = $image_name;
}
$blog->admin_id = $admin->id;
$blog->slug = $request->slug;
$blog->blog_category_id = $request->category;
$blog->show_homepage = $request->show_homepage ? 'yes' : 'no';
$blog->is_popular = $request->is_popular ? 'yes' : 'no';
$blog->status = $request->status ? 1 : 0;
$blog->tags = $request->tags;
$blog->save();
$languages = Language::all();
foreach($languages as $language){
$blog_translate = new BlogTranslation();
$blog_translate->lang_code = $language->lang_code;
$blog_translate->blog_id = $blog->id;
$blog_translate->title = $request->title;
$blog_translate->description = $request->description;
$blog_translate->seo_title = $request->seo_title ? $request->seo_title : $request->title;
$blog_translate->seo_description = $request->seo_description ? $request->seo_description : $request->title;
$blog_translate->save();
}
$notification= trans('admin_validation.Created Successfully');
$notification=array('messege'=>$notification,'alert-type'=>'success');
return redirect()->route('admin.blog.edit', ['blog' => $blog->id, 'lang_code' => admin_lang()])->with($notification);
}
public function edit(Request $request, $id)
{
$categories = BlogCategory::with('translate')->get();
$blog = Blog::with('translate')->findOrFail($id);
$blog_translate = BlogTranslation::where(['blog_id' => $id, 'lang_code' => $request->lang_code])->first();
return view('blog::edit_blog',compact('categories','blog','blog_translate'));
}
public function update(Request $request,$id)
{
$blog = Blog::findOrFail($id);
if($request->lang_code == admin_lang()){
$rules = [
'title'=>'required',
'slug'=>'required|unique:blogs,slug,'.$blog->id,
'description'=>'required',
'category'=>'required',
];
$customMessages = [
'title.required' => trans('admin_validation.Title is required'),
'title.unique' => trans('admin_validation.Title already exist'),
'slug.required' => trans('admin_validation.Slug is required'),
'slug.unique' => trans('admin_validation.Slug already exist'),
'description.required' => trans('admin_validation.Description is required'),
'category.required' => trans('admin_validation.Category is required'),
];
$request->validate($rules,$customMessages);
if($request->image){
$old_image = $blog->image;
$image_name = 'blog-'.date('-Y-m-d-h-i-s-').rand(999,9999).'.webp';
$image_name ='uploads/custom-images/'.$image_name;
Image::make($request->image)
->encode('webp', 80)
->save(public_path().'/'.$image_name);
$blog->image = $image_name;
$blog->save();
if($old_image){
if(File::exists(public_path().'/'.$old_image))unlink(public_path().'/'.$old_image);
}
}
$blog->slug = $request->slug;
$blog->blog_category_id = $request->category;
$blog->show_homepage = $request->show_homepage ? 'yes' : 'no';
$blog->is_popular = $request->is_popular ? 'yes' : 'no';
$blog->status = $request->status ? 1 : 0;
$blog->tags = $request->tags;
$blog->save();
}else{
$rules = [
'title'=>'required',
'description'=>'required',
];
$customMessages = [
'title.required' => trans('admin_validation.Title is required'),
'title.unique' => trans('admin_validation.Title already exist'),
'description.required' => trans('admin_validation.Description is required'),
];
$request->validate($rules,$customMessages);
}
$blog_translate = BlogTranslation::findOrFail($request->translate_id);
$blog_translate->title = $request->title;
$blog_translate->description = $request->description;
$blog_translate->seo_title = $request->seo_title ? $request->seo_title : $request->title;
$blog_translate->seo_description = $request->seo_description ? $request->seo_description : $request->title;
$blog_translate->save();
$notification= trans('admin_validation.Updated Successfully');
$notification=array('messege'=>$notification,'alert-type'=>'success');
return redirect()->back()->with($notification);
}
public function destroy($id)
{
$blog = Blog::find($id);
$old_image = $blog->image;
if($old_image){
if(File::exists(public_path().'/'.$old_image))unlink(public_path().'/'.$old_image);
}
BlogComment::where('blog_id',$id)->delete();
$blog->delete();
$notification= trans('admin_validation.Delete Successfully');
$notification=array('messege'=>$notification,'alert-type'=>'success');
return redirect()->route('admin.blog.index')->with($notification);
}
public function blog_status($id){
$blog = Blog::find($id);
if($blog->status==1){
$blog->status=0;
$blog->save();
$message= trans('admin_validation.Inactive Successfully');
}else{
$blog->status=1;
$blog->save();
$message= trans('admin_validation.Active Successfully');
}
return response()->json($message);
}
public function blog_comment(){
$blog_comments = BlogComment::orderBy('id','desc')->get();
return view('blog::blog_comment',compact('blog_comments'));
}
public function show_comment($id){
$blog_comment = BlogComment::findOrFail($id);
return view('blog::show_blog_comment',compact('blog_comment'));
}
public function destroy_comment($id)
{
$blog_comment = BlogComment::findOrFail($id);
$blog_comment->delete();
$notification= trans('admin_validation.Delete Successfully');
$notification=array('messege'=>$notification,'alert-type'=>'success');
return redirect()->back()->with($notification);
}
public function blog_comment_status($id){
$blog_comment = BlogComment::find($id);
if($blog_comment->status == 1){
$blog_comment->status = 0;
$blog_comment->save();
$message = trans('admin_validation.Inactive Successfully');
}else{
$blog_comment->status = 1;
$blog_comment->save();
$message = trans('admin_validation.Active Successfully');
}
return response()->json($message);
}
public function assign_language($lang_code){
$blog_translates = BlogTranslation::where('lang_code', admin_lang())->get();
foreach($blog_translates as $blog_translate){
$new_blog = new BlogTranslation();
$new_blog->lang_code = $lang_code;
$new_blog->blog_id = $blog_translate->blog_id;
$new_blog->title = $blog_translate->title;
$new_blog->description = $blog_translate->description;
$new_blog->seo_title = $blog_translate->seo_title;
$new_blog->seo_description = $blog_translate->seo_description;
$new_blog->save();
}
}
}