321 lines
11 KiB
PHP
321 lines
11 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Actions\SlugChecker;
|
|
use App\Blog;
|
|
use App\BlogCategory;
|
|
use App\Events;
|
|
use App\Helpers\SanitizeInput;
|
|
use App\Http\Requests\SlugCheckRequest;
|
|
use App\Language;
|
|
use App\Page;
|
|
use App\Services;
|
|
use App\Volunteer;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Intervention\Image\Facades\Image;
|
|
use Intervention\Image\ImageManager;
|
|
use Illuminate\Support\Str;
|
|
|
|
|
|
class BlogController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth:admin');
|
|
}
|
|
public function index(){
|
|
$all_blog = Blog::all()->groupBy('lang');
|
|
return view('backend.pages.blog.index')->with([
|
|
'all_blog' => $all_blog
|
|
]);
|
|
}
|
|
public function new_blog(){
|
|
$all_category = BlogCategory::where('lang',get_default_language())->get();
|
|
$all_language = Language::all();
|
|
return view('backend.pages.blog.new')->with([
|
|
'all_category' => $all_category,
|
|
'all_languages' => $all_language,
|
|
]);
|
|
}
|
|
public function store_new_blog(Request $request){
|
|
$this->validate($request,[
|
|
'category' => 'required',
|
|
'blog_content' => 'required',
|
|
'tags' => 'required',
|
|
'excerpt' => 'required',
|
|
'title' => 'required',
|
|
'lang' => 'required',
|
|
'status' => 'required',
|
|
'author' => 'required',
|
|
'slug' => 'nullable',
|
|
'video_url' => 'nullable|string',
|
|
'breaking_news' => 'nullable|string',
|
|
'meta_tags' => 'nullable|string',
|
|
'meta_description' => 'nullable|string',
|
|
'image' => 'nullable|string|max:191',
|
|
]);
|
|
$slug = !empty($request->slug) ? $request->slug : Str::slug($request->title,$request->lang);
|
|
|
|
Blog::create([
|
|
'blog_categories_id' => $request->category,
|
|
'slug' => $slug ,
|
|
'content' => $request->blog_content,
|
|
'tags' => $request->tags,
|
|
'title' => $request->title,
|
|
'status' => $request->status,
|
|
'meta_tags' => $request->meta_tags,
|
|
'meta_description' => $request->meta_description,
|
|
'excerpt' => $request->excerpt,
|
|
'lang' => $request->lang,
|
|
'image' => $request->image,
|
|
'user_id' => Auth::user()->id,
|
|
'author' => $request->author,
|
|
'video_url' => $request->video_url,
|
|
'breaking_news' => !empty($request->breaking_news) ? 1 : 0,
|
|
]);
|
|
return redirect()->back()->with([
|
|
'msg' => __('New Blog Post Added...'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
public function clone_blog(Request $request)
|
|
{
|
|
$blog_details = Blog::find($request->item_id);
|
|
Blog::create([
|
|
'blog_categories_id' => $blog_details->blog_categories_id,
|
|
'slug' => $blog_details->slug.'33',
|
|
'content' => $blog_details->content,
|
|
'tags' => $blog_details->tags,
|
|
'title' => $blog_details->title,
|
|
'status' => 'draft',
|
|
'meta_tags' => $blog_details->meta_tags,
|
|
'meta_description' => $blog_details->meta_description,
|
|
'excerpt' => $blog_details->excerpt,
|
|
'lang' => $blog_details->lang,
|
|
'image' => $blog_details->image,
|
|
'video_url' => $blog_details->video_url,
|
|
'user_id' => null,
|
|
'author' => $blog_details->author,
|
|
'breaking_news' => $blog_details->breaking_news,
|
|
]);
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Blog Post cloned success...'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
|
|
public function edit_blog($id){
|
|
$blog_post = Blog::find($id);
|
|
$all_category = BlogCategory::where('lang',$blog_post->lang)->get();
|
|
$all_language = Language::all();
|
|
return view('backend.pages.blog.edit')->with([
|
|
'all_category' => $all_category,
|
|
'blog_post' => $blog_post,
|
|
'all_languages' => $all_language,
|
|
]);
|
|
}
|
|
public function update_blog(Request $request,$id){
|
|
$this->validate($request,[
|
|
'category' => 'required',
|
|
'blog_content' => 'required',
|
|
'tags' => 'required',
|
|
'excerpt' => 'required',
|
|
'title' => 'required',
|
|
'lang' => 'required',
|
|
'status' => 'required',
|
|
'author' => 'required',
|
|
'slug' => 'nullable',
|
|
'meta_tags' => 'nullable|string',
|
|
'meta_description' => 'nullable|string',
|
|
'image' => 'nullable|string|max:191',
|
|
|
|
]);
|
|
$slug = !empty($request->slug) ? $request->slug : Str::slug($request->title,$request->lang);
|
|
Blog::where('id',$id)->update([
|
|
'blog_categories_id' => $request->category,
|
|
'slug' => $slug,
|
|
'content' => $request->blog_content,
|
|
'tags' => $request->tags,
|
|
'title' => $request->title,
|
|
'status' => $request->status,
|
|
'meta_tags' => $request->meta_tags,
|
|
'meta_description' => $request->meta_description,
|
|
'excerpt' => $request->excerpt,
|
|
'lang' => $request->lang,
|
|
'video_url' => $request->video_url,
|
|
'image' => $request->image,
|
|
'user_id' => Auth::user()->id,
|
|
'author' => $request->author,
|
|
'breaking_news' => !empty($request->breaking_news) ? 1 : 0,
|
|
]);
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Blog Post updated...'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
public function delete_blog(Request $request,$id){
|
|
Blog::find($id)->delete();
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Blog Post Delete Success...'),
|
|
'type' => 'danger'
|
|
]);
|
|
}
|
|
|
|
public function category(){
|
|
$all_category = BlogCategory::all()->groupBy('lang');
|
|
$all_language = Language::all();
|
|
return view('backend.pages.blog.category')->with([
|
|
'all_category' => $all_category,
|
|
'all_languages' => $all_language
|
|
]);
|
|
}
|
|
public function new_category(Request $request){
|
|
$this->validate($request,[
|
|
'name' => 'required|string|max:191|unique:blog_categories',
|
|
'lang' => 'required|string|max:191',
|
|
'status' => 'required|string|max:191',
|
|
'image' => 'nullable|string|max:191'
|
|
]);
|
|
|
|
BlogCategory::create($request->all());
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('New Category Added...'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
|
|
public function update_category(Request $request){
|
|
$this->validate($request,[
|
|
'name' => 'required|string|max:191',
|
|
'lang' => 'required|string|max:191',
|
|
'status' => 'required|string|max:191',
|
|
'image' => 'nullable|string|max:191'
|
|
]);
|
|
|
|
BlogCategory::find($request->id)->update([
|
|
'name' => $request->name,
|
|
'status' => $request->status,
|
|
'lang' => $request->lang,
|
|
'image' => $request->image,
|
|
]);
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Category Update Success...'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
|
|
public function delete_category(Request $request,$id){
|
|
if (Blog::where('blog_categories_id',$id)->first()){
|
|
return redirect()->back()->with([
|
|
'msg' => __('You Can Not Delete This Category, It Already Associated With A Post...'),
|
|
'type' => 'danger'
|
|
]);
|
|
}
|
|
BlogCategory::find($id)->delete();
|
|
return redirect()->back()->with([
|
|
'msg' => __('Category Delete Success...'),
|
|
'type' => 'danger'
|
|
]);
|
|
}
|
|
|
|
public function Language_by_slug(Request $request){
|
|
$all_category = BlogCategory::where('lang',$request->lang)->get();
|
|
|
|
return response()->json($all_category);
|
|
}
|
|
|
|
public function blog_page_settings(){
|
|
$all_languages = Language::all();
|
|
return view('backend.pages.blog.page-settings.blog')->with(['all_languages' => $all_languages]);
|
|
}
|
|
public function blog_single_page_settings(){
|
|
$all_languages = Language::all();
|
|
return view('backend.pages.blog.page-settings.blog-single')->with(['all_languages' => $all_languages]);
|
|
}
|
|
|
|
public function update_blog_single_page_settings(Request $request){
|
|
$this->validate($request,[
|
|
'blog_single_page_recent_post_item' => 'nullable|string|max:191'
|
|
]);
|
|
$all_languages = Language::all();
|
|
|
|
foreach ($all_languages as $lang){
|
|
$this->validate($request, [
|
|
'blog_single_page_'.$lang->slug.'_related_post_title' => 'nullable|string',
|
|
'blog_single_page_'.$lang->slug.'_share_title' => 'nullable|string',
|
|
'blog_single_page_'.$lang->slug.'_category_title' => 'nullable|string',
|
|
'blog_single_page_'.$lang->slug.'_recent_post_title' => 'nullable|string',
|
|
'blog_single_page_'.$lang->slug.'_tags_title' => 'nullable|string'
|
|
]);
|
|
|
|
$fields = [
|
|
'blog_single_page_'.$lang->slug.'_related_post_title',
|
|
'blog_single_page_'.$lang->slug.'_share_title',
|
|
'blog_single_page_'.$lang->slug.'_category_title',
|
|
'blog_single_page_'.$lang->slug.'_recent_post_title',
|
|
'blog_single_page_'.$lang->slug.'_tags_title'
|
|
];
|
|
|
|
foreach ($fields as $field){
|
|
update_static_option($field, $request->$field);
|
|
}
|
|
}
|
|
update_static_option('blog_single_page_recent_post_item',$request->blog_single_page_recent_post_item);
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Settings Update Success...'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
|
|
public function update_blog_page_settings(Request $request){
|
|
|
|
$this->validate($request,[
|
|
'blog_page_recent_post_widget_items' => 'nullable|string|max:191',
|
|
'blog_page_item' => 'nullable|string|max:191'
|
|
]);
|
|
|
|
$all_languages = Language::all();
|
|
foreach ($all_languages as $lang){
|
|
$this->validate($request, [
|
|
'blog_page_'.$lang->slug.'_read_more_btn_text' => 'nullable|string',
|
|
]);
|
|
$read_more_btn_text = 'blog_page_'.$lang->slug.'_read_more_btn_text';
|
|
update_static_option($read_more_btn_text, $request->$read_more_btn_text);
|
|
}
|
|
|
|
update_static_option('blog_page_item',$request->blog_page_item);
|
|
update_static_option('blog_page_recent_post_widget_items',$request->blog_page_recent_post_widget_items);
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Settings Update Success...'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
|
|
public function bulk_action(Request $request){
|
|
Blog::whereIn('id',$request->ids)->delete();
|
|
return response()->json(['status' => 'ok']);
|
|
}
|
|
|
|
public function category_bulk_action(Request $request){
|
|
BlogCategory::whereIn('id',$request->ids)->delete();
|
|
return response()->json(['status' => 'ok']);
|
|
}
|
|
|
|
|
|
public function slug_check(SlugCheckRequest $request){
|
|
$user_given_slug = $request->slug;
|
|
$query = Events::Blog(['slug' => $user_given_slug]);
|
|
|
|
return SlugChecker::Check($request,$query);
|
|
}
|
|
}
|