Current File : /home/masbinta/public_html/core/app/Http/Controllers/Admin/SitemapController.php |
<?php
namespace App\Http\Controllers\Admin;
use App\Models\Sitemap;
use App\Models\Language;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Spatie\Sitemap\SitemapGenerator;
class SitemapController extends Controller
{
public $lang;
public function __construct()
{
$this->lang = Language::where('is_default', 1)->first();
}
public function index(Request $request)
{
$data['langs'] = Language::all();
$data['sitemaps'] = Sitemap::orderBy('id', 'DESC')->paginate(10);
return view('admin.settings.sitemap.sitemap', $data);
}
public function add()
{
return view('admin.settings.sitemap.add');
}
public function download(Request $request) {
return response()->download('assets/sitemaps/'.$request->filename);
}
public function store(Request $request)
{
$data = new Sitemap();
$input = $request->all();
$filename = 'sitemap' . uniqid() . '.xml';
SitemapGenerator::create($request->sitemap_url)->writeToFile('assets/sitemaps/' . $filename);
$input['filename'] = $filename;
$input['sitemap_url'] = $request->sitemap_url;
$data->fill($input)->save();
$notification = array(
'messege' => 'Sitemap Generate Successfully',
'alert' => 'success'
);
return redirect(route('admin.sitemap.index') . '?language=' . $this->lang->code)->with('notification', $notification);
}
public function delete($id)
{
$sitemap = Sitemap::find($id);
@unlink('assets/sitemaps/' . $sitemap->filename);
$sitemap->delete();
$notification = array(
'messege' => 'Sitemap file deleted successfully!',
'alert' => 'success'
);
return redirect()->back()->with('notification', $notification);
}
}