middleware('cp.auth'); FileMan::checkUploadPath(public_path($this->uploadPath)); $this->pageTitle = trans('admin.SERVICES'); } public function Main() { $data['page_title'] = $this->pageTitle; $data['table'] = DB::table($this->db_table . ' AS t1') ->select('t1.*', 't2.headline') ->leftJoin($this->db_table_description . ' AS t2', 't1.' . $this->db_tableID, 't2.' . $this->db_tableID) ->where('t2.iso', Language::getDefaultLanguage()) ->orderBy('service_id', 'desc') ->get(); return view('plugin.services::main', $data); } public function Create() { $data['page_title'] = $this->pageTitle; $data['table'] = new \stdClass(); $data['table']->active = 'Y'; $data['uploadPath'] = $this->uploadPath; $data['languages'] = Language::getLanguagesList(); $data['default_language'] = Language::getDefaultLanguage(); return view('plugin.services::create', $data); } public function Insert(Request $request) { $id = DB::table($this->db_table) ->insertGetId([ 'active' => $request->input('active'), 'created_at' => time(), ]); $this->updateTranslations($id, $request); $this->storePictures($id, $request); return redirect()->route($this->mainRoute); } public function Delete($id) { DB::table($this->db_table) ->where($this->db_tableID, $id) ->delete(); return redirect()->route($this->mainRoute); } public function Update($id, Request $request) { DB::table($this->db_table) ->where($this->db_tableID, $id) ->update([ 'active' => $request->input('active'), 'updated_at' => time(), ]); $this->updateTranslations($id, $request); $this->storePictures($id, $request); return redirect()->route($this->mainRoute); } public function Edit($id) { ### Load Table Data ### $data['table'] = DB::table($this->db_table) ->where($this->db_tableID, $id) ->first(); $data['page_title'] = $this->pageTitle; $data[$this->db_tableID] = $id; $data['languages'] = Language::getLanguagesList(); $data['default_language'] = Language::getDefaultLanguage(); $data['translation'] = $this->getTranslation($id); $data['uploadPath'] = $this->uploadPath; return view('plugin.services::edit', $data); } public function SortPages(Request $request) { Sort::Items($request, $this->db_table, $this->db_tableID); } protected function updatePicture($id, $file, $dbField) { $folder = public_path($this->uploadPath); $picture = []; if (is_null($file)) { return; } $ext = $file->getClientOriginalExtension(); $diskname = uniqid() . "." . $ext; $destination = $folder . $diskname; $file->move($folder, $diskname); $picture = $diskname; DB::table($this->db_table) ->where($this->db_tableID, $id) ->update([$dbField => $picture]); return $picture; } protected function storePictures($id, $request) { $picture1 = $this->updatePicture($id, $request->file('picture_1'), 'picture_1'); $picture2 = $this->updatePicture($id, $request->file('picture_2'), 'picture_2'); $picture3 = $this->updatePicture($id, $request->file('picture_3'), 'picture_3'); $picture4 = $this->updatePicture($id, $request->file('picture_4'), 'picture_4'); $picture5 = $this->updatePicture($id, $request->file('picture_5'), 'picture_5'); $picture6 = $this->updatePicture($id, $request->file('picture_6'), 'picture_6'); $picture7 = $this->updatePicture($id, $request->file('picture_7'), 'picture_7'); $picture8 = $this->updatePicture($id, $request->file('picture_8'), 'picture_8'); } protected function updateTranslations($id, $request) { $prevod = $request->input('prevod'); ### Remove Old Entries ### DB::table($this->db_table_description) ->where($this->db_tableID, $id) ->delete(); ### Insert New Entries ### foreach ($prevod as $iso => $data) { DB::table($this->db_table_description) ->insert(['iso' => $iso, $this->db_tableID => $id, 'headline' => $data['headline'], 'content1' => $data['content1'], 'content2' => $data['content2'], 'content3' => $data['content3'], 'content4' => $data['content4'], 'content5' => $data['content5'], ]); } } protected function getTranslation($id) { $data = []; $trans = DB::table($this->db_table_description) ->where($this->db_tableID, $id) ->get(); foreach ($trans as $key => $row) { $data[$row->iso]['headline'] = $row->headline; $data[$row->iso]['content1'] = $row->content1; $data[$row->iso]['content2'] = $row->content2; $data[$row->iso]['content3'] = $row->content3; $data[$row->iso]['content4'] = $row->content4; $data[$row->iso]['content5'] = $row->content5; } return $data; } }