<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Galeri;
use Carbon\Carbon;
use Image;
use File;
use App\Models\UserLog;
use Auth;
class GaleriController extends Controller
{
public $path;
public $dimensions;
public function __construct()
{
//DEFINISIKAN PATH
$this->path = public_path('images/galeri');
//DEFINISIKAN DIMENSI
$this->dimensions = [
['980','380'],
['190','90']
];
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$title = "Galeri";
$link = "galeri";
$s = '';
$page = 1;
if(isset($_GET['s'])){
$s = $_GET['s'];
}
if(isset($_GET['page'])){
$page = $_GET['page'];
}
$datas = Galeri::where('image','like','%'.$s.'%')->orWhere('caption','like','%'.$s.'%')->orderBy('order_index','ASC')->paginate(10);
$datas->appends($_GET);
$no = 1*$page*10-10+1;
return view('galeri.index',compact('title','parent','link','datas','no'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$title = "Tambah Data Galeri";
$link = "galeri";
$parent = "Galeri";
return view('galeri.create',compact('title','parent','link'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
ini_set('memory_limit', '256M');
$this->validate($request, [
'image' => 'required|image|mimes:jpg,png,jpeg'
]);
if (!File::isDirectory($this->path)) {
File::makeDirectory($this->path);
}
$oi = Galeri::count();
$file = $request->file('image');
$fileName = str_replace(' ', '-', $request->title).".".$request->image->getClientOriginalExtension();
Image::make($file)->save($this->path . '/' . $fileName);
foreach ($this->dimensions as $row) {
$canvas = Image::canvas($row[0], $row[1]);
$resizeImage = Image::make($file)->resize($row[0], $row[1], function($constraint) {
$constraint->aspectRatio();
});
$canvas->insert($resizeImage, 'center');
$fileName1 = str_replace(' ', '-', $request->title)."-".$row[0]."x".$row[1].".".$request->image->getClientOriginalExtension();
$canvas->save($this->path . '/' . $fileName1);
}
try {
$data = new Galeri;
// $image = str_replace(' ', '-', $request->title).".".$request->image->getClientOriginalExtension();
// $request->image->move($this->path,$image);
$data->title = $request->title;
$data->image = $fileName;
$data->caption = $request->caption;
$data->order_index = $oi++;
$data->save();
$msg = 'Berhasil menambah data galeri dengan judul gambar '.$data->title;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('galeri')->with('success_message', $msg);
} catch (Exception $e) {
return redirect('galeri')->with('error_message', 'Gagal menambah Data. <br> Error : '.$e->errorInfo[2]);
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$title = "Ubah Data Galeri";
$link = "galeri";
$parent = "Galeri";
$data = Galeri::find($id);
return view('galeri.edit',compact('title','parent','link','data'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$data = Galeri::find($id);
$fileName = $data->image;
if($request->hasFile('image')){
$this->validate($request, [
'image' => 'required|image|mimes:jpg,png,jpeg'
]);
if (!File::isDirectory($this->path)) {
File::makeDirectory($this->path);
}
$oi = Galeri::count();
$file = $request->file('image');
$fileName = str_replace(' ', '-', $request->title).".".$request->image->getClientOriginalExtension();
Image::make($file)->save($this->path . '/' . $fileName);
foreach ($this->dimensions as $row) {
$canvas = Image::canvas($row[0], $row[1]);
$resizeImage = Image::make($file)->resize($row[0], $row[1], function($constraint) {
$constraint->aspectRatio();
});
$canvas->insert($resizeImage, 'center');
$fileName1 = str_replace(' ', '-', $request->title)."-".$row[0]."x".$row[1].".".$request->image->getClientOriginalExtension();
$canvas->save($this->path . '/' . $fileName1);
}
}
try {
// $image = str_replace(' ', '-', $request->title).".".$request->image->getClientOriginalExtension();
// $request->image->move($this->path,$image);
$data->title = $request->title;
$data->image = $fileName;
$data->caption = $request->caption;
$data->order_index = $oi++;
$data->save();
$msg = 'Berhasil mengubah data galeri dengan judul gambar '.$data->title;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('galeri')->with('success_message', $msg);
} catch (Exception $e) {
return redirect('galeri')->with('error_message', 'Gagal mengubah Data. <br> Error : '.$e->errorInfo[2]);
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
try {
$data = Galeri::find($id);
$data->delete();
$msg = 'Berhasil menghapus data galeri '.$data->title;
UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
return redirect('galeri')->with('success_message', $msg);
} catch (Exception $e) {
return redirect('galeri')->with('error_message', 'Gagal menghapus Data');
}
}
public function order($id)
{
$galeri = Galeri::find($id);
if($_GET['order'] == 'up'){
$galeri->update([
'order_index'=>$galeri->order_index-1
]);
} else if($_GET['order'] == 'down'){
$galeri->update([
'order_index'=>$galeri->order_index+1
]);
}
return redirect()->back();
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]