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/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/tradze/public_html/app/Modules/Blog/Http/Controllers/Admin/PostsController_old.php
<?php
namespace App\Modules\Blog\Http\Controllers\Admin;

use App\Http\Controllers\AdminController;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Modules\Blog\Http\Requests\BlogPostRequest;
use App\Modules\Blog\Models\BlogCategory;
use App\Modules\Blog\Models\BlogPost;
use App\Modules\Blog\Models\BlogPostComment;
use Carbon\Carbon;
use Cviebrock\EloquentSluggable\Services\SlugService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Laracasts\Flash\Flash;
use Yajra\Datatables\Datatables;

class PostsController extends AdminController
{

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {

        $this->data['page_title'] = trans('blog::posts.page_title');

        //render page
        return view('blog::admin.posts.index', $this->data);
    }

    /**
     * Show a list of all companies
     *
     * @return mixed
     */
    public function data(Request $request)
    {
        //create object contact
        $obj = $this->getData($request);

        //create array with permissions access
        $this->data['can'] = [
            'edit'   => $this->data['user']->can('admin.blog.posts.edit') || $this->data['user']->is('developer'),
            'delete' => $this->data['user']->can('admin.blog.posts.delete') || $this->data['user']->is('developer'),
        ];

        //return datatables data
        return Datatables::of($obj)
            ->addColumn('comments_no',function($o){
                $data['comments_no'] = $o->comments->count();
                return view('blog::admin.posts.comments_no',$data)->render();
            })
            ->editColumn('category_id', function($o){
                $category = $o->category()->withTrashed()->first();
                return $category->title;
            })
            ->editColumn('is_active', function($o){
                $this->data['o'] = $o;
                return view('pages::admin.partial_page_status',$this->data)->render();
            })
            ->addColumn('actions', function ($o) {
                $this->data['o']=$o;
                return view('blog::admin.posts.list_actions',$this->data)->render();
            })
            ->removeColumn('id')
            ->removeColumn('updated_at')
            ->make(true);
    }

