PageController.php 7.45 KiB
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Requests\StorePageRequest;
use DB;
use App\Post;
use App\User;
use App\Page;
// use App\Http\Requests\StorePostRequest;
use Auth;
class PageController extends Controller
    /**
     * Display a listing of the resource.
     * @return \Illuminate\Http\Response
    public function index()
        $pages = Page::where('status','normal')
        ->get();
        return response()->json(
            'page'=>$pages
    public function store_post_by_page(Request $request)
        $data = $request->all();
        $data['user_id']=User::find($data['virtual_id'])->id;
        unset($data['virtual_id']);
        $post = Post::create($data);
        // dd($data);
        if ($request->hasFile('image') && $request->file('image')->isValid()) {
            $path = $request->file('image')->getRealPath();
            $mime_type = $request->file('image')->getClientOriginalExtension();
            $destination_path = 'posts/page_' . $post->id . '.' . $mime_type;
            \Storage::put(
                $destination_path,
                file_get_contents($path)
            $post->image = $destination_path;
            $post->save();
    return redirect()->back();
    public function create()
        return view('page.manage',
        	'submitButtonText' => 'Submit' 
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
,'title' => 'Create' ] ); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(StorePageRequest $request) { $data = $request->all(); // dd( Auth::User()->create(['type'=>'page'])); $data['virtual_id'] = Auth::User()->create(['type'=>'page'])->id; $page = Auth::User()->pages()->create($data); if ($request->hasFile('image') && $request->file('image')->isValid()) { $path = $request->file('image')->getRealPath(); $mime_type = $request->file('image')->getClientOriginalExtension(); $destination_path = 'pages/' . 'page'.'_'.$page->id.'.' . $mime_type; \Storage::put( $destination_path, file_get_contents($path) ); $page->image = $destination_path; $page->save(); } return redirect('page/'.$page->id); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($page_id) { $page = Page::find($page_id); $page_owner = $page->user_id; $user_id = Auth::User()->id; $owner; if ($page_owner == $user_id) { $owner = true; } else { $owner= false; } $pages = DB::table('follow_pages')->where('page_id',$page_id)->get(); $can_follow = true; foreach ($pages as $page1){ if($page1->user_id == $user_id) { $can_follow = false; break; } }
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
$aUser = User::find($user_id); $owner_page_user_id = Page::find($page_id)->virtual_id; // dd($owner_page_user_id); $posts = Post::with([ 'comments' => function ($query) { $query->orderBy('updated_at', 'desc'); } ]) ->where('user_id', $owner_page_user_id) ->orderBy('updated_at', 'desc') ->get(); $auth_user_id = Auth::User()->id; $count = 0; $ownerPost = []; foreach ($posts as $post) { if ($post->likeByUsers) { foreach ($post->likeByUsers as $user) { if ($user->id == $auth_user_id) { $post->likeable = false; break; } } } if (!isset($post->likeable)) { $post->likeable = true; } if ($post->comments){ foreach ($post->comments as $comment){ if($comment->likeByUsers){ foreach($comment->likeByUsers as $user_comment){ if ($user_comment->id == $auth_user_id){ $comment->likeable = false; break; } } } if (!isset($comment->likeable)){ $comment->likeable = true; } } } } return view('page.view_page', ['pages' => $pages, 'page' => $page, 'owner' => $owner, 'can_follow' => $can_follow, 'posts' => $posts, 'user' => $aUser ]); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $page = Page::find($id); return view('page.manage', [ 'submitButtonText' => 'Update'
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
,'title' => 'Edit' , ])->withPage($page); // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $data = $request->all(); $page = Page::find($id); $page->update($data); if ($request->hasFile('image') && $request->file('image')->isValid()) { $path = $request->file('image')->getRealPath(); $mime_type = $request->file('image')->getClientOriginalExtension(); $destination_path = 'pages/' . $page->id . '.' . $mime_type; \Storage::put( $destination_path, file_get_contents($path) ); $page->image = $destination_path; $page->save(); } $updateMsg = 'Update profile completed'; return redirect('/page/'.$page->id.'/edit') ->with('updateMsg', $updateMsg); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $page = Page::find($id); $status = "softdeleted"; $page->update(['status'=>$status]); } public function follow($id) { $page = Page::find($id); $page->followByUsers()->attach(Auth::User()->id); return response()->json($page->followByUsers()->count()); } public function unfollow($id) { $page = Page::find($id);