/app/controllers/admin/AdminBlogsController.php
PHP | 241 lines | 110 code | 40 blank | 91 comment | 6 complexity | a3d7a2d6e768ab6601a20d537b3c81b8 MD5 | raw file
- <?php
- class AdminBlogsController extends AdminController {
- /**
- * Post Model
- * @var Post
- */
- protected $post;
- /**
- * Inject the models.
- * @param Post $post
- */
- public function __construct(Post $post)
- {
- parent::__construct();
- $this->post = $post;
- }
- /**
- * Show a list of all the blog posts.
- *
- * @return View
- */
- public function getIndex()
- {
- // Title
- $title = Lang::get('admin/blogs/title.blog_management');
- // Grab all the blog posts
- $posts = $this->post;
- // Show the page
- return View::make('admin/blogs/index', compact('posts', 'title'));
- }
- /**
- * Show the form for creating a new resource.
- *
- * @return Response
- */
- public function getCreate()
- {
- // Title
- $title = Lang::get('admin/blogs/title.create_a_new_blog');
- // Show the page
- return View::make('admin/blogs/create_edit', compact('title'));
- }
- /**
- * Store a newly created resource in storage.
- *
- * @return Response
- */
- public function postCreate()
- {
- // Declare the rules for the form validation
- $rules = array(
- 'title' => 'required|min:3',
- 'content' => 'required|min:3'
- );
- // Validate the inputs
- $validator = Validator::make(Input::all(), $rules);
- // Check if the form validates with success
- if ($validator->passes())
- {
- // Create a new blog post
- $user = Auth::user();
- // Update the blog post data
- $this->post->title = Input::get('title');
- $this->post->slug = Str::slug(Input::get('title'));
- $this->post->content = Input::get('content');
- $this->post->meta_title = Input::get('meta-title');
- $this->post->meta_description = Input::get('meta-description');
- $this->post->meta_keywords = Input::get('meta-keywords');
- $this->post->user_id = $user->id;
- // Was the blog post created?
- if($this->post->save())
- {
- // Redirect to the new blog post page
- return Redirect::to('admin/blogs/' . $this->post->id . '/edit')->with('success', Lang::get('admin/blogs/messages.create.success'));
- }
- // Redirect to the blog post create page
- return Redirect::to('admin/blogs/create')->with('error', Lang::get('admin/blogs/messages.create.error'));
- }
- // Form validation failed
- return Redirect::to('admin/blogs/create')->withInput()->withErrors($validator);
- }
- /**
- * Display the specified resource.
- *
- * @param $post
- * @return Response
- */
- public function getShow($post)
- {
- // redirect to the frontend
- }
- /**
- * Show the form for editing the specified resource.
- *
- * @param $post
- * @return Response
- */
- public function getEdit($post)
- {
- // Title
- $title = Lang::get('admin/blogs/title.blog_update');
- // Show the page
- return View::make('admin/blogs/create_edit', compact('post', 'title'));
- }
- /**
- * Update the specified resource in storage.
- *
- * @param $post
- * @return Response
- */
- public function postEdit($post)
- {
- // Declare the rules for the form validation
- $rules = array(
- 'title' => 'required|min:3',
- 'content' => 'required|min:3'
- );
- // Validate the inputs
- $validator = Validator::make(Input::all(), $rules);
- // Check if the form validates with success
- if ($validator->passes())
- {
- // Update the blog post data
- $post->title = Input::get('title');
- $post->slug = Str::slug(Input::get('title'));
- $post->content = Input::get('content');
- $post->meta_title = Input::get('meta-title');
- $post->meta_description = Input::get('meta-description');
- $post->meta_keywords = Input::get('meta-keywords');
- // Was the blog post updated?
- if($post->save())
- {
- // Redirect to the new blog post page
- return Redirect::to('admin/blogs/' . $post->id . '/edit')->with('success', Lang::get('admin/blogs/messages.update.success'));
- }
- // Redirect to the blogs post management page
- return Redirect::to('admin/blogs/' . $post->id . '/edit')->with('error', Lang::get('admin/blogs/messages.update.error'));
- }
- // Form validation failed
- return Redirect::to('admin/blogs/' . $post->id . '/edit')->withInput()->withErrors($validator);
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param $post
- * @return Response
- */
- public function getDelete($post)
- {
- // Title
- $title = Lang::get('admin/blogs/title.blog_delete');
- // Show the page
- return View::make('admin/blogs/delete', compact('post', 'title'));
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param $post
- * @return Response
- */
- public function postDelete($post)
- {
- // Declare the rules for the form validation
- $rules = array(
- 'id' => 'required|integer'
- );
- // Validate the inputs
- $validator = Validator::make(Input::all(), $rules);
- // Check if the form validates with success
- if ($validator->passes())
- {
- $id = $post->id;
- $post->delete();
- // Was the blog post deleted?
- $post = Post::find($id);
- if(empty($post))
- {
- // Redirect to the blog posts management page
- return Redirect::to('admin/blogs')->with('success', Lang::get('admin/blogs/messages.delete.success'));
- }
- }
- // There was a problem deleting the blog post
- return Redirect::to('admin/blogs')->with('error', Lang::get('admin/blogs/messages.delete.error'));
- }
- /**
- * Show a list of all the blog posts formatted for Datatables.
- *
- * @return Datatables JSON
- */
- public function getData()
- {
- $posts = Post::select(array('posts.id', 'posts.title', 'posts.id as comments', 'posts.created_at'));
- return Datatables::of($posts)
- ->edit_column('comments', '{{ DB::table(\'comments\')->where(\'post_id\', \'=\', $id)->count() }}')
- ->add_column('actions', '<a href="{{{ URL::to(\'admin/blogs/\' . $id . \'/edit\' ) }}}" class="btn btn-default btn-xs iframe" >{{{ Lang::get(\'button.edit\') }}}</a>
- <a href="{{{ URL::to(\'admin/blogs/\' . $id . \'/delete\' ) }}}" class="btn btn-xs btn-danger iframe">{{{ Lang::get(\'button.delete\') }}}</a>
- ')
- ->remove_column('id')
- ->make();
- }
- }