pagescontroller
<?php
namespace App\Http\Controllers\Frontend;
use Illuminate\Http\Request;
use Request as Req;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\View;
use App\Languages;
use App\Contacts;
use App\Slides;
use App\Settings;
use App\Pages;
use App\AboutUs;
use App\Homepage;
use App\News;
use App\Jobs;
use App\TeamMember;
use App\Memberships;
use App\ProductsServices;
use App\ProductServiceGallery;
use App\Videos;
use App\Photos;
use App\QualityMember;
use Mail;
use Validator;
use Session;
use App;
use Auth;
use URL;
class PagesController extends Controller
{
public function __construct(Request $request)
{
session_start();
}
/**
* ANA SAYFA
*/
public function index()
{
$data['aboutus'] = AboutUs::first();
$data['products'] = ProductsServices::orderBy("queue")->get();
$data['ps_page'] = Pages::where("page_type", "8")->first();
$data['news_press'] = Pages::where("show_mainpage", "1")->orderBy("queue")->get();
$data['slides'] = Slides::whereNull("deleted_at")->whereNull("video")->orderBy('queue')->get();
$data['video'] = Slides::whereNull("deleted_at")->whereNotNull('video')->first();
$data['memberships'] = Memberships::where("status", "a")->orderBy("queue")->get();
return view('frontend.pages.home', $data);
}
/**
* SAYFA KONTROLÜ VE YÖNLENDİRME
*/
public function controlPage($slug, $slug2 = null, $slug3 = null)
{
# code...
$lang_id = $_SESSION['lang_id'];
$lang = $_SESSION['lang_short'];
if (!is_null($slug3)) {
$page = Pages::where("slug_" . $lang, $slug)->where("status", "a")->whereNull("deleted_at")->first();
//Takım üyesi
$team_member = TeamMember::where("slug", $slug3)->where("status", "a")->first();
$subpage = Pages::where("slug_" . $lang, $slug2)->where("status", "a")->whereNull("deleted_at")->first();
if ($page && $team_member) {
if ($subpage->page_type == '10') {
return $this->team_member_info($page, $subpage, $team_member);
} else {
return redirect()->back();
}
} else {
return redirect()->back();
}
} else if (!is_null($slug2)) {
$page = Pages::where("slug_" . $lang, $slug)->where("status", "a")->whereNull("deleted_at")->first();
//Haber detay mı?
$news = News::where("slug_" . $lang, $slug2)->where("status", "a")->first();
if ($page && $news) {
if ($page->page_type == '2') {
return $this->news_detail($page, $news);
} else {
return redirect()->back();
}
} else {
//Ürün Hizmet detay mı?
$product = ProductsServices::where("status", "a")->where("slug_" . $lang, $slug2)->first();
if ($page && $product) {
if ($page->page_type == '8') {
return $this->product_service_detail($page, $product);
} else {
return redirect()->back();
}
} else {
$subpage = Pages::where("slug_" . $lang, $slug2)->where("status", "a")->with("type")->first();
if ($page && $subpage) {
if ($page->id == $subpage->toppage_id) {
$controller = $subpage->type->template;
return $this->$controller($page, $subpage);
} else {
return redirect()->back();
}
} else {
return redirect()->back();
}
}
}
} else {
$page = Pages::where("slug_" . $lang, $slug)->where("status", "a")->whereNull("deleted_at")->with("type")->first();
$newslug = 'slug_' . $lang;
if ($page) {
if ($page->has_subpage == 1) {
//Ürün Hizmet mi bak
if ($page->page_type == 8) {
$product = ProductsServices::where("status", "a")->orderBy("queue")->first();
return redirect($slug . '/' . $product->$newslug);
} else {
$subpage = Pages::where("toppage_id", $page->id)->with("type")->orderBy("queue")->first();
return redirect($slug . '/' . $subpage->$newslug);
}
} else {
$controller = $page->type->template;
return $this->$controller($page);
}
} else {
return redirect('/');
}
}
}
/**
* HAKKIMIZDA
*/
public function about_us($page, $subpage)
{
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $subpage->$br;
$data['slug'] = $subpage->$sl;
$data['meta_title'] = $subpage->$mt;
$data['meta_keys'] = $subpage->$mk;
$data['meta_desc'] = $subpage->$md;
$data['aboutuspage'] = true;
$data['banner'] = $subpage->banner;
$data['page'] = $subpage;
$data['memberships'] = Memberships::where("status", "a")->orderBy("queue")->get();
return view('frontend.pages.about_us', $data);
}
/**
* KALİTE POLİTİKASI
*/
public function quality_policy($page, $subpage)
{
$request = new Request();
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $subpage->$br;
$data['slug'] = $subpage->$sl;
$data['bread2'] = $page->$br;
$data['slug2'] = $page->$sl;
$data['meta_title'] = $subpage->$mt;
$data['meta_keys'] = $subpage->$mk;
$data['meta_desc'] = $subpage->$md;
$data['banner'] = $subpage->banner;
$data['page'] = $subpage;
$data['quality_member'] = QualityMember::first();
return view('frontend.pages.quality_policy', $data);
}
/**
* EKİP ÜYELERİ
*/
public function team_members($page, $subpage)
{
$request = new Request();
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $subpage->$br;
$data['slug'] = $subpage->$sl;
$data['bread2'] = $page->$br;
$data['slug2'] = $page->$sl;
$data['meta_title'] = $subpage->$mt;
$data['meta_keys'] = $subpage->$mk;
$data['meta_desc'] = $subpage->$md;
$data['banner'] = $subpage->banner;
$data['page'] = $page;
$data['subpage'] = $subpage;
$data['members'] = TeamMember::where("status","a")->orderBy("queue")->get();
return view('frontend.pages.team_members', $data);
}
/**
* EKİP ÜYESİ DETAY
*/
public function team_member_info($page, $subpage, $info)
{
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$data['bread'] = $info->title;
$data['slug'] = $info->slug;
$data['bread3'] = $page->$br;
$data['slug3'] = $page->$sl;
$data['bread2'] = $subpage->$br;
$data['slug2'] = $subpage->$sl;
$data['meta_title'] = $info->meta_title;
$data['meta_keys'] = $info->meta_keys;
$data['meta_desc'] = $info->meta_desc;
$data['banner'] = $info->banner;
$data['member'] = $info;
return view('frontend.pages.team_member_detail', $data);
}
/**
* HABERLER
*/
public function news($page)
{
$request = new Request();
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $page->$br;
$data['slug'] = $page->$sl;
$data['meta_title'] = $page->$mt;
$data['meta_keys'] = $page->$mk;
$data['meta_desc'] = $page->$md;
$data['banner'] = $page->banner;
$data['page'] = $page;
if (Req::has('date') || Req::has('title') || Req::has('type')) {
$data['all_news'] = News::where("status", "a")->where(function ($q) use ($request, $lang) {
if (Req::has('date') && !is_null(Req::get('date')) && Req::get('date') !== "") {
$date = date('Y-m-d',strtotime(Req::get('date')));
$q->where("news_date", $date);
}
if (Req::has('title')) {
$q->where("title_" . $lang, "like", "%" . Req::get('title') . "%");
}
if (Req::has('type') && (Req::get('type') == 'press' || Req::get('type') == 'article')) {
$q->where("news_type", $_GET['type']);
} else {
$q->where("news_type", "press");
}
})->orderBy("news_date", "DESC")->get();
} else {
$data['all_news'] = News::where("status", "a")->where("news_type", "press")->orderBy("news_date", "DESC")->get();
}
return view('frontend.pages.news', $data);
}
/**
* HABER DETAYI
*/
public function news_detail($page, $news)
{
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $news->$br;
$data['slug'] = $news->$sl;
$data['meta_title'] = $news->$mt;
$data['meta_keys'] = $news->$mk;
$data['meta_desc'] = $news->$md;
$data['bread2'] = $page->$br;
$data['slug2'] = $page->$sl;
$data['banner'] = $news->banner;
$a['viewer'] = $news->viewer + 1;
News::where("id", $news->id)->update($a);
$data['page'] = $page;
$data['news'] = News::where("id", $news->id)->first();
return view('frontend.pages.news_detail', $data);
}
/**
* ÜRÜN HİZMET DETAYI
*/
public function product_service_detail($page, $product)
{
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $product->$br;
$data['slug'] = $product->$sl;
$data['meta_title'] = $product->$mt;
$data['meta_keys'] = $product->$mk;
$data['meta_desc'] = $product->$md;
$data['bread2'] = $page->$br;
$data['slug2'] = $page->$sl;
$data['banner'] = $product->banner;
$data['page'] = $page;
$data['product'] = $product;
$data['galleries'] = ProductServiceGallery::where("ps_id", $product->id)->orderBy("queue")->get();
return view('frontend.pages.product_service_detail', $data);
}
/**
* İLETİŞİM SAYFASI
*/
public function contact($page, $subpage)
{
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $subpage->$br;
$data['slug'] = $subpage->$sl;
$data['meta_title'] = $subpage->$mt;
$data['meta_keys'] = $subpage->$mk;
$data['meta_desc'] = $subpage->$md;
$data['bread2'] = $page->$br;
$data['slug2'] = $page->$sl;
$data['banner'] = $subpage->banner;
$data['page'] = $subpage;
$data['contact'] = Contacts::first();
$data['products'] = ProductsServices::orderBy("queue")->get();
return view('frontend.pages.contact', $data);
}
/**
* KARİYER SAYFASI
*/
public function career($page, $subpage)
{
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $subpage->$br;
$data['slug'] = $subpage->$sl;
$data['meta_title'] = $subpage->$mt;
$data['meta_keys'] = $subpage->$mk;
$data['meta_desc'] = $subpage->$md;
$data['bread2'] = $page->$br;
$data['slug2'] = $page->$sl;
$data['banner'] = $subpage->banner;
$data['page'] = $subpage;
$data['jobs'] = Jobs::where("status", "a")->orderBy("queue")->get();
return view('frontend.pages.career', $data);
}
/**
* İLETİŞİM FORMU GÖNDER
*/
public function contact_post(Request $request)
{
$a['ip'] = $request->ip();
$a['name'] = $request->name;
$a['surname'] = $request->surname;
$a['email'] = $request->email;
$a['phone'] = $request->phone;
$a['department'] = $request->department;
if($request->department == 'Marketing'){
$a['ps'] = $request->ps;
} else {
$a['ps'] = null;
}
$a['msg'] = $request->message;
if($request->department == 'Marketing' || $request->department == 'Pazarlama'){
$mail = Settings::where("slug", "marketing-contact-email")->first()->value;
} else if($request->department == 'Press' || $request->department == 'Basın'){
$mail = Settings::where("slug", "press-contact-email")->first()->value;
} else if($request->department == 'HR' || $request->department == 'İnsan Kaynakları'){
$mail = Settings::where("slug", "hr-contact-email")->first()->value;
} else if($request->department == 'Finance' || $request->department == 'Finans'){
$mail = Settings::where("slug", "finance-contact-email")->first()->value;
} else {
$mail = Settings::where("slug", "contact-email")->first()->value;
}
Mail::send('frontend.email.send_contact', $a, function ($message) use ($mail) {
$message->from('no-reply@keyvan.aero', 'Keyvan Aviation');
$message->to($mail);
$message->subject('İletişim Mesajı');
});
if($_SESSION['lang_short'] == 'tr'){
$mss = 'Mesajınız başarıyla iletilmiştir.';
} else {
$mss = 'Your message has been successfully sended.';
}
$e['success'] = $mss;
return redirect()->back()->with($e);
}
/**
* CV FORMU GÖNDER
*/
public function career_post(Request $request)
{
if ($request->hasFile('cvfile')) {
$mime = $request->file('cvfile')->getClientMimeType();
if ($mime !== 'application/msword' && $mime !== 'application/pdf') {
$e['errors'] = "Lütfen sadece pdf veya word dosyası ekleyiniz.";
return redirect()->back()->withErrors($e)->withInput();
}
$filename = 'cv' . date('-Y-m-d-H-i-s') . '.' . $request->cvfile->getClientOriginalExtension();
$request->cvfile->move(public_path('frontend/cvfiles/'), $filename);
} else {
$e['errors'] = "Lütfen cv dosyası ekleyiniz.";
return redirect()->back()->withErrors($e)->withInput();
}
$a['ip'] = $request->ip();
$a['name'] = $request->name;
$a['email'] = $request->email;
$a['msg'] = $request->message;
$mail = Settings::where("slug", "contact-email")->first()->value;
$attach = public_path('frontend/cvfiles/'.$filename);
Mail::send('frontend.email.send_career', $a, function ($message) use ($mail, $attach) {
$message->from('no-reply@keyvan.aero', 'Keyvan Aviation');
$message->attach($attach);
$message->to($mail);
$message->subject('CV Gönderi Formu');
});
if($_SESSION['lang_short'] == 'tr'){
$mss = 'Özgeçmişiniz başarıyla iletilmiştir.';
} else {
$mss = 'Your CV has been successfully sended.';
}
$e['success'] = $mss;
return redirect()->back()->with($e);
}
/**
* VİDEO GALERİ
*/
public function videos($page)
{
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $page->$br;
$data['slug'] = $page->$sl;
$data['meta_title'] = $page->$mt;
$data['meta_keys'] = $page->$mk;
$data['meta_desc'] = $page->$md;
$data['banner'] = $page->banner;
$data['page'] = $page;
$data['videos'] = Videos::where("status", "a")->whereNotNull('link_'.$lang)->orderBy("queue")->get();
return view('frontend.pages.videos', $data);
}
/**
* FOTOĞRAF GALERİ
*/
public function photos($page)
{
$lang = $_SESSION['lang_short'];
$br = 'title_' . $lang;
$sl = 'slug_' . $lang;
$mt = 'meta_title_' . $lang;
$mk = 'meta_keys_' . $lang;
$md = 'meta_desc_' . $lang;
$data['bread'] = $page->$br;
$data['slug'] = $page->$sl;
$data['meta_title'] = $page->$mt;
$data['meta_keys'] = $page->$mk;
$data['meta_desc'] = $page->$md;
$data['banner'] = $page->banner;
$data['page'] = $page;
$data['photos'] = Photos::where("status", "a")->orderBy("queue")->paginate(12);
return view('frontend.pages.photos', $data);
}
/**
* CHANGE LANGUAGE
*/
public function changeLang($slug)
{
$lang = Languages::where("lang_short", $slug)->first();
if ($lang) {
$_SESSION['lang_short'] = $lang->lang_short;
$_SESSION['lang_id'] = $lang->id;
App::setLocale($lang->lang_short);
} else {
if (!$_SESSION['lang_short']) {
$_SESSION['lang_short'] = 'tr';
$_SESSION['lang_id'] = '1';
App::setLocale('en');
}
}
$slug = 'slug_'.$lang->lang_short;
$prev = str_replace("http://","",url()->previous());
$prev = str_replace("https://","",$prev);
$prev = explode("/",$prev);
$first = array_shift($prev);
if(count($prev) > 0) {
if(count($prev) == 3){
$page = Pages::where(function($q) use ($prev){
$q->orWhere("slug_tr",$prev[0]);
$q->orWhere("slug_en",$prev[0]);
})->where("status","a")->whereNull("deleted_at")->first();
if($page) {
$team_member = TeamMember::where("slug",$prev[2])->where("status", "a")->first();
$subpage = Pages::where(function($q) use ($prev){
$q->orWhere("slug_tr",$prev[1]);
$q->orWhere("slug_en",$prev[1]);
})->where("status", "a")->whereNull("deleted_at")->first();
if ($team_member) {
if ($subpage->page_type == '10') {
return redirect($page->$slug.'/'.$subpage->$slug.'/'.$team_member->slug);
} else {
return redirect('/');
}
} else {
return redirect('/');
}
} else {
return redirect('/');
}
} else if(count($prev) == 2){
$page = Pages::where(function($q) use ($prev){
$q->orWhere("slug_tr",$prev[0]);
$q->orWhere("slug_en",$prev[0]);
})->where("status","a")->whereNull("deleted_at")->first();
if($page) {
$news = News::where(function($q) use ($prev){
$q->orWhere("slug_tr",$prev[1]);
$q->orWhere("slug_en",$prev[1]);
})->where("status", "a")->first();
if ($news) {
if ($page->page_type == '2') {
return redirect($page->$slug.'/'.$news->$slug);
} else {
return redirect()->back();
}
} else {
$product = ProductsServices::where(function($q) use ($prev){
$q->orWhere("slug_tr",$prev[1]);
$q->orWhere("slug_en",$prev[1]);
})->where("status", "a")->first();
if ($product) {
if ($page->page_type == '8') {
return redirect($page->$slug.'/'.$product->$slug);
} else {
return redirect()->back();
}
} else {
$subpage = Pages::where(function($q) use ($prev){
$q->orWhere("slug_tr",$prev[1]);
$q->orWhere("slug_en",$prev[1]);
})->where("status", "a")->with("type")->first();
if ($subpage) {
if ($page->id == $subpage->toppage_id) {
return redirect($page->$slug.'/'.$subpage->$slug);
} else {
return redirect()->back();
}
} else {
return redirect()->back();
}
}
}
} else {
return redirect('/');
}
} else if(count($prev) == 1){
$page = Pages::where(function($q) use ($prev){
$q->orWhere("slug_tr",$prev[0]);
$q->orWhere("slug_en",$prev[0]);
})->where("status","a")->whereNull("deleted_at")->first();
if ($page) {
if ($page->has_subpage == 1) {
//Ürün Hizmet mi bak
if ($page->page_type == 8) {
$product = ProductsServices::where("status", "a")->orderBy("queue")->first();
return redirect($page->$slug.'/'.$product->$slug);
} else {
$subpage = Pages::where("toppage_id", $page->id)->with("type")->orderBy("queue")->first();
return redirect($page->$slug.'/'.$subpage->$slug);
}
} else {
return redirect($page->$slug);
}
} else {
return redirect('/');
}
} else {
return redirect('/');
}
} else {
return redirect('/');
}
}
/**
* SITEMAP
*/
public function sitemap()
{
$d['pages'] = Pages::get();
$d['news'] = News::where("status", "a")->get();
$d['newspage'] = Pages::where("page_type", "6")->first();
return view('frontend.pages.sitemap', $d);
}
}