/app/Http/Controllers/Admin/NewsController.php
PHP | 193 lines | 121 code | 19 blank | 53 comment | 6 complexity | 2d3b64525f2adb7e6fcd315800cc79f6 MD5 | raw file
- <?php namespace App\Http\Controllers\Admin;
- use App\Http\Controllers\AdminController;
- use App\News;
- use App\NewsCategory;
- use App\Language;
- use Bllim\Datatables\Facade\Datatables;
- use Illuminate\Support\Facades\Input;
- use App\Http\Requests\Admin\NewsRequest;
- use App\Http\Requests\Admin\DeleteRequest;
- use App\Http\Requests\Admin\ReorderRequest;
- use Illuminate\Support\Facades\Auth;
- class NewsController extends AdminController {
- /*
- * Display a listing of the resource.
- *
- * @return Response
- */
- public function index()
- {
- // Show the page
- return view('admin.news.index');
- }
- /**
- * Show the form for creating a new resource.
- *
- * @return Response
- */
- public function getCreate()
- {
- $languages = Language::all();
- $language = "";
- $newscategories = NewsCategory::all();
- $newscategory = "";
- // Show the page
- return view('admin.news.create_edit', compact('languages', 'language','newscategories','newscategory'));
- }
- /**
- * Store a newly created resource in storage.
- *
- * @return Response
- */
- public function postCreate(NewsRequest $request)
- {
- $news = new News();
- $news -> user_id = Auth::id();
- $news -> language_id = $request->language_id;
- $news -> title = $request->title;
- $news -> newscategory_id = $request->newscategory_id;
- $news -> introduction = $request->introduction;
- $news -> content = $request->content;
- $news -> source = $request->source;
- $picture = "";
- if(Input::hasFile('picture'))
- {
- $file = Input::file('picture');
- $filename = $file->getClientOriginalName();
- $extension = $file -> getClientOriginalExtension();
- $picture = sha1($filename . time()) . '.' . $extension;
- }
- $news -> picture = $picture;
- $news -> save();
- if(Input::hasFile('picture'))
- {
- $destinationPath = public_path() . '/images/news/'.$news->id.'/';
- Input::file('picture')->move($destinationPath, $picture);
- }
- }
- /**
- * Show the form for editing the specified resource.
- *
- * @param int $id
- * @return Response
- */
- public function getEdit($id)
- {
- $news = News::find($id);
- $languages = Language::all();
- $language = $news->language_id;
- $newscategories = NewsCategory::all();
- $newscategory = $news->newscategory_id;
- return view('admin.news.create_edit',compact('news','languages','language','newscategories','newscategory'));
- }
- /**
- * Update the specified resource in storage.
- *
- * @param int $id
- * @return Response
- */
- public function postEdit(NewsRequest $request, $id)
- {
- $news = News::find($id);
- $news -> user_id = Auth::id();
- $news -> language_id = $request->language_id;
- $news -> title = $request->title;
- $news -> newscategory_id = $request->newscategory_id;
- $news -> introduction = $request->introduction;
- $news -> content = $request->content;
- $news -> source = $request->source;
- $picture = "";
- if(Input::hasFile('picture'))
- {
- $file = Input::file('picture');
- $filename = $file->getClientOriginalName();
- $extension = $file -> getClientOriginalExtension();
- $picture = sha1($filename . time()) . '.' . $extension;
- }
- $news -> picture = $picture;
- $news -> save();
- if(Input::hasFile('picture'))
- {
- $destinationPath = public_path() . '/images/news/'.$news->id.'/';
- Input::file('picture')->move($destinationPath, $picture);
- }
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param $id
- * @return Response
- */
- public function getDelete($id)
- {
- $news = News::find($id);
- // Show the page
- return view('admin.news.delete', compact('news'));
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param $id
- * @return Response
- */
- public function postDelete(DeleteRequest $request,$id)
- {
- $news = News::find($id);
- $news->delete();
- }
- /**
- * Show a list of all the languages posts formatted for Datatables.
- *
- * @return Datatables JSON
- */
- public function data()
- {
- $news = News::join('language', 'language.id', '=', 'news.language_id')
- ->join('news_category', 'news_category.id', '=', 'news.newscategory_id')
- ->select(array('news.id','news.title','news_category.title as category', 'language.name', 'news.created_at'))
- ->orderBy('news.position', 'ASC');
- return Datatables::of($news)
- ->add_column('actions', '<a href="{{{ URL::to(\'admin/news/\' . $id . \'/edit\' ) }}}" class="btn btn-success btn-sm iframe" ><span class="glyphicon glyphicon-pencil"></span> {{ Lang::get("admin/modal.edit") }}</a>
- <a href="{{{ URL::to(\'admin/news/\' . $id . \'/delete\' ) }}}" class="btn btn-sm btn-danger iframe"><span class="glyphicon glyphicon-trash"></span> {{ Lang::get("admin/modal.delete") }}</a>
- <input type="hidden" name="row" value="{{$id}}" id="row">')
- ->remove_column('id')
- ->make();
- }
- /**
- * Reorder items
- *
- * @param items list
- * @return items from @param
- */
- public function getReorder(ReorderRequest $request) {
- $list = $request->list;
- $items = explode(",", $list);
- $order = 1;
- foreach ($items as $value) {
- if ($value != '') {
- News::where('id', '=', $value) -> update(array('position' => $order));
- $order++;
- }
- }
- return $list;
- }
- }