PageController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Page;
  4. use App\PageAdv;
  5. use App\News;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\File;
  8. class PageController extends Controller
  9. {
  10. protected $rules = [
  11. 'title' => ['required']
  12. ];
  13. public function index()
  14. {
  15. if (\Illuminate\Support\Facades\Auth::user()->level == 1)
  16. return redirect('/admin/dashboard');
  17. $pages = Page::orderBy('title')->get(); //->paginate(50);
  18. return view('pages.index',compact('pages'))
  19. ->with('i', (request()->input('page', 1) - 1) * 5);
  20. }
  21. /**
  22. * Show the form for creating a new resource.
  23. *
  24. * @return \Illuminate\Http\Response
  25. */
  26. public function create()
  27. {
  28. return view('pages.create');
  29. }
  30. /**
  31. * Store a newly created resource in storage.
  32. *
  33. * @param \Illuminate\Http\Request $request
  34. * @return \Illuminate\Http\Response
  35. */
  36. public function store(Request $request)
  37. {
  38. $request->validate($this->rules);
  39. $input = $request->all();
  40. $input["online"] = isset($input["online"]) ? ($input["online"] == 'on' ? true : false) : false;
  41. if(request()->image)
  42. {
  43. $file = request()->image;
  44. $filename = time() . '_' . $file->getClientOriginalName();
  45. if (! File::exists(public_path()."/files/pages"))
  46. File::makeDirectory(public_path()."/files/pages");
  47. $path = public_path('files/pages');
  48. request()->image->move($path, $filename);
  49. $input["image"] = $filename;
  50. }
  51. Page::create($input);
  52. return redirect()->route('pages.index')
  53. ->with('success','Page created successfully.');
  54. }
  55. /**
  56. * Display the specified resource.
  57. *
  58. * @param \App\Page $page
  59. * @return \Illuminate\Http\Response
  60. */
  61. public function show(Page $page)
  62. {
  63. return view('pages.show',compact('page'));
  64. }
  65. /**
  66. * Show the form for editing the specified resource.
  67. *
  68. * @param \App\Page $page
  69. * @return \Illuminate\Http\Response
  70. */
  71. public function edit(Page $page)
  72. {
  73. return view('pages.edit',compact('page'));
  74. }
  75. /**
  76. * Update the specified resource in storage.
  77. *
  78. * @param \Illuminate\Http\Request $request
  79. * @param \App\Page $page
  80. * @return \Illuminate\Http\Response
  81. */
  82. public function update(Request $request, Page $page)
  83. {
  84. $request->validate($this->rules);
  85. $input = $request->all();
  86. $input["online"] = isset($input["online"]) ? ($input["online"] == 'on' ? true : false) : false;
  87. if(request()->image)
  88. {
  89. $file = request()->image;
  90. $filename = time() . '_' . $file->getClientOriginalName();
  91. if (! File::exists(public_path()."/files/pages"))
  92. File::makeDirectory(public_path()."/files/pages");
  93. $path = public_path('files/pages');
  94. request()->image->move($path, $filename);
  95. $input["image"] = $filename;
  96. }
  97. $page->update($input);
  98. return redirect()->route('pages.index')
  99. ->with('success','Page updated successfully');
  100. }
  101. /**
  102. * Remove the specified resource from storage.
  103. *
  104. * @param \App\Page $page
  105. * @return \Illuminate\Http\Response
  106. */
  107. public function destroy(Page $page)
  108. {
  109. $news = News::where('page_id', '=', $page->id)->get();
  110. foreach($news as $n)
  111. {
  112. $n->page_id = null;
  113. $n->save();
  114. }
  115. $advs = PageAdv::where('page_id', '=', $page->id)->get();
  116. foreach($advs as $adv)
  117. {
  118. $adv->page_id = null;
  119. $adv->save();
  120. }
  121. $page->delete();
  122. return redirect()->route('pages.index')
  123. ->with('success','Page deleted successfully');
  124. }
  125. }