    /**
     * Get object entries
     * @param Request $request
     */
    protected function getData(Request $request)
    {
        $obj = BlogPost::all();

        //return object
        return $obj;
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {

        $this->data['page_title'] = trans('blog::posts.page_title');
        $this->data['form']['categories'] = $this->getCategories();

        //show page
        return view('blog::admin.posts.create_edit', $this->data);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @return Response
     */
    public function store(BlogPostRequest $request)
    {
        $data = [
            'category_id' => $request->category_id,
            'title' => $request->title,
            'slug' => $request->slug,
            'body' => $request->body,
            'excerpt' => $request->excerpt,
            'is_active' => (int)$request->is_active,
            'meta_title' => $request->meta_title,
            'meta_keywords' => $request->meta_keywords,
            'meta_description' => $request->meta_description,
            'user_id' => \Auth::user()->id,
        ];


        //save new service type
        $obj = BlogPost::create($data);

        //save feature image
        if ($request->file('image_feature')){
            $this->save_file($request->file('image_feature'),'image_feature', $obj);
        }

        //redirect
        if ($request->save) {
            return redirect(route('admin.blog.posts.edit', ['id' => $obj->id]));
        } elseif ($request->save_exit) {
            return redirect(route('admin.blog.posts.index'));
        }
    }

    /**
     * Edit Service Type
     *
     * @param $label
     * @return \BladeView|bool|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function edit(BlogPost $posts)
    {
        $this->data['page_title'] = trans('blog::posts.page_title');
        $this->data['form']['categories'] = $this->getCategories();
        $this->data['obj'] = $posts;

        //show page
        return view('blog::admin.posts.create_edit', $this->data);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  int $id
     * @return Response
     */
    public function update(BlogPostRequest $request, BlogPost $posts)
    {
        $obj = $posts;

        //fields to be updated
        $fillable = $obj['fillable'];

        $fields = array();
        foreach ($request->all() as $field => $f) {
            if (in_array($field, $fillable)) {
                $fields[$field] = $f;
            }
        } //end foreach

        $fields['is_active'] = (int)$request->is_active;

        //update label
        BlogPost::where('id', $obj->id)->update($fields);

        //save feature image
        if ($request->file('image_feature')){
            $this->save_file($request->file('image_feature'),'image_feature', $obj);
        }

        //redirect
        if ($request->save) {
            return redirect(route('admin.blog.posts.edit', ['id' => $obj->id]));
        } elseif ($request->save_exit) {
            return redirect(route('admin.blog.posts.index'));
        }
    }

    /**
     * Delete page
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function delete(BlogPost $posts)
    {
        $this->data['obj'] = $posts;

        return view('blog::admin.posts.delete', $this->data);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function destroy(BlogPost $posts)
    {

        //set object name
        $obj_name = $posts->title;

        //delete contact
        $posts->delete();

        //set success message
        Flash::info(trans('blog::posts.message_confirm_delete', ['name' => $posts->title]));

        //redirect to contacts list
        return redirect(route('admin.blog.posts.index'));
    }

    /**
     * Create slug from string
     *
     * @param Request $request
     */
    public function create_slug(Request $request)
    {
        return SlugService::createSlug(BlogPost::class, 'slug', $request->string);
    }

    /**
     * Save image file
     * @param Request $request
     * @param $obj
     */
    protected function save_file($file,$field,$obj)
    {
        $filename = strtolower(str_random(5)).'-'.str_slug(str_replace($file->getClientOriginalExtension(),'',$file->getClientOriginalName()));
        $extension = ($file->getClientOriginalExtension())?:'jpg';

        $path_file = 'blog/'.$filename.".".$extension;

        //upload file
        $upload =  Storage::disk('public_images')->put(
            $path_file,
            file_get_contents($file->getRealPath())
        );

        $obj->$field = $path_file;
        $obj->save();
    }

    /**
     * Get Categories List
     * @return \Illuminate\Support\Collection
     */
    protected function getCategories()
    {
        $categories = collect();
        $categories->put('',trans('general.form_select_option'));
        foreach(BlogCategory::lists('title','id') as $id=>$p)
            $categories->put($id,$p);

        return $categories;
    }

    /**
     * Post comments list
     * @param $post_id
     */
    public function comments(BlogPost $posts)
    {
        //create data array
        $this->data['page_title'] = trans('blog::posts.page_comments_title',['name'=>$posts->title]);
        $this->data['post'] = $posts;

        //render page
        return view('blog::admin.comments.index', $this->data);

    }

    /**
     * Post comments data
     * @param $post_id
     * @return mixed
     */
    public function comments_data($post_id)
    {
        $obj = BlogPostComment::where('post_id',$post_id)->orderBy('created_at','desc')->get();

        //return datatables data
        return Datatables::of($obj)
            ->editColumn('created_at', function($o){
                return $o->created_at->format('D d M Y, h:i A');
            })
            ->editColumn('user_name', function($o){
                $data['comm'] = $o;
                return view('blog::admin.comments.partial_user_info',$data)->render();
            })
            ->editColumn('is_active', function($o){
                $data['comm'] = $o;
                return view('blog::admin.comments.partial_actions',$data)->render();
            })
            ->addColumn('actions',function($o){
                $data['comm'] = $o;
                return view('blog::admin.comments.partial_actions',$data)->render();
            })
            ->removeColumn('id')
            ->removeColumn('updated_at')
            ->make(true);
    }

    /**
     * Update comment: publish, unpublish
     * @param $id
     */
    public function comment_update(Request $request)
    {
        $obj = BlogPostComment::find($request->id);
        if (!$obj)
            return response(['message'=>'comment not found'],403);

        //update comment status
        $obj->is_active=$request->publish;
        $obj->save();

        return response(['message'=>'success'],200);
    }
}

ZeroDay Forums Mini