PageRenderTime 43ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/app/controllers/AdminController.php

https://gitlab.com/katakutu/gisgis
PHP | 480 lines | 385 code | 79 blank | 16 comment | 36 complexity | ee4bfb7d20a050625d210ae5bd13acb2 MD5 | raw file
  1. <?php
  2. class AdminController extends BaseController {
  3. public function login_proses()
  4. {
  5. $username = Input::get('username');
  6. $password = md5(Input::get('password'));
  7. $admin = DB::table('admin')
  8. ->where('username', '=', $username)
  9. ->where('password', '=', $password)
  10. ->first();
  11. if(count($admin) == 1)
  12. {
  13. Session::put('level', 'admin');
  14. Session::put('id', $admin->id);
  15. return Redirect::to('/admin/tulis_artikel');
  16. }
  17. else
  18. {
  19. return Redirect::to('/login');
  20. }
  21. }
  22. public function tulis_artikel()
  23. {
  24. return View::make('admin.tulis_artikel');
  25. }
  26. public function simpan_artikel()
  27. {
  28. $kategori = Input::get('kategori');
  29. $judul = Input::get('judul');
  30. $gambar = Input::file('gambar')->getRealPath();
  31. $summary = Input::get('summary');
  32. $content = Input::get('content');
  33. $urutan = NULL;
  34. //jika profil, ambil urutan terakhir yang ada
  35. if($kategori=='profil')
  36. {
  37. $data = DB::table('konten')
  38. ->select(DB::raw('MAX(urutan) as urutan_max'))
  39. ->where('kategori', '=', 'profil')
  40. ->first()->urutan_max;
  41. $urutan = $data + 1;
  42. }
  43. //define filename
  44. $filename = md5(time());
  45. //create new artikel
  46. $artikel = New Kontenmodel;
  47. $artikel->kategori = $kategori;
  48. $artikel->id_admin = Session::get('id');
  49. $artikel->views = 0;
  50. $artikel->judul = $this->escape_quote($judul);
  51. $artikel->gambar = $filename.'.jpg';
  52. $artikel->slug = $this->make_slug($judul);
  53. $artikel->content = $content;
  54. $artikel->summary = $summary;
  55. $artikel->date = date('Y-m-d');
  56. $artikel->urutan = $urutan;
  57. $artikel->save();
  58. Image::make(Input::file('gambar')->getRealPath())->grab(100, 100)->save('source/thumb/100x100/'.$filename.'.jpg');
  59. Image::make(Input::file('gambar')->getRealPath())->grab(400, 250)->save('source/thumb/410x250/'.$filename.'.jpg');
  60. return Redirect::to('admin/'.$kategori);
  61. }
  62. public function profil()
  63. {
  64. $data['profil_array'] = $this->ambil_konten('profil', 'urutan');
  65. return View::make('admin.profil', $data);
  66. }
  67. public function agenda()
  68. {
  69. $data['agenda_array'] = $this->ambil_konten('agenda', 'id', 'DESC');
  70. return View::make('admin.agenda', $data);
  71. }
  72. public function berita()
  73. {
  74. $data['berita_array'] = $this->ambil_konten('berita', 'updated_at', 'DESC');
  75. return View::make('admin.berita', $data);
  76. }
  77. public function delete_konten($id)
  78. {
  79. $konten = DB::table('konten')->where('id', '=', $id)->first();
  80. $kategori = $konten->kategori;
  81. DB::table('konten')
  82. ->where('id', '=', $id)
  83. ->delete();
  84. return Redirect::to('admin/'.$kategori);
  85. }
  86. public function edit_konten($id)
  87. {
  88. $data['konten'] = DB::table('konten')
  89. ->where('id', '=', $id)
  90. ->first();
  91. return View::make('admin.edit_konten', $data);
  92. }
  93. public function update_artikel()
  94. {
  95. $id = Input::get('id');
  96. $judul = $this->escape_quote(Input::get('judul'));
  97. $thumb = Input::file('gambar');
  98. $summary = Input::get('summary');
  99. $content = Input::get('content');
  100. $id_author = Session::get('id');
  101. $date = date('Y-m-d');
  102. $slug = $this->make_slug(Input::get('judul'));
  103. DB::table('konten')
  104. ->where('id', '=', $id)
  105. ->update(array(
  106. 'judul'=>$judul,
  107. 'summary'=>$summary,
  108. 'content'=>$content,
  109. 'id_admin'=>$id_author,
  110. 'date'=>$date,
  111. 'slug'=>$slug
  112. ));
  113. if(!empty($thumb) && strlen($thumb)>0)
  114. {
  115. //delete old thumb, upload new thumb, update thumb in database
  116. $old_thumb = DB::table('konten')
  117. ->where('id', '=', $id)
  118. ->first()->gambar;
  119. if(file_exists('source/thumb/100x100/'.$old_thumb))
  120. {
  121. unlink('source/thumb/100x100/'.$old_thumb);
  122. unlink('source/thumb/410x250/'.$old_thumb);
  123. }
  124. //define filename
  125. $filename = md5(time());
  126. Image::make(Input::file('gambar')->getRealPath())->grab(100, 100)->save('source/thumb/100x100/'.$filename.'.jpg');
  127. Image::make(Input::file('gambar')->getRealPath())->grab(400, 250)->save('source/thumb/410x250/'.$filename.'.jpg');
  128. //update thumb in database
  129. DB::table('konten')
  130. ->where('id', '=', $id)
  131. ->update(array('gambar'=>$filename.'.jpg'));
  132. }
  133. //ambil kategori konten
  134. $konten = DB::table('konten')->where('id', '=', $id)->first();
  135. $kategori = $konten->kategori;
  136. return Redirect::to('admin/'.$kategori);
  137. }
  138. public function download()
  139. {
  140. $data['download_array'] = DB::table('download')->get();
  141. return View::make('admin.download', $data);
  142. }
  143. public function tambah_download()
  144. {
  145. $filename = Input::file('files')->getClientOriginalName();
  146. $download = New Downloadmodel;
  147. $download->deskripsi = Input::get('deskripsi');
  148. $download->filename = $filename;
  149. $download->save();
  150. Input::file('files')->move('source/uploads',Input::file('files')->getClientOriginalName());
  151. return Redirect::to('admin/download');
  152. }
  153. public function galeri()
  154. {
  155. $data['galeri_array'] = DB::table('galeri')->get();
  156. return View::make('admin.galeri', $data);
  157. }
  158. public function tambah_galeri()
  159. {
  160. $filename = md5(time());
  161. $galeri = New Galerimodel;
  162. $galeri->deskripsi = Input::get('deskripsi');
  163. $galeri->filename = $filename.'.jpg';
  164. $galeri->save();
  165. Image::make(Input::file('gambar')->getRealPath())->grab(100, 100)->save('source/thumb/100x100/'.$filename.'.jpg');
  166. Image::make(Input::file('gambar')->getRealPath())->grab(400, 250)->save('source/thumb/410x250/'.$filename.'.jpg');
  167. Image::make(Input::file('gambar')->getRealPath())->resize(960, null, true)->save('source/thumb/w960/'.$filename.'.jpg');
  168. return Redirect::to('admin/galeri');
  169. }
  170. public function delete_download($id)
  171. {
  172. $filename = DB::table('download')
  173. ->where('id', '=', $id)
  174. ->first()->filename;
  175. DB::table('download')
  176. ->where('id', '=', $id)
  177. ->delete();
  178. if(file_exists('source/thumb/w960/'.$filename))
  179. {
  180. unlink('source/uploads'.$filename);
  181. }
  182. return Redirect::to('admin/download');
  183. }
  184. public function delete_galeri($id)
  185. {
  186. $filename = DB::table('galeri')
  187. ->where('id', '=', $id)
  188. ->first()->filename;
  189. DB::table('galeri')
  190. ->where('id', '=', $id)
  191. ->delete();
  192. if(file_exists('source/thumb/w960/'.$filename))
  193. {
  194. unlink('source/thumb/w960/'.$filename);
  195. }
  196. if(file_exists('source/thumb/100x100/'.$filename))
  197. {
  198. unlink('source/thumb/100x100/'.$filename);
  199. }
  200. if(file_exists('source/thumb/410x250/'.$filename))
  201. {
  202. unlink('source/thumb/410x250/'.$filename);
  203. }
  204. return Redirect::to('admin/galeri');
  205. }
  206. public function ubah_password()
  207. {
  208. $data['admin'] = DB::table('admin')->where('id', '=', Session::get('id'))->first();
  209. return View::make('admin.ubah_password', $data);
  210. }
  211. public function update_password()
  212. {
  213. $username = Input::get('username');
  214. $old_password = md5(Input::get('password_lama'));
  215. $new_password = md5(Input::get('password_baru'));
  216. $jumlah = DB::table('admin')
  217. ->where('id', '=', Session::get('id'))
  218. ->where('password', '=', $old_password)
  219. ->get();
  220. DB::table('admin')
  221. ->where('id', '=', Session::get('id'))
  222. ->where('password', '=', $old_password)
  223. ->update(array(
  224. 'username'=>$username,
  225. 'password'=>$new_password
  226. ));
  227. if($jumlah==0)
  228. {
  229. $data['pesan'] = "Password lama anda salah, data tidak berhasil di ubah.";
  230. }
  231. else
  232. {
  233. $data['pesan'] = "Data berhasil di perbaharui.";
  234. }
  235. $data['admin'] = DB::table('admin')->where('id', '=', Session::get('id'))->first();
  236. return View::make('admin.ubah_password', $data);
  237. }
  238. public function data_admin()
  239. {
  240. $data['admin'] = DB::table('admin')->get();
  241. return View::make('admin.data_admin', $data);
  242. }
  243. public function simpan_admin()
  244. {
  245. $username = Input::get('username');
  246. $password = md5(Input::get('password'));
  247. DB::table('admin')->insert(
  248. array(
  249. 'username'=>$username,
  250. 'password'=>$password
  251. )
  252. );
  253. return Redirect::to('admin/admin');
  254. }
  255. public function delete_admin($id)
  256. {
  257. DB::table('admin')->where('id', '=', $id)->delete();
  258. return Redirect::to('admin/admin');
  259. }
  260. public function hubungi_kami()
  261. {
  262. $data['hubungi_kami'] = DB::table('konten')->where('kategori', '=', 'hubungi_kami')->first();
  263. return View::make('admin.hubungi_kami', $data);
  264. }
  265. public function simpan_hubungi_kami()
  266. {
  267. $judul = Input::get('judul');
  268. $konten = Input::get('content');
  269. DB::table('konten')->where('kategori', '=', 'hubungi_kami')
  270. ->update(array(
  271. 'judul'=>$judul,
  272. 'date'=>date('Y-m-d'),
  273. 'content'=>$konten
  274. ));
  275. $data['pesan'] = "Data berhasil di simpan";
  276. $data['hubungi_kami'] = DB::table('konten')->where('kategori', '=', 'hubungi_kami')->first();
  277. return View::make('admin.hubungi_kami', $data);
  278. }
  279. public function up_konten($id)
  280. {
  281. //ambil kategori konten
  282. $konten = DB::table('konten')->where('id', '=', $id)->first();
  283. $kategori = $konten->kategori;
  284. $urutan = $konten->urutan;
  285. //periksa apakah ini adalah urutan teratas atau bukan
  286. $konten_atas = DB::table('konten')
  287. ->where('kategori', '=', $kategori)
  288. ->where('urutan', '<', $urutan)
  289. ->count();
  290. if($konten_atas > 0)
  291. {
  292. //jika ada yang diatasnya, tukar urutannya
  293. $konten_atas = DB::table('konten')
  294. ->where('kategori', '=', $kategori)
  295. ->where('urutan', '<', $urutan)
  296. ->orderBy('urutan', 'DESC')
  297. ->first();
  298. $id_konten_atas = $konten_atas->id;
  299. $urutan_konten_atas = $konten_atas->urutan;
  300. DB::table('konten')
  301. ->where('id', '=', $id_konten_atas)
  302. ->update(array(
  303. 'urutan'=>$urutan
  304. ));
  305. DB::table('konten')
  306. ->where('id', '=', $id)
  307. ->update(array(
  308. 'urutan'=>$urutan_konten_atas
  309. ));
  310. }
  311. return Redirect::to('admin/'.$kategori);
  312. }
  313. public function down_konten($id)
  314. {
  315. //ambil kategori konten
  316. $konten = DB::table('konten')->where('id', '=', $id)->first();
  317. $kategori = $konten->kategori;
  318. $urutan = $konten->urutan;
  319. //periksa apakah ini adalah urutan teratas atau bukan
  320. $konten_bawah = DB::table('konten')
  321. ->where('kategori', '=', $kategori)
  322. ->where('urutan', '>', $urutan)
  323. ->count();
  324. if($konten_bawah > 0)
  325. {
  326. //jika ada yang diatasnya, tukar urutannya
  327. $konten_bawah = DB::table('konten')
  328. ->where('kategori', '=', $kategori)
  329. ->where('urutan', '>', $urutan)
  330. ->orderBy('urutan', 'ASC')
  331. ->first();
  332. $id_konten_bawah = $konten_bawah->id;
  333. $urutan_konten_bawah = $konten_bawah->urutan;
  334. DB::table('konten')
  335. ->where('id', '=', $id_konten_bawah)
  336. ->update(array(
  337. 'urutan'=>$urutan
  338. ));
  339. DB::table('konten')
  340. ->where('id', '=', $id)
  341. ->update(array(
  342. 'urutan'=>$urutan_konten_bawah
  343. ));
  344. }
  345. return Redirect::to('admin/'.$kategori);
  346. }
  347. //=========================================================================================================================
  348. // PRIVATE FUNCTION
  349. //=========================================================================================================================
  350. private function ambil_konten($kategori, $orderby='id', $urutan='ASC')
  351. {
  352. $konten_array = DB::table('konten')
  353. ->where('kategori', '=', $kategori)
  354. ->orderBy($orderby, $urutan)
  355. ->get();
  356. foreach($konten_array as $key=>$value)
  357. {
  358. $konten_array[$key]->date = $this->parse_date($value->date);
  359. }
  360. return $konten_array;
  361. }
  362. private function parse_date($date)
  363. {
  364. $list = explode('-', $date);
  365. $bulan =
  366. $tanggal = $list[2];
  367. $tahun = $list[0];
  368. if($list[1]==1){$bulan = 'Januari';}
  369. else if($list[1]==2){$bulan = 'Febuari';}
  370. else if($list[1]==3){$bulan = 'Maret';}
  371. else if($list[1]==4){$bulan = 'April';}
  372. else if($list[1]==5){$bulan = 'Mei';}
  373. else if($list[1]==6){$bulan = 'Juni';}
  374. else if($list[1]==7){$bulan = 'Juli';}
  375. else if($list[1]==8){$bulan = 'Agustus';}
  376. else if($list[1]==9){$bulan = 'September';}
  377. else if($list[1]==10){$bulan = 'Oktober';}
  378. else if($list[1]==11){$bulan = 'November';}
  379. else if($list[1]==12){$bulan = 'Desember';}
  380. return $tanggal.' '.$bulan.' '.$tahun;
  381. }
  382. private function make_slug($judul)
  383. {
  384. $slug = strtolower($judul);
  385. $slug = str_replace('"', '', $slug);
  386. $slug = str_replace("'", "", $slug);
  387. $slug = str_replace('-', '', $slug);
  388. $slug = str_replace(' ', '-', $slug);
  389. $slug = str_replace(':', '', $slug);
  390. $slug = str_replace('(', '', $slug);
  391. $slug = str_replace(')', '', $slug);
  392. $slug = str_replace('?', '', $slug);
  393. return $slug;
  394. }
  395. private function escape_quote($text)
  396. {
  397. $slug = str_replace('"', "'", $text);
  398. return $slug;
  399. }
  400. }