ajax()) { $data = SitesModel::where('user_id', auth()->user()->id)->select('url','is_language','created_at','is_url_category','id','is_status','is_post_price','is_delivery_time','is_word_limit'); return Datatables::of($data) ->addIndexColumn() ->addColumn('title-post', function($row){ $text = '

' . $row->url . '

Bahasa: ' . ucfirst($row->is_language) . ' - ' . date('j F Y', strtotime($row->created_at)) . '

' . $row->is_url_category . '

'; return $text; }) ->addColumn('language', function($row){ if (preg_match('/^indonesia/i', $row->is_language)) { return ' Indonesia '; } else { return ' English '; } }) ->addColumn('is_status', function($row){ if ($row->is_status == GlobalEnum::isSiteActive) { return 'Aktif'; } elseif($row->is_status == GlobalEnum::isSiteInReview) { return 'Dalam review'; } elseif($row->is_status == GlobalEnum::isSiteNotActive) { return 'Tidak aktif'; } elseif($row->is_status == GlobalEnum::isSiteRejected) { return 'Ditolak'; } elseif($row->is_status == GlobalEnum::isSiteDeactivated) { return 'Dimatikan'; } }) ->addColumn('post_price', function($row){ return 'Rp. ' . number_format($row->is_post_price, 0, ',', '.'); }) ->addColumn('delivery_time', function($row){ return $row->is_delivery_time . ' Hari'; }) ->addColumn('word_limit', function($row){ return $row->is_word_limit . ' Kata'; }) ->rawColumns(['title-post','language','is_status','post_price','delivery_time','word_limit']) ->filter(function ($query) use ($request) { if ($request->has('search')) { $search = $request->get('search')['value']; $filterCategory = explode('|', $search); if($filterCategory[0] === 'status') { if(!empty($filterCategory[1])) { $query->where('is_status', '=', $filterCategory[1]); } else { $query->get(); } } elseif($filterCategory[0] === 'sites') { if(!empty($filterCategory[1])) { $query->where('url', 'LIKE', "%$filterCategory[1]%"); } else { $query->get(); } } } }) ->make(true); } $data = [ 'subtitle' => 'Semua Sites', 'button' => true, 'module' => [ 'url' => route('sites.create'), 'name' => 'Tambah baru' ] ]; return view('seller::sites.index', compact('data')); } public function create() { $data = [ 'subtitle' => 'Tambah Baru' ]; $getNicheCategory = NicheWebsite::where('is_status', 1)->get(); return view('seller::sites.add', compact('data', 'getNicheCategory')); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'url' => 'required', 'description' => 'required', 'is_role' => 'required', 'is_type' => 'required', 'is_language' => 'required', 'is_post_price' => 'required', 'is_delivery_time' => 'required', 'is_word_limit' => 'required', 'is_post_sample' => 'required', ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $input = $request->all(); $post = new SitesModel([ 'id' => Str::uuid(), 'user_id' => user()['id'], 'url' => $input['url'], // Membersihkan input judul menggunakan Purifier 'description' => clean($input['description']), // Membersihkan input deskripsi menggunakan Purifier 'is_role' => $input['is_role'], 'is_type' => $input['is_type'], 'is_language' => $input['is_language'], 'is_post_price' => $input['is_post_price'], 'is_delivery_time' => $input['is_delivery_time'], 'is_content_included' => !empty($input['is_content_included']) ? $input['is_content_included'] : 0, 'is_content_price' => !empty($input['is_content_price']) ? $input['is_content_price'] : null, 'is_word_limit' => $input['is_word_limit'], 'is_post_sample' => $input['is_post_sample'], 'is_url_category' => implode(',' ,$input['is_url_category']), // Membersihkan input kategori menggunakan Purifier 'is_status' => 2, ]); $check = SitesModel::where('url', $input['url'])->count(); if ($check == 0) { if ($post->save()) { return redirect()->route('sites')->with('swal', swal_alert('success', 'Anda berhasil menambahkan data baru, Data akan segera diproses oleh administrator')); } else { return redirect()->route('sites')->with('swal', swal_alert('error', 'Terjadi kesalahan pada sistem!')); } } else { return redirect()->route('sites')->with('swal', swal_alert('error', 'Galat! Ditemukan data yang sudah ada.')); } } public function edit($id) { $data = [ 'subtitle' => 'Edit', ]; $getSitesInfo = SitesModel::find($id); $getNicheCategory = NicheWebsite::where('is_status', 1)->get(); return view('seller::sites.edit', compact('data', 'getNicheCategory', 'getSitesInfo')); } public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'url' => 'required', 'description' => 'required', 'is_role' => 'required', 'is_type' => 'required', 'is_language' => 'required', 'is_post_price' => 'required', 'is_delivery_time' => 'required', 'is_word_limit' => 'required', 'is_post_sample' => 'required', ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $input = $request->all(); $sites = SitesModel::find($id); if($sites) { $sites->url = $input['url']; $sites->description = clean($input['description']); $sites->is_role = $input['is_role']; $sites->is_type = $input['is_type']; $sites->is_language = $input['is_language']; $sites->is_post_price = $input['is_post_price']; $sites->is_delivery_time = $input['is_delivery_time']; $sites->is_content_included = !empty($input['is_content_included']) ? $input['is_content_included'] : 0; $sites->is_content_price = !empty($input['is_content_price']) ? $input['is_content_price'] : null; $sites->is_word_limit = $input['is_word_limit']; $sites->is_post_sample = $input['is_post_sample']; $sites->is_url_category = implode(',' ,$input['is_url_category']); $sites->is_status = 2; $sites->save(); return redirect()->route('sites')->with('swal', swal_alert('success', 'Berhasil memperbarui site.')); } else { return redirect()->route('sites')->with('swal', swal_alert('error', 'Site tidak ditemukan.')); } } public function detail($id) { $check = SitesModel::where('id', $id)->first(); if($check) { $detail = [ 'url' => removeUrlPrefix($check->url), 'secure' => isUrlSecure($check->url), 'description' => $check->description, 'is_role' => $check->is_role == GlobalEnum::isSiteOwner ? 'Owner' : 'Member', 'is_type' => $check->is_type == GlobalEnum::isSiteTypeDoFollow ? 'Do-Follow' : 'No-Follow', 'is_language' => ucfirst($check->is_language), 'is_post_price' => rupiah_changer($check->is_post_price), 'is_delivery_time' => $check->is_delivery_time, 'is_word_limit' => $check->is_word_limit, 'is_post_sample' => $check->is_post_sample, 'is_content_included' => $check->is_content_included == 1 ? 'Ya' : 'Tidak', 'is_content_price' => rupiah_changer($check->is_content_price), 'is_url_category' => empty($check->is_url_category) ? '-' : $check->is_url_category, 'is_page_authority' => $check->is_page_authority, 'is_domain_authority' => $check->is_domain_authority, 'is_seller' => user()->name, ]; return $detail; } } public function destroy($id) { $sites = SitesModel::find($id); if($sites) { $sites->delete(); return redirect()->route('sites')->with('swal', swal_alert('success', 'Berhasil menghapus data.')); } else { return redirect()->route('sites')->with('swal', swal_alert('error', 'Site tidak ditemukan.')); } } // domain public function domain(Request $request) { if ($request->ajax()) { $data = DomainModel::where('user_id', auth()->user()->id)->select('url','user_id','is_url_from_website','created_at','is_price','id','is_status','is_delivery_time'); return Datatables::of($data) ->addIndexColumn() ->addColumn('title-post', function($row){ if($row->is_url_from_website != null) { $text = '

' . removeUrlPrefix($row->is_url_from_website) . '

'; } else { $text = '

' . removeUrlPrefix($row->url) . '

'; } return $text; }) ->addColumn('is_status', function($row){ if ($row->is_status == 1) { return 'Aktif'; } elseif($row->is_status == 2) { return 'Menunggu'; } elseif($row->is_status == 3) { return 'Dalam Review'; } elseif($row->is_status == 4) { return 'Ditolak'; } }) ->addColumn('post_price', function($row){ return 'Rp. ' . number_format($row->is_price, 0, ',', '.'); }) ->addColumn('delivery_time', function($row){ return $row->is_delivery_time . ' Hari'; }) ->rawColumns(['title-post','author','is_status','post_price','delivery_time']) ->filter(function ($query) use ($request) { if ($request->has('search')) { $search = $request->get('search')['value']; $filterCategory = explode('|', $search); if($filterCategory[0] === 'status') { if(!empty($filterCategory[1])) { $query->where('is_status', '=', $filterCategory[1]); } else { $query->get(); } } elseif($filterCategory[0] === 'sites') { if(!empty($filterCategory[1])) { if($query->where('url', 'LIKE', "%$filterCategory[1]%")->count() == 0) { $query->where('is_url_from_website', 'LIKE', "%$filterCategory[1]%"); } else { $query->where('url', 'LIKE', "%$filterCategory[1]%"); } } else { $query->get(); } } } }) ->make(true); } $data = [ 'subtitle' => 'Semua Domain', 'button' => true, 'module' => [ 'url' => route('sites.domain.create'), 'name' => 'Tambah baru' ] ]; return view('seller::sites.domain.index', compact('data')); } public function createDomain() { $data = [ 'subtitle' => 'Tambah Baru' ]; $getSiteLists = SitesModel::where('user_id', user()->id)->select('*')->get(); return view('seller::sites.domain.add', compact('data', 'getSiteLists')); } public function storeDomain(Request $request) { $validator = Validator::make($request->all(), [ 'is_price' => 'required', 'is_delivery_time' => 'required', 'is_domain_authority' => 'required', 'is_page_authority' => 'required', ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $input = $request->all(); $post = new DomainModel([ 'id' => Str::uuid(), 'user_id' => user()['id'], 'url' => empty($input['url']) ? null : $input['url'], // Membersihkan input judul menggunakan Purifier 'is_url_from_website' => empty($input['is_url_from_website']) ? null : $input['is_url_from_website'], 'is_price' => $input['is_price'], 'is_delivery_time' => $input['is_delivery_time'], 'is_page_authority' => $input['is_page_authority'], 'is_domain_authority' => $input['is_domain_authority'], 'is_status' => 3 ]); $check = DomainModel::where('user_id', auth()->user()->id)->where('url', $input['url'])->count(); if ($check == 0) { if ($post->save()) { return redirect()->route('sites.domain')->with('swal', swal_alert('success', 'Anda berhasil menambahkan data baru, Data akan segera diproses oleh administrator')); } else { return redirect()->route('sites.domain')->with('swal', swal_alert('error', 'Terjadi kesalahan pada sistem!')); } } else { return redirect()->route('sites.domain')->with('swal', swal_alert('error', 'Galat! Ditemukan data yang sudah ada.')); } } public function editDomain($id) { $data = [ 'subtitle' => 'Edit', ]; $getSitesInfo = DomainModel::find($id); $getSiteLists = SitesModel::where('is_status', GlobalEnum::isSiteActive) ->where('user_id', user()['id'])->get(); return view('admin.app.sites.domain.edit', compact('data', 'getSitesInfo', 'getSiteLists')); } public function updateDomain(Request $request, $id) { $validator = Validator::make($request->all(), [ 'is_price' => 'required', 'is_delivery_time' => 'required', 'is_domain_authority' => 'required', 'is_page_authority' => 'required', ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $input = $request->all(); $sites = DomainModel::find($id); if($sites) { $sites->url = $input['url']; $sites->is_url_from_website = !empty($input['is_url_from_website']) ? $input['is_url_from_website'] : null; $sites->is_price = $input['is_price']; $sites->is_delivery_time = $input['is_delivery_time']; $sites->is_domain_authority = !empty($input['is_domain_authority']) ? $input['is_domain_authority'] : 0; $sites->is_page_authority = !empty($input['is_page_authority']) ? $input['is_page_authority'] : 0; $sites->is_status = $input['is_status']; $sites->save(); return redirect()->route('sites.domain')->with('swal', swal_alert('success', 'Berhasil memperbarui site.')); } else { return redirect()->route('sites.domain')->with('swal', swal_alert('error', 'Site tidak ditemukan.')); } } public function destroyDomain($id) { $sites = DomainModel::find($id); if($sites) { $sites->delete(); return redirect()->route('sites.domain')->with('swal', swal_alert('success', 'Berhasil menghapus data.')); } else { return redirect()->route('sites.domain')->with('swal', swal_alert('error', 'Site tidak ditemukan.')); } } public function detailDomain($id) { $check = DomainModel::where('id', $id)->first(); if($check) { $detail = [ 'url' => empty($check->url) ? '-' : removeUrlPrefix($check->url), 'url_website' => empty($check->is_url_from_website) ? '-' : $check->is_url_from_website, 'is_price' => rupiah_changer($check->is_price), 'secure' => isUrlSecure($check->url), 'is_delivery_time' => $check->is_delivery_time, 'is_page_authority' => $check->is_page_authority, 'is_domain_authority' => $check->is_domain_authority, 'is_seller' => user()->name, ]; return $detail; } } }