Server : Apache System : Linux 145.162.205.92.host.secureserver.net 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64 User : tradze ( 1001) PHP Version : 8.1.34 Disable Function : NONE Directory : /home/tradze/public_html/app/Modules/Blog/Http/Controllers/Frontend/ |
<?php
namespace App\Modules\Blog\Http\Controllers\Frontend;
use App\Http\Controllers\SiteController;
use App\Http\Requests;
use App\Modules\Banners\Repositories\BannersRepo;
use App\Modules\Blog\Http\Requests\CommentFormRequest;
use App\Modules\Blog\Models\BlogCategory;
use App\Modules\Blog\Models\BlogPost;
use App\Modules\Blog\Models\BlogPostComment;
use App\Modules\Pages\Repositories\PageRepository;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Laracasts\Flash\Flash;
use App\Modules\Notifications\Facades\NotifRepository; // code by Rishi
use App\Modules\Pages\Models\Page;
class BlogController extends SiteController
{
/**
* The page repository instance.
*
* @var pageRepository
*/
protected $pages;
/**
* Create a new controller instance.
*
* BlogController constructor.
* @param BannersRepo $banners
*/
public function __construct(BannersRepo $banners, PageRepository $pages)
{
parent::__construct($banners);
$this->pages = $pages;
}
/**
* Blog general page
*/
public function index()
{
$posts = BlogPost::orderBy('created_at','desc')->active()->limit(3)->get();
$categories = BlogCategory::all();
$page = Page::where('slug','=', 'blog')->active()->first();
//get page banners
$slides = $this->banners->getBanners($page);
//create data array
$this->data['posts'] = $posts;
$this->data['categories'] = $categories;
$this->data['slides'] = $slides;
$promotedOffer = collect();
if ($this->pages->get_promoted_offers()->count()>0){
$promotedOffer = $this->pages->get_promoted_offers()->random();
}
$this->data['offerSlider'] = $promotedOffer;
//render page //render page
return view('blog::frontend_new.home',$this->data);
}
/**
* Blog general page
*/
public function category($slug)
{
$posts = BlogPost::active()
->whereHas('category', function($query) use ($slug){
return $query->where('slug',$slug);
})
->orderBy('created_at','desc')
->get();
//get page banners
$slides = $this->banners->getFreeByPosition('top','default');
//create data array
$this->data['posts'] = $posts;
$this->data['categories'] = BlogCategory::all();
$this->data['slides']['top'] = $slides;
$promotedOffer = collect();
if ($this->pages->get_promoted_offers()->count()>0){
$promotedOffer = $this->pages->get_promoted_offers()->random();
}
$this->data['offerSlider'] = $promotedOffer;
//render page //render page
return view('blog::frontend_new.category',$this->data);
}
/**
* Blog Post Page
* @param $slug
*/
public function show($category,$slug)
{
//get post
$post = BlogPost::active()
->where('slug',$slug)
->whereHas('category', function($query) use ($category){
return $query->where('slug',$category);
})
->first();
//abort if page does not exists
if (!$post)
return abort(404,'page not found');
//get page banners
$slides = $this->banners->getFreeByPosition('top','default');
//create data array
$this->data['post'] = $post;
$this->data['posts'] = $post->siblings();
$this->data['categories'] = BlogCategory::all();
$this->data['comments'] = $post->comments()->active()->orderBy('created_at','desc')->get();
// $this->data['comments'] = [];
$this->data['slides']['top'] = $slides;
$promotedOffer = collect();
if ($this->pages->get_promoted_offers()->count()>0){
$promotedOffer = $this->pages->get_promoted_offers()->random();
}
$this->data['offerSlider'] = $promotedOffer;
//render page
return view("blog::frontend_new.post_page",$this->data);
}
/**
* Add new comment
*/
public function add_comment(CommentFormRequest $request)
{
//get post by slug
$post = BlogPost::where('slug',$request->slug)->first();
//create post data array
$data = [
'user_name' => $request->name,
'user_email' => $request->email,
'user_id' => \Auth::check()?Auth::user()->id:null,
'body' => $request->message,
'post_id' => $post->id,
'is_active' => 0,
];
//save new post comment
$obj = BlogPostComment::create($data);
//create data response
$responseData = ['message'=>'Thank you for your comment!'];
//return response
return response(json_encode($responseData),200);
}
/*
* Code by Rishi
*/
public function sendNotification() {
$res = NotifRepository::send();
}
}