File: D:/HostingSpaces/SBogers10/rentman.komma.pro/app/controllers/BaseController.php
<?php
use Illuminate\Routing\Controller;
class BaseController extends Controller
{
public $languageService;
public function __construct()
{
$this->languageService = \App::make('Komma\LanguageService');
$this->languageService->setLanguage();
$this->languageService->checkRouteWithSetLanguage();
$this->setWebsiteConfig();
$this->loadTranslations();
}
public function setCurrentLanguage(){
$inputLanguage = '';
if(Input::has('lang')){
$inputLanguage = Input::get('lang');
$this->languageService->setCurrentLanguage($inputLanguage);
if($inputLanguage != 'en') \Session::put('currency', 'eur');
}
}
public function loadTranslations(){
$lang = $this->languageService->getCurrentLanguageId();
$translations = \Komma\Kms\Translations\Models\Translation::where('language_id', $lang)
->select('code_name', 'translation')
->get();
$translationObject = (object)[];
foreach ($translations as $translation){
$codename = $translation->code_name;
$translationObject->$codename = $translation->translation;
}
View::share('kommaLang', $translationObject);
}
public function setCurrency(){
$currency = 'eur';
if(Input::has('currency')){
$currency = Input::get('currency');
\Session::put('currency', $currency);
}
}
public function setWebsiteConfig(){
$config = \Komma\Kms\WebsiteConfig\Model\WebsiteConfig::all();
foreach ($config as $setting){
\Config::set('business.'.$setting->code_name, $setting->value);
}
}
public function setCurrentLanguageByRoute(){
$this->languageService->setCurrentLanguage(\Request::segment(1));
}
public function emailAdministrator($exception, $code)
{
//Check if we exclude the email for the current url
if($this->checkExcludedErrors($code)) return false;
$mailer = \App::make('Komma\Mailers\Mailer');
$mailer->sendTo(\Config::get('business.admin_emails'), 'Fout Code ' . $code, 'emails/error',
[
'code' => $code,
'stack' => $exception->__toString(),
'path' => \Request::path()
]);
$mailer->sendTo('support@rentman.nl', 'Fout Code ' . $code, 'emails/error',
[
'code' => $code,
'stack' => $exception->__toString(),
'path' => \Request::path()
]);
}
public function abortPage($type = 404)
{
$view = \View::make('layouts.pages.'.$type)->render();
return \Response::make($view, $type);
}
public function checkExcludedErrors($code){
//if($code == 500) return false;
if($code == 500 && \Request::segment(1)) //Optional error if project images in kms give an error
{
switch (\Request::segment(2))
{
case 'posts':
case 'projects':
case 'services':
case 'reference':
return true;
default:
break;
}
if(strpos(\Request::segment(2),'-blocks')) return true;
}
if($code == 404) return true;
//check if last segments starts with tel
$segments = Request::segments();
if(substr(end($segments), 0, 4)=== 'tel:') return true;
if(substr(end($segments), 0, 2)=== 'wp') return true;
if(end($segments) == ').html(msg[key][0]).addClass(') return true;
if(end($segments) == '],_default:k.htmlSerialize') return true;
if(end($segments) == ',data:b}).done(function(a){e=arguments,g.html(d') return true;
if(end($segments) == ').length,k.htmlSerialize=!!b.getElementsByTagName(') return true;
if(end($segments) == ').length,k.html5Clone=') return true;
if(end($segments) == ',shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),') return true;
switch(\Request::segment(1)){
case 'xmlrpc.php':
case 'wp-content':
case 'kms':
case 'apple-touch-icon.png':
case 'wp-login.php':
case 'wp-admin':
case 'wp':
case 'wordpress':
case 'administrator':
case 'www.googletagmanager.com':
case 'autodiscover':
case 'browserconfig.xml':
case 'sql':
case 'mysql':
case 'phpmyadmin':
case 'editor':
case 'manage':
case 'admin':
case 'FCK':
case 'FCKeditor':
return true;
default:
return false;
}
}
}