-
Nadchanon Susutlertpanya(บิว) authored091309bd
<?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);