See file /var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected/controller/BaseController.php


+ Error on line 83

            $this->renderc($template$this->data);

<?php

    Doo
::loadClass('Mobile_Detect');

    function 
test($variable)
    {
        echo 
'<pre>';
        
print_r($variable);
        echo 
'</pre>';
    }

    abstract class 
UserActionType
    
{
        const 
LoadPage 1;
        const 
CallToAction 2;
        const 
Error 3;
    }

    class 
BaseController extends DooController
    
{
        public 
$language 'nl';
        public 
$urls = array();
        public 
$data = array();
        public 
$text = array();
        public 
$text_array = array();
        public 
$errors = array();
        public 
$session;
        public 
$detect;

        function 
__construct() {
            
$this->session Doo::session('ExitGame');

            
$this->data['values'] = array();
            
$this->data['errors'] = array();
            
$this->getLanguage();
            
$this->add_urls_as_values();
            
$this->get_menu_items();

            
$this->detect = new Mobile_Detect();
            
$this->add_value('is_mobile_or_tablet'$this->detect->isMobile() || $this->detect->isTablet());
            
$this->add_value('is_tablet'$this->detect->isTablet());
        }

        function 
render_c($template)
        {
            
$this->add_user_action(UserActionType::LoadPage$template);

            if (!
Doo::session()->first_page)
            {
                
$this->add_value('first_page'1);
                
Doo::session()->first_page true;
            }

            
$current $this->getLanguage();
            
$this->add_value('language'$current);
            
$this->add_value('languageUrls'$this->getLanguageUrls());

            foreach (
$this->text as $language => $labels)
            {
                if (
$language == '*' || $language == $current)
                {
                    foreach (
$labels as $label => $text)
                    {
                        
$this->data['text'][$label] = $text;
                    }
                }
            }

            
$this->data['text_array'] = array();
            foreach (
$this->text_array as $language => $items)
            {
                if (
$language == '*' || $language == $current)
                {
                    foreach (
$items as $i => $item)
                    {
                        
$this->data['text_array'][] = $item;
                    }
                }
            }

            
$this->data['errors'] = $this->errors;

            $this->renderc($template$this->data);


            
Doo::session()->first_hit true;
        }

        function 
add_error($error)
        {
            if (!
in_array($error$this->errors))
            {
                
$this->errors[] = $error;
            }
        }

        function 
add_all_errors($errors)
        {
            if (
is_array($errors))
            {
                foreach (
$errors as $rules)
                {
                    if (
is_array($rules))
                    {
                        foreach (
$rules as $name => $error)
                        {
                            
$this->add_error($error);
                        }
                    }
                }
            }
        }

        function 
has_error($error)
        {
            return 
in_array($error$this->errors);
        }

        function 
has_errors()
        {
            return 
count($this->errors) > 0;
        }

        function 
add_values($array)
        {
            
$this->data['values'] = array_merge($this->data['values'], $array);
        }

        function 
add_value($label$value)
        {
            
$this->data['values'][$label] = $value;
        }

        function 
get_value($label)
        {
            if (
array_key_exists($label$this->data['values']))
            {
                return 
$this->data['values'][$label];
            }
            return 
'';
        }

        function 
get_text($label)
        {
            
$language $this->getLanguage();
            if (
array_key_exists($language$this->text) && array_key_exists($label$this->text[$language]))
            {
                return 
$this->text[$language][$label];
            }
            return 
'';
        }

        function 
add_array($caption$content$language '*')
        {
            
$item = array();
            
$item['caption'] = $caption;
            
$item['content'] = $content;

            if (!
array_key_exists($language$this->text_array))
            {
                
$this->text_array[$language] = array();
            }

            
$this->text_array[$language][] = $item;
        }

        function 
add_text($label$text$language '*')
        {
            if (!
array_key_exists($language$this->text))
            {
                
$this->text[$language] = array();
            }

            
$this->text[$language][$label] = $text;
        }

        function 
getLanguage()
        {
            
$this->data['languages'] = array(
                
'nl' => 'Nederlands',
                
'en' => 'Engels'
            
);

            
$matches = array();
            
$pattern '/'.str_replace('/''\/'Doo::conf()->SUBFOLDER).'(en\/|de\/)(.*)?/';

            if (
preg_match($pattern$_SERVER['REQUEST_URI'].'/'$matches) === 1)
            {
                
$this->language str_replace('/'''$matches[1]);
            }

            
$this->data['language'] = $this->language;
            return 
$this->language;
        }

        function 
getDayAbbreviations($language 'nl'$capital false$php_date false)
        {
            
$abbr = array('ma''di''wo''do''vr''za''zo');
            if (
$language == 'en')
            {
                
$abbr = array('mo''tu''we''th''fr''sa''su');
            }
            if (
$capital)
            {
                for (
$i 0$i count($abbr); $i++)
                {
                    
$abbr[$i] = strtoupper($abbr[$i]);
                }
            }
            if (
$php_date)
            {
                
$last $abbr[6];
                for (
$i 6$i 0$i--)
                {
                    
$abbr[$i] = $abbr[$i 1];
                }
                
$abbr[0] = $last;
            }
            return 
$abbr;
        }

        function 
get_ordinal_abbr($i$language)
        {
            if (
$language == 'nl')
            {
                return 
$i.'e';
            }

            
$mod $i 10;
            
$ten = ($i 100) > 10 && ($i 100) < 20;
            if (
$mod == && !$ten)
            {
                return 
$i.'st';
            }
            else if (
$mod == && !$ten)
            {
                return 
$i.'nd';
            }
            else if (
$mod == && !$ten)
            {
                return 
$i.'rd';
            }
            else
            {
                return 
$i.'th';
            }
        }

        function 
get_month_name($month$language)
        {
            
$names = array('''Januari''Februari''Maart''April''Mei''Juni''Juli''Augustus''September''Oktober''November''December');
            if (
$language != 'nl')
            {
                
$names = array('''January''February''March''April''May''June''July''August''September''October''November''December');
            }
            return 
$names[$month];
        }

        function 
get_menu_items()
        {
            
$this->add_text('Book''Reserveren''nl');
            
$this->add_text('Jobs''Vacatures''nl');
            
$this->add_text('Terms''Algemene voorwaarden''nl');

            
$this->add_text('Book''Book''en');
            
$this->add_text('Jobs''Job openings''en');
            
$this->add_text('Terms''Terms & conditions''en');
        }

        function 
add_urls_as_values()
        {
            
$rootUrl Doo::conf()->APP_URL;
            
$this->add_value('rootUrl'$rootUrl);
            
$this->add_value('imageUrl'$rootUrl.'img/');
            
$this->add_value('priceUrl'$rootUrl.'price/');
            
$this->add_value('adminUrl'$rootUrl.'admin/');

            
// define urls
            
$this->urls['baseUrl']['nl'] = $rootUrl;
            
$this->urls['theHeistUrl']['nl'] = $rootUrl.'the-heist/';
            
$this->urls['theClassicUrl']['nl'] = $rootUrl.'the-classic/';
            
$this->urls['theOutcastUrl']['nl'] = $rootUrl.'the-outcast/';
            
$this->urls['bookUrl']['nl'] = $rootUrl.'reserveren/';
            
$this->urls['bookRoomsUrl']['nl'] = $rootUrl.'reserveren/kamers/';
            
$this->urls['bookDetailsUrl']['nl'] = $rootUrl.'reserveren/gegevens/';
            
$this->urls['bookDoneUrl']['nl'] = $rootUrl.'reserveren/klaar/';
            
$this->urls['faqUrl']['nl'] = $rootUrl.'faq/';
            
$this->urls['contactUrl']['nl'] = $rootUrl.'contact/';
            
$this->urls['contactSentUrl']['nl'] = $rootUrl.'contact/verzonden/';
            
$this->urls['routeUrl']['nl'] = $rootUrl.'route/';
            
$this->urls['termsUrl']['nl'] = $rootUrl.'algemene-voorwaarden/';
            
$this->urls['qrUrl']['nl'] = $rootUrl.'qr/';
            
$this->urls['jobsUrl']['nl'] = $rootUrl.'vacatures/';
            
$this->urls['mediaUrl']['nl'] = $rootUrl.'media/';
            
$this->urls['sessionUrl']['nl'] = $rootUrl.'timeout/';
            
$this->urls['reviewUrl']['nl'] = $rootUrl.'review/';
            
$this->urls['reviewUrl_nl']['nl'] = $rootUrl.'review/nl/';
            
$this->urls['reviewUrl_en']['nl'] = $rootUrl.'review/en/';
            
$this->urls['whatIsAnEscapeRoomUrl']['nl'] = $rootUrl.'wat-is-een-escape-room/';
            
$this->urls['howToPlayAnEscapeRoomUrl']['nl'] = $rootUrl.'hoe-speel-je-een-escape-room/';
            
$this->urls['howToLeaveAnEscapeRoomIntactUrl']['nl'] = $rootUrl.'hoe-laat-je-een-escape-room-heel/';
            
$this->urls['newYearPuzzleUrl']['nl'] = $rootUrl.'nieuwjaarspuzzel/';
            
$this->urls['newYearAnswersUrl']['nl'] = $rootUrl.'nieuwjaarspuzzel-antwoorden/';
            
$this->urls['fifthBirthdayUrl']['nl'] = $rootUrl.'vijfde-verjaardag/';
            
$this->urls['thirdBirthdayUrl']['nl'] = $rootUrl.'derde-verjaardag/';
            
$this->urls['bachelorPartyUrl']['nl'] = $rootUrl.'vrijgezellenfeest/';
            
$this->urls['firstEscapeRoomUrl']['nl'] = $rootUrl.'de-eerste-escape-room/';
            
$this->urls['bestEscapeRoomUrl']['nl'] = $rootUrl.'de-beste-escape-room/';
            
$this->urls['aboutExitGameUrl']['nl'] = $rootUrl.'over-ons/';
            
$this->urls['articlesUrl']['nl'] = $rootUrl.'artikelen/';
            
$this->urls['packagesUrl']['nl'] = $rootUrl.'arrangementen/';
            
$this->urls['feyenoordUrl']['nl'] = $rootUrl.'feyenoord/';

            
$this->urls['baseUrl']['en'] = $rootUrl.'en/';
            
$this->urls['theHeistUrl']['en'] = $rootUrl.'en/the-heist/';
            
$this->urls['theClassicUrl']['en'] = $rootUrl.'en/the-classic/';
            
$this->urls['theOutcastUrl']['en'] = $rootUrl.'en/the-outcast/';
            
$this->urls['bookUrl']['en'] = $rootUrl.'en/book/';
            
$this->urls['bookRoomsUrl']['en'] = $rootUrl.'en/book/rooms/';
            
$this->urls['bookDetailsUrl']['en'] = $rootUrl.'en/book/details/';
            
$this->urls['bookDoneUrl']['en'] = $rootUrl.'en/book/done/';
            
$this->urls['faqUrl']['en'] = $rootUrl.'en/faq/';
            
$this->urls['contactUrl']['en'] = $rootUrl.'en/contact/';
            
$this->urls['contactSentUrl']['en'] = $rootUrl.'en/contact/sent/';
            
$this->urls['routeUrl']['en'] = $rootUrl.'en/route/';
            
$this->urls['termsUrl']['en'] = $rootUrl.'en/terms-and-conditions/';
            
$this->urls['qrUrl']['en'] = $rootUrl.'en/qr/';
            
$this->urls['jobsUrl']['en'] = $rootUrl.'en/job-openings/';
            
$this->urls['mediaUrl']['en'] = $rootUrl.'en/media/';
            
$this->urls['sessionUrl']['en'] = $rootUrl.'en/timeout/';
            
$this->urls['reviewUrl']['en'] = $rootUrl.'en/review/';
            
$this->urls['reviewUrl_nl']['en'] = $rootUrl.'review/nl/';
            
$this->urls['reviewUrl_en']['en'] = $rootUrl.'review/en/';
            
$this->urls['whatIsAnEscapeRoomUrl']['en'] = $rootUrl.'en/what-is-an-escape-room/';
            
$this->urls['howToPlayAnEscapeRoomUrl']['en'] = $rootUrl.'en/how-to-play-an-escape-room/';
            
$this->urls['howToLeaveAnEscapeRoomIntactUrl']['en'] = $rootUrl.'en/how-to-leave-an-escape-room-intact/';
            
$this->urls['newYearPuzzleUrl']['en'] = $rootUrl.'nieuwjaarspuzzel/';
            
$this->urls['newYearAnswersUrl']['en'] = $rootUrl.'nieuwjaarspuzzel-antwoorden/';
            
$this->urls['fifthBirthdayUrl']['en'] = $rootUrl.'en/fifth-birthday/';
            
$this->urls['thirdBirthdayUrl']['en'] = $rootUrl.'en/third-birthday/';
            
$this->urls['bachelorPartyUrl']['en'] = $rootUrl.'bachelor-party/';
            
$this->urls['firstEscapeRoomUrl']['en'] = $rootUrl.'de-eerste-escape-room/';
            
$this->urls['bestEscapeRoomUrl']['en'] = $rootUrl.'en/the-best-escape-room/';
            
$this->urls['aboutExitGameUrl']['en'] = $rootUrl.'en/about-us/';
            
$this->urls['articlesUrl']['en'] = $rootUrl.'en/articles/';
            
$this->urls['packagesUrl']['en'] = $rootUrl.'en/packages/';
            
$this->urls['feyenoordUrl']['en'] = $rootUrl.'feyenoord/';

            
// set urls for current language
            //print_r($_GET);
            //exit();
            
$this->add_value('baseUrl'$this->urls['baseUrl'][$this->language]);
            
$this->add_value('theHeistUrl'$this->urls['theHeistUrl'][$this->language]);
            
$this->add_value('theClassicUrl'$this->urls['theClassicUrl'][$this->language]);
            
$this->add_value('theOutcastUrl'$this->urls['theOutcastUrl'][$this->language]);
            
$this->add_value('bookUrl'$this->urls['bookUrl'][$this->language]);
            
$this->add_value('bookRoomsUrl'$this->urls['bookRoomsUrl'][$this->language]);
            
$this->add_value('bookDetailsUrl'$this->urls['bookDetailsUrl'][$this->language]);
            
$this->add_value('bookDoneUrl'$this->urls['bookDoneUrl'][$this->language]);
            
$this->add_value('faqUrl'$this->urls['faqUrl'][$this->language]);
            
$this->add_value('contactUrl'$this->urls['contactUrl'][$this->language]);
            
$this->add_value('contactSentUrl'$this->urls['contactSentUrl'][$this->language]);
            
$this->add_value('routeUrl'$this->urls['routeUrl'][$this->language]);
            
$this->add_value('termsUrl'$this->urls['termsUrl'][$this->language]);
            
$this->add_value('jobsUrl'$this->urls['jobsUrl'][$this->language]);
            
$this->add_value('mediaUrl'$this->urls['mediaUrl'][$this->language]);
            
$this->add_value('sessionUrl'$this->urls['sessionUrl'][$this->language]);
            
$this->add_value('reviewUrl'$this->urls['reviewUrl'][$this->language]);
            
$this->add_value('reviewUrl_nl'$this->urls['reviewUrl_nl'][$this->language]);
            
$this->add_value('reviewUrl_en'$this->urls['reviewUrl_en'][$this->language]);
            
$this->add_value('whatIsAnEscapeRoomUrl'$this->urls['whatIsAnEscapeRoomUrl'][$this->language]);
            
$this->add_value('howToPlayAnEscapeRoomUrl'$this->urls['howToPlayAnEscapeRoomUrl'][$this->language]);
            
$this->add_value('howToLeaveAnEscapeRoomIntactUrl'$this->urls['howToLeaveAnEscapeRoomIntactUrl'][$this->language]);
            
$this->add_value('newYearPuzzleUrl'$this->urls['newYearPuzzleUrl'][$this->language]);
            
$this->add_value('newYearAnswersUrl'$this->urls['newYearAnswersUrl'][$this->language]);
            
$this->add_value('fifthBirthdayUrl'$this->urls['fifthBirthdayUrl'][$this->language]);
            
$this->add_value('thirdBirthdayUrl'$this->urls['thirdBirthdayUrl'][$this->language]);
            
$this->add_value('bachelorPartyUrl'$this->urls['bachelorPartyUrl'][$this->language]);
            
$this->add_value('firstEscapeRoomUrl'$this->urls['firstEscapeRoomUrl'][$this->language]);
            
$this->add_value('bestEscapeRoomUrl'$this->urls['bestEscapeRoomUrl'][$this->language]);
            
$this->add_value('aboutExitGameUrl'$this->urls['aboutExitGameUrl'][$this->language]);
            
$this->add_value('articlesUrl'$this->urls['articlesUrl'][$this->language]);
            
$this->add_value('packagesUrl'$this->urls['packagesUrl'][$this->language]);
            
$this->add_value('feyenoordUrl'$this->urls['feyenoordUrl'][$this->language]);
        }

        
// get an array with alternative languages for the current url
        
function getLanguageUrls($current_url null)
        {
            if (!isset(
$current_url))
            {
                if (
Doo::conf()->SUBFOLDER != '/')
                {
                    
$domain str_replace(Doo::conf()->SUBFOLDER''$this->get_value('rootUrl'));
                }
                else
                {
                    
$domain $this->get_value('rootUrl');
                }

                if (
$domain[strlen($domain) - 1] == '/' && $_SERVER['REQUEST_URI'][0] == '/')
                {
                    
$domain substr($domain0strlen($domain) - 1);
                }

                
$current_url $domain.$_SERVER['REQUEST_URI'];

                if (
$current_url[strlen($current_url) - 1] != '/')
                {
                    
$current_url .= '/';
                }
            }
//test($current_url);
//test($this->urls);

            
$matchLength 0;
            
$matchName null;
            foreach (
$this->urls as $name => $versions)
            {
                foreach (
$versions as $language => $url)
                {
                    
$hash '';
                    
$pos strpos($url'#');
                    if (
$pos !== false)
                    {
                        
$hash substr($url$pos);
                        
$url substr($url0$pos);
                    }

                    if (
$url[strlen($url) - 1] != '/')
                    {
                        
$url .= '/';
                    }
//test($url.' '.$matchLength.' '.strlen($url));

                    
if (strpos($current_url$url) === && strlen($url) > $matchLength)
                    {
                        
$matchName $name;
                        
$matchLength strlen($url);
//test('best match '.$name.' length '.$matchLength);
                    
}
                }
            }

            if (
$matchName !== null)
            {
                
$result $this->urls[$matchName];
                foreach (
$result as $language => $url)
                {
                    
$pos strpos($url'#');
                    if (
$pos !== false)
                    {
                        
$result[$language] = substr($url0$pos);
                    }
                }
//test($result);
//exit();
                
return $result;
            }
        }

        function 
get_first_presence()
        {
            
// if a game has already been played or we've indicated we're present, people can book last minute
            
$first_presence date('Y-m-d H:i:s');
            
// check if we're present because we indicated it
            
$on_location Doo::db()->fetchOne("SELECT `status` FROM on_location WHERE `date`='".date('Y-m-d')."';");
            
// check if we're present because we had a booking already
            
$booked_game Doo::db()->fetchAll(
                
'SELECT * FROM timeslot WHERE date=? AND start_at<? AND `status`=2 LIMIT 0, 1',
                array(
date('Y-m-d'), date('H:i:s')),
                
PDO::FETCH_CLASS,
                
'TimeSlot'
            
);

            if ((
$on_location == null && count($booked_game) == 0) || ($on_location != null && $on_location == 0))
            {
                
// add an hour if we're gone
                
$first_presence date('Y-m-d H:i:s'strtotime('+1 hours'));
            }

            return 
$first_presence;
        }

        function 
get_start_week(DateTime $date)
        {
            
$start_week = clone $date;
            
$day_of_week $date->format('N');
            if (
$day_of_week 1)
            {
                
$start_week->add(DateInterval::createFromDateString(($day_of_week).' days'));
            }
            return 
$start_week;
        }

        function 
date_to_japanese($date_str)
        {
            if (
preg_match('/^20[0-9]{6}$/'$date_str))
            {
                return 
substr($date_str04).'-'.substr($date_str42).'-'.substr($date_str62);
            }

            list(
$day$month$year) = preg_split('/-/'$date_str);
            if (isset(
$year) && strlen($year) == 4)
            {
                return 
$year.'-'.$month.'-'.$day;
            }
            return 
$date_str;
        }

        function 
sanitize_name($name)
        {
            
$result '';
            for (
$i 0$i strlen($name); $i++)
            {
                if (
$name[$i] == ' ')
                {
                    
$result .= ' ';
                }
                else
                {
                    
$result .= filter_var($name[$i], FILTER_SANITIZE_EMAIL);
                }
            }
            return 
$result;

            
$valid " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

            
$r = array();
            
$r[''] = 's';
            
$r[''] = 'oe';
            
$r[''] = 'z';
            
$r[''] = 'Y';
            
$r[''] = 'c';
            
$r[''] = 'Y';
            
$r[''] = 'u';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'AE';
            
$r[''] = 'C';
            
$r[''] = 'E';
            
$r[''] = 'E';
            
$r[''] = 'E';
            
$r[''] = 'E';
            
$r[''] = 'I';
            
$r[''] = 'I';
            
$r[''] = 'I';
            
$r[''] = 'I';
            
$r[''] = 'D';
            
$r[''] = 'N';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'U';
            
$r[''] = 'U';
            
$r[''] = 'U';
            
$r[''] = 'U';
            
$r[''] = 'Y';
            
$r[''] = 'ss';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'ae';
            
$r[''] = 'c';
            
$r[''] = 'e';
            
$r[''] = 'e';
            
$r[''] = 'e';
            
$r[''] = 'e';
            
$r[''] = 'i';
            
$r[''] = 'i';
            
$r[''] = 'i';
            
$r[''] = 'i';
            
$r[''] = 'n';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'u';
            
$r[''] = 'u';
            
$r[''] = 'u';
            
$r[''] = 'u';
            
$r[''] = 'y';

            
$result '';
            for (
$i 0$i strlen($name); $i++)
            {
                
$chr $name[$i];
                if (
strpos($valid$chr) !== false)
                {
                    
$result .= $chr;
                }
                else if (
in_array($chr$r))
                {
                    
$result .= $r[$chr];
                }
            }

            return 
$result;
        }

        function 
add_common_translations()
        {
            
$this->add_text('Book''Reserveren''nl');
            
$this->add_text('MORE''MEER''nl');
            
$this->add_text('Terms''Algemene voorwaarden''nl');
            
$this->add_text('Jobs''Vacatures''nl');
            
$this->add_text('Media''In de media''nl');
            
$this->add_text('About us''Over ons''nl');
            
$this->add_text('Articles''Artikelen''nl');

            
$this->add_text('Book''Book''en');
            
$this->add_text('MORE''MORE''en');
            
$this->add_text('Terms''Terms & conditions''en');
            
$this->add_text('Jobs''Jobs''en');
            
$this->add_text('Media''In the media''en');
            
$this->add_text('About us''About us''en');
            
$this->add_text('Articles''Articles''en');
        }

        function 
add_user_action($type_id$content)
        {
            
$content .= ' '.($this->detect->isMobile() ? 'M' '').($this->detect->isTablet() ? 'T' '');
            
Doo::db()->query("INSERT INTO user_action (type_id, session_id, content, remote_ip) VALUES (".$type_id.",'".session_id()."',".(!empty($content) ? "'".$content."'" "NULL").",'".$_SERVER['REMOTE_ADDR']."')");
        }
    }

?>


* Stack Trace...

  1. /var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/index.php(29) calling run()
  2. /var/www/vhosts/43/163869/webspace/httpdocs/dooframework/app/DooWebApp.php(34) calling routeTo()
  3. /var/www/vhosts/43/163869/webspace/httpdocs/dooframework/app/DooWebApp.php(281) calling index()
  4. /var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected/controller/ContactController.php(98) calling render_c()
  5. /var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected/controller/BaseController.php(83) calling renderc()
  6. /var/www/vhosts/43/163869/webspace/httpdocs/dooframework/controller/DooController.php(247) calling renderc()
  7. /var/www/vhosts/43/163869/webspace/httpdocs/dooframework/view/DooView.php(199) calling renderc()


* Variables...  Conf .  GET  .  POST  .  Session  .  Cookie 


object(DooConfig)#1 (25) {
  
["AUTOLOAD"] => NULL
  
["SITE_PATH"] => string(56"/var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/"
  
["PROTECTED_FOLDER"] => string(10"protected/"
  
["BASE_PATH"] => string(57"/var/www/vhosts/43/163869/webspace/httpdocs/dooframework/"
  
["LOG_PATH"] => NULL
  
["APP_URL"] => string(24"https://www.exitgame.nl/"
  
["SUBFOLDER"] => string(1"/"
  
["APP_MODE"] => string(4"prod"
  
["AUTOROUTE"] => bool(true)
  [
"DEBUG_ENABLED"] => bool(false)
  [
"ERROR_404_DOCUMENT"] => NULL
  
["ERROR_404_ROUTE"] => string(6"/error"
  
["CACHE_PATH"] => NULL
  
["AUTO_VIEW_RENDER_PATH"] => array(2) {
    [
0] =>   string(7"contact"
    
[1] =>   string(5"index"
  
}
  [
"MEMCACHE"] => NULL
  
["TEMPLATE_ENGINE"] => string(7"DooView"
  
["TEMPLATE_SHOW_COMMENT"] => NULL
  
["TEMPLATE_ALLOW_PHP"] => NULL
  
["TEMPLATE_COMPILE_ALWAYS"] => NULL
  
["TEMPLATE_GLOBAL_TAGS"] => array(10) {
    [
0] =>   string(5"links"
    
[1] =>   string(7"shorten"
    
[2] =>   string(5"month"
    
[3] =>   string(10"formatDate"
    
[4] =>   string(5"debug"
    
[5] =>   string(3"url"
    
[6] =>   string(4"url2"
    
[7] =>   string(13"function_deny"
    
[8] =>   string(5"isset"
    
[9] =>   string(5"empty"
  
}
  [
"MODULES"] => NULL
  
["APP_NAMESPACE_ID"] => NULL
  
["CHMOD_DEFAULT"] => int(511)
  [
"FROM_CLI"] => bool(false)
  [
"IMAGE_PATH"] => string(70"/var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected/img/"
}
$_SESSION Variables array(1) {
  [
"ExitGame"] => array(3) {
    [
"session_id"] =>   string(32"1a9cc55b79b914cba80da431772e2dd1"
    
["contact_sent"] =>   bool(false)
    [
"first_page"] =>   bool(true)
  }
}
$_COOKIE Variables array(0) {
}

BACK TO TOP
DooPHP Diagnostics - include(): Failed opening '/var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected//viewc/contact.php' for inclusion (include_path='.:/php/includes:/usr/share/pear:/usr/libexec/php4-cgi/share/pear:/usr/share/aps/php')

See file /var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected/controller/BaseController.php


+ Error on line 83

            $this->renderc($template$this->data);

<?php

    Doo
::loadClass('Mobile_Detect');

    function 
test($variable)
    {
        echo 
'<pre>';
        
print_r($variable);
        echo 
'</pre>';
    }

    abstract class 
UserActionType
    
{
        const 
LoadPage 1;
        const 
CallToAction 2;
        const 
Error 3;
    }

    class 
BaseController extends DooController
    
{
        public 
$language 'nl';
        public 
$urls = array();
        public 
$data = array();
        public 
$text = array();
        public 
$text_array = array();
        public 
$errors = array();
        public 
$session;
        public 
$detect;

        function 
__construct() {
            
$this->session Doo::session('ExitGame');

            
$this->data['values'] = array();
            
$this->data['errors'] = array();
            
$this->getLanguage();
            
$this->add_urls_as_values();
            
$this->get_menu_items();

            
$this->detect = new Mobile_Detect();
            
$this->add_value('is_mobile_or_tablet'$this->detect->isMobile() || $this->detect->isTablet());
            
$this->add_value('is_tablet'$this->detect->isTablet());
        }

        function 
render_c($template)
        {
            
$this->add_user_action(UserActionType::LoadPage$template);

            if (!
Doo::session()->first_page)
            {
                
$this->add_value('first_page'1);
                
Doo::session()->first_page true;
            }

            
$current $this->getLanguage();
            
$this->add_value('language'$current);
            
$this->add_value('languageUrls'$this->getLanguageUrls());

            foreach (
$this->text as $language => $labels)
            {
                if (
$language == '*' || $language == $current)
                {
                    foreach (
$labels as $label => $text)
                    {
                        
$this->data['text'][$label] = $text;
                    }
                }
            }

            
$this->data['text_array'] = array();
            foreach (
$this->text_array as $language => $items)
            {
                if (
$language == '*' || $language == $current)
                {
                    foreach (
$items as $i => $item)
                    {
                        
$this->data['text_array'][] = $item;
                    }
                }
            }

            
$this->data['errors'] = $this->errors;

            $this->renderc($template$this->data);


            
Doo::session()->first_hit true;
        }

        function 
add_error($error)
        {
            if (!
in_array($error$this->errors))
            {
                
$this->errors[] = $error;
            }
        }

        function 
add_all_errors($errors)
        {
            if (
is_array($errors))
            {
                foreach (
$errors as $rules)
                {
                    if (
is_array($rules))
                    {
                        foreach (
$rules as $name => $error)
                        {
                            
$this->add_error($error);
                        }
                    }
                }
            }
        }

        function 
has_error($error)
        {
            return 
in_array($error$this->errors);
        }

        function 
has_errors()
        {
            return 
count($this->errors) > 0;
        }

        function 
add_values($array)
        {
            
$this->data['values'] = array_merge($this->data['values'], $array);
        }

        function 
add_value($label$value)
        {
            
$this->data['values'][$label] = $value;
        }

        function 
get_value($label)
        {
            if (
array_key_exists($label$this->data['values']))
            {
                return 
$this->data['values'][$label];
            }
            return 
'';
        }

        function 
get_text($label)
        {
            
$language $this->getLanguage();
            if (
array_key_exists($language$this->text) && array_key_exists($label$this->text[$language]))
            {
                return 
$this->text[$language][$label];
            }
            return 
'';
        }

        function 
add_array($caption$content$language '*')
        {
            
$item = array();
            
$item['caption'] = $caption;
            
$item['content'] = $content;

            if (!
array_key_exists($language$this->text_array))
            {
                
$this->text_array[$language] = array();
            }

            
$this->text_array[$language][] = $item;
        }

        function 
add_text($label$text$language '*')
        {
            if (!
array_key_exists($language$this->text))
            {
                
$this->text[$language] = array();
            }

            
$this->text[$language][$label] = $text;
        }

        function 
getLanguage()
        {
            
$this->data['languages'] = array(
                
'nl' => 'Nederlands',
                
'en' => 'Engels'
            
);

            
$matches = array();
            
$pattern '/'.str_replace('/''\/'Doo::conf()->SUBFOLDER).'(en\/|de\/)(.*)?/';

            if (
preg_match($pattern$_SERVER['REQUEST_URI'].'/'$matches) === 1)
            {
                
$this->language str_replace('/'''$matches[1]);
            }

            
$this->data['language'] = $this->language;
            return 
$this->language;
        }

        function 
getDayAbbreviations($language 'nl'$capital false$php_date false)
        {
            
$abbr = array('ma''di''wo''do''vr''za''zo');
            if (
$language == 'en')
            {
                
$abbr = array('mo''tu''we''th''fr''sa''su');
            }
            if (
$capital)
            {
                for (
$i 0$i count($abbr); $i++)
                {
                    
$abbr[$i] = strtoupper($abbr[$i]);
                }
            }
            if (
$php_date)
            {
                
$last $abbr[6];
                for (
$i 6$i 0$i--)
                {
                    
$abbr[$i] = $abbr[$i 1];
                }
                
$abbr[0] = $last;
            }
            return 
$abbr;
        }

        function 
get_ordinal_abbr($i$language)
        {
            if (
$language == 'nl')
            {
                return 
$i.'e';
            }

            
$mod $i 10;
            
$ten = ($i 100) > 10 && ($i 100) < 20;
            if (
$mod == && !$ten)
            {
                return 
$i.'st';
            }
            else if (
$mod == && !$ten)
            {
                return 
$i.'nd';
            }
            else if (
$mod == && !$ten)
            {
                return 
$i.'rd';
            }
            else
            {
                return 
$i.'th';
            }
        }

        function 
get_month_name($month$language)
        {
            
$names = array('''Januari''Februari''Maart''April''Mei''Juni''Juli''Augustus''September''Oktober''November''December');
            if (
$language != 'nl')
            {
                
$names = array('''January''February''March''April''May''June''July''August''September''October''November''December');
            }
            return 
$names[$month];
        }

        function 
get_menu_items()
        {
            
$this->add_text('Book''Reserveren''nl');
            
$this->add_text('Jobs''Vacatures''nl');
            
$this->add_text('Terms''Algemene voorwaarden''nl');

            
$this->add_text('Book''Book''en');
            
$this->add_text('Jobs''Job openings''en');
            
$this->add_text('Terms''Terms & conditions''en');
        }

        function 
add_urls_as_values()
        {
            
$rootUrl Doo::conf()->APP_URL;
            
$this->add_value('rootUrl'$rootUrl);
            
$this->add_value('imageUrl'$rootUrl.'img/');
            
$this->add_value('priceUrl'$rootUrl.'price/');
            
$this->add_value('adminUrl'$rootUrl.'admin/');

            
// define urls
            
$this->urls['baseUrl']['nl'] = $rootUrl;
            
$this->urls['theHeistUrl']['nl'] = $rootUrl.'the-heist/';
            
$this->urls['theClassicUrl']['nl'] = $rootUrl.'the-classic/';
            
$this->urls['theOutcastUrl']['nl'] = $rootUrl.'the-outcast/';
            
$this->urls['bookUrl']['nl'] = $rootUrl.'reserveren/';
            
$this->urls['bookRoomsUrl']['nl'] = $rootUrl.'reserveren/kamers/';
            
$this->urls['bookDetailsUrl']['nl'] = $rootUrl.'reserveren/gegevens/';
            
$this->urls['bookDoneUrl']['nl'] = $rootUrl.'reserveren/klaar/';
            
$this->urls['faqUrl']['nl'] = $rootUrl.'faq/';
            
$this->urls['contactUrl']['nl'] = $rootUrl.'contact/';
            
$this->urls['contactSentUrl']['nl'] = $rootUrl.'contact/verzonden/';
            
$this->urls['routeUrl']['nl'] = $rootUrl.'route/';
            
$this->urls['termsUrl']['nl'] = $rootUrl.'algemene-voorwaarden/';
            
$this->urls['qrUrl']['nl'] = $rootUrl.'qr/';
            
$this->urls['jobsUrl']['nl'] = $rootUrl.'vacatures/';
            
$this->urls['mediaUrl']['nl'] = $rootUrl.'media/';
            
$this->urls['sessionUrl']['nl'] = $rootUrl.'timeout/';
            
$this->urls['reviewUrl']['nl'] = $rootUrl.'review/';
            
$this->urls['reviewUrl_nl']['nl'] = $rootUrl.'review/nl/';
            
$this->urls['reviewUrl_en']['nl'] = $rootUrl.'review/en/';
            
$this->urls['whatIsAnEscapeRoomUrl']['nl'] = $rootUrl.'wat-is-een-escape-room/';
            
$this->urls['howToPlayAnEscapeRoomUrl']['nl'] = $rootUrl.'hoe-speel-je-een-escape-room/';
            
$this->urls['howToLeaveAnEscapeRoomIntactUrl']['nl'] = $rootUrl.'hoe-laat-je-een-escape-room-heel/';
            
$this->urls['newYearPuzzleUrl']['nl'] = $rootUrl.'nieuwjaarspuzzel/';
            
$this->urls['newYearAnswersUrl']['nl'] = $rootUrl.'nieuwjaarspuzzel-antwoorden/';
            
$this->urls['fifthBirthdayUrl']['nl'] = $rootUrl.'vijfde-verjaardag/';
            
$this->urls['thirdBirthdayUrl']['nl'] = $rootUrl.'derde-verjaardag/';
            
$this->urls['bachelorPartyUrl']['nl'] = $rootUrl.'vrijgezellenfeest/';
            
$this->urls['firstEscapeRoomUrl']['nl'] = $rootUrl.'de-eerste-escape-room/';
            
$this->urls['bestEscapeRoomUrl']['nl'] = $rootUrl.'de-beste-escape-room/';
            
$this->urls['aboutExitGameUrl']['nl'] = $rootUrl.'over-ons/';
            
$this->urls['articlesUrl']['nl'] = $rootUrl.'artikelen/';
            
$this->urls['packagesUrl']['nl'] = $rootUrl.'arrangementen/';
            
$this->urls['feyenoordUrl']['nl'] = $rootUrl.'feyenoord/';

            
$this->urls['baseUrl']['en'] = $rootUrl.'en/';
            
$this->urls['theHeistUrl']['en'] = $rootUrl.'en/the-heist/';
            
$this->urls['theClassicUrl']['en'] = $rootUrl.'en/the-classic/';
            
$this->urls['theOutcastUrl']['en'] = $rootUrl.'en/the-outcast/';
            
$this->urls['bookUrl']['en'] = $rootUrl.'en/book/';
            
$this->urls['bookRoomsUrl']['en'] = $rootUrl.'en/book/rooms/';
            
$this->urls['bookDetailsUrl']['en'] = $rootUrl.'en/book/details/';
            
$this->urls['bookDoneUrl']['en'] = $rootUrl.'en/book/done/';
            
$this->urls['faqUrl']['en'] = $rootUrl.'en/faq/';
            
$this->urls['contactUrl']['en'] = $rootUrl.'en/contact/';
            
$this->urls['contactSentUrl']['en'] = $rootUrl.'en/contact/sent/';
            
$this->urls['routeUrl']['en'] = $rootUrl.'en/route/';
            
$this->urls['termsUrl']['en'] = $rootUrl.'en/terms-and-conditions/';
            
$this->urls['qrUrl']['en'] = $rootUrl.'en/qr/';
            
$this->urls['jobsUrl']['en'] = $rootUrl.'en/job-openings/';
            
$this->urls['mediaUrl']['en'] = $rootUrl.'en/media/';
            
$this->urls['sessionUrl']['en'] = $rootUrl.'en/timeout/';
            
$this->urls['reviewUrl']['en'] = $rootUrl.'en/review/';
            
$this->urls['reviewUrl_nl']['en'] = $rootUrl.'review/nl/';
            
$this->urls['reviewUrl_en']['en'] = $rootUrl.'review/en/';
            
$this->urls['whatIsAnEscapeRoomUrl']['en'] = $rootUrl.'en/what-is-an-escape-room/';
            
$this->urls['howToPlayAnEscapeRoomUrl']['en'] = $rootUrl.'en/how-to-play-an-escape-room/';
            
$this->urls['howToLeaveAnEscapeRoomIntactUrl']['en'] = $rootUrl.'en/how-to-leave-an-escape-room-intact/';
            
$this->urls['newYearPuzzleUrl']['en'] = $rootUrl.'nieuwjaarspuzzel/';
            
$this->urls['newYearAnswersUrl']['en'] = $rootUrl.'nieuwjaarspuzzel-antwoorden/';
            
$this->urls['fifthBirthdayUrl']['en'] = $rootUrl.'en/fifth-birthday/';
            
$this->urls['thirdBirthdayUrl']['en'] = $rootUrl.'en/third-birthday/';
            
$this->urls['bachelorPartyUrl']['en'] = $rootUrl.'bachelor-party/';
            
$this->urls['firstEscapeRoomUrl']['en'] = $rootUrl.'de-eerste-escape-room/';
            
$this->urls['bestEscapeRoomUrl']['en'] = $rootUrl.'en/the-best-escape-room/';
            
$this->urls['aboutExitGameUrl']['en'] = $rootUrl.'en/about-us/';
            
$this->urls['articlesUrl']['en'] = $rootUrl.'en/articles/';
            
$this->urls['packagesUrl']['en'] = $rootUrl.'en/packages/';
            
$this->urls['feyenoordUrl']['en'] = $rootUrl.'feyenoord/';

            
// set urls for current language
            //print_r($_GET);
            //exit();
            
$this->add_value('baseUrl'$this->urls['baseUrl'][$this->language]);
            
$this->add_value('theHeistUrl'$this->urls['theHeistUrl'][$this->language]);
            
$this->add_value('theClassicUrl'$this->urls['theClassicUrl'][$this->language]);
            
$this->add_value('theOutcastUrl'$this->urls['theOutcastUrl'][$this->language]);
            
$this->add_value('bookUrl'$this->urls['bookUrl'][$this->language]);
            
$this->add_value('bookRoomsUrl'$this->urls['bookRoomsUrl'][$this->language]);
            
$this->add_value('bookDetailsUrl'$this->urls['bookDetailsUrl'][$this->language]);
            
$this->add_value('bookDoneUrl'$this->urls['bookDoneUrl'][$this->language]);
            
$this->add_value('faqUrl'$this->urls['faqUrl'][$this->language]);
            
$this->add_value('contactUrl'$this->urls['contactUrl'][$this->language]);
            
$this->add_value('contactSentUrl'$this->urls['contactSentUrl'][$this->language]);
            
$this->add_value('routeUrl'$this->urls['routeUrl'][$this->language]);
            
$this->add_value('termsUrl'$this->urls['termsUrl'][$this->language]);
            
$this->add_value('jobsUrl'$this->urls['jobsUrl'][$this->language]);
            
$this->add_value('mediaUrl'$this->urls['mediaUrl'][$this->language]);
            
$this->add_value('sessionUrl'$this->urls['sessionUrl'][$this->language]);
            
$this->add_value('reviewUrl'$this->urls['reviewUrl'][$this->language]);
            
$this->add_value('reviewUrl_nl'$this->urls['reviewUrl_nl'][$this->language]);
            
$this->add_value('reviewUrl_en'$this->urls['reviewUrl_en'][$this->language]);
            
$this->add_value('whatIsAnEscapeRoomUrl'$this->urls['whatIsAnEscapeRoomUrl'][$this->language]);
            
$this->add_value('howToPlayAnEscapeRoomUrl'$this->urls['howToPlayAnEscapeRoomUrl'][$this->language]);
            
$this->add_value('howToLeaveAnEscapeRoomIntactUrl'$this->urls['howToLeaveAnEscapeRoomIntactUrl'][$this->language]);
            
$this->add_value('newYearPuzzleUrl'$this->urls['newYearPuzzleUrl'][$this->language]);
            
$this->add_value('newYearAnswersUrl'$this->urls['newYearAnswersUrl'][$this->language]);
            
$this->add_value('fifthBirthdayUrl'$this->urls['fifthBirthdayUrl'][$this->language]);
            
$this->add_value('thirdBirthdayUrl'$this->urls['thirdBirthdayUrl'][$this->language]);
            
$this->add_value('bachelorPartyUrl'$this->urls['bachelorPartyUrl'][$this->language]);
            
$this->add_value('firstEscapeRoomUrl'$this->urls['firstEscapeRoomUrl'][$this->language]);
            
$this->add_value('bestEscapeRoomUrl'$this->urls['bestEscapeRoomUrl'][$this->language]);
            
$this->add_value('aboutExitGameUrl'$this->urls['aboutExitGameUrl'][$this->language]);
            
$this->add_value('articlesUrl'$this->urls['articlesUrl'][$this->language]);
            
$this->add_value('packagesUrl'$this->urls['packagesUrl'][$this->language]);
            
$this->add_value('feyenoordUrl'$this->urls['feyenoordUrl'][$this->language]);
        }

        
// get an array with alternative languages for the current url
        
function getLanguageUrls($current_url null)
        {
            if (!isset(
$current_url))
            {
                if (
Doo::conf()->SUBFOLDER != '/')
                {
                    
$domain str_replace(Doo::conf()->SUBFOLDER''$this->get_value('rootUrl'));
                }
                else
                {
                    
$domain $this->get_value('rootUrl');
                }

                if (
$domain[strlen($domain) - 1] == '/' && $_SERVER['REQUEST_URI'][0] == '/')
                {
                    
$domain substr($domain0strlen($domain) - 1);
                }

                
$current_url $domain.$_SERVER['REQUEST_URI'];

                if (
$current_url[strlen($current_url) - 1] != '/')
                {
                    
$current_url .= '/';
                }
            }
//test($current_url);
//test($this->urls);

            
$matchLength 0;
            
$matchName null;
            foreach (
$this->urls as $name => $versions)
            {
                foreach (
$versions as $language => $url)
                {
                    
$hash '';
                    
$pos strpos($url'#');
                    if (
$pos !== false)
                    {
                        
$hash substr($url$pos);
                        
$url substr($url0$pos);
                    }

                    if (
$url[strlen($url) - 1] != '/')
                    {
                        
$url .= '/';
                    }
//test($url.' '.$matchLength.' '.strlen($url));

                    
if (strpos($current_url$url) === && strlen($url) > $matchLength)
                    {
                        
$matchName $name;
                        
$matchLength strlen($url);
//test('best match '.$name.' length '.$matchLength);
                    
}
                }
            }

            if (
$matchName !== null)
            {
                
$result $this->urls[$matchName];
                foreach (
$result as $language => $url)
                {
                    
$pos strpos($url'#');
                    if (
$pos !== false)
                    {
                        
$result[$language] = substr($url0$pos);
                    }
                }
//test($result);
//exit();
                
return $result;
            }
        }

        function 
get_first_presence()
        {
            
// if a game has already been played or we've indicated we're present, people can book last minute
            
$first_presence date('Y-m-d H:i:s');
            
// check if we're present because we indicated it
            
$on_location Doo::db()->fetchOne("SELECT `status` FROM on_location WHERE `date`='".date('Y-m-d')."';");
            
// check if we're present because we had a booking already
            
$booked_game Doo::db()->fetchAll(
                
'SELECT * FROM timeslot WHERE date=? AND start_at<? AND `status`=2 LIMIT 0, 1',
                array(
date('Y-m-d'), date('H:i:s')),
                
PDO::FETCH_CLASS,
                
'TimeSlot'
            
);

            if ((
$on_location == null && count($booked_game) == 0) || ($on_location != null && $on_location == 0))
            {
                
// add an hour if we're gone
                
$first_presence date('Y-m-d H:i:s'strtotime('+1 hours'));
            }

            return 
$first_presence;
        }

        function 
get_start_week(DateTime $date)
        {
            
$start_week = clone $date;
            
$day_of_week $date->format('N');
            if (
$day_of_week 1)
            {
                
$start_week->add(DateInterval::createFromDateString(($day_of_week).' days'));
            }
            return 
$start_week;
        }

        function 
date_to_japanese($date_str)
        {
            if (
preg_match('/^20[0-9]{6}$/'$date_str))
            {
                return 
substr($date_str04).'-'.substr($date_str42).'-'.substr($date_str62);
            }

            list(
$day$month$year) = preg_split('/-/'$date_str);
            if (isset(
$year) && strlen($year) == 4)
            {
                return 
$year.'-'.$month.'-'.$day;
            }
            return 
$date_str;
        }

        function 
sanitize_name($name)
        {
            
$result '';
            for (
$i 0$i strlen($name); $i++)
            {
                if (
$name[$i] == ' ')
                {
                    
$result .= ' ';
                }
                else
                {
                    
$result .= filter_var($name[$i], FILTER_SANITIZE_EMAIL);
                }
            }
            return 
$result;

            
$valid " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

            
$r = array();
            
$r[''] = 's';
            
$r[''] = 'oe';
            
$r[''] = 'z';
            
$r[''] = 'Y';
            
$r[''] = 'c';
            
$r[''] = 'Y';
            
$r[''] = 'u';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'A';
            
$r[''] = 'AE';
            
$r[''] = 'C';
            
$r[''] = 'E';
            
$r[''] = 'E';
            
$r[''] = 'E';
            
$r[''] = 'E';
            
$r[''] = 'I';
            
$r[''] = 'I';
            
$r[''] = 'I';
            
$r[''] = 'I';
            
$r[''] = 'D';
            
$r[''] = 'N';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'O';
            
$r[''] = 'U';
            
$r[''] = 'U';
            
$r[''] = 'U';
            
$r[''] = 'U';
            
$r[''] = 'Y';
            
$r[''] = 'ss';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'a';
            
$r[''] = 'ae';
            
$r[''] = 'c';
            
$r[''] = 'e';
            
$r[''] = 'e';
            
$r[''] = 'e';
            
$r[''] = 'e';
            
$r[''] = 'i';
            
$r[''] = 'i';
            
$r[''] = 'i';
            
$r[''] = 'i';
            
$r[''] = 'n';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'o';
            
$r[''] = 'u';
            
$r[''] = 'u';
            
$r[''] = 'u';
            
$r[''] = 'u';
            
$r[''] = 'y';

            
$result '';
            for (
$i 0$i strlen($name); $i++)
            {
                
$chr $name[$i];
                if (
strpos($valid$chr) !== false)
                {
                    
$result .= $chr;
                }
                else if (
in_array($chr$r))
                {
                    
$result .= $r[$chr];
                }
            }

            return 
$result;
        }

        function 
add_common_translations()
        {
            
$this->add_text('Book''Reserveren''nl');
            
$this->add_text('MORE''MEER''nl');
            
$this->add_text('Terms''Algemene voorwaarden''nl');
            
$this->add_text('Jobs''Vacatures''nl');
            
$this->add_text('Media''In de media''nl');
            
$this->add_text('About us''Over ons''nl');
            
$this->add_text('Articles''Artikelen''nl');

            
$this->add_text('Book''Book''en');
            
$this->add_text('MORE''MORE''en');
            
$this->add_text('Terms''Terms & conditions''en');
            
$this->add_text('Jobs''Jobs''en');
            
$this->add_text('Media''In the media''en');
            
$this->add_text('About us''About us''en');
            
$this->add_text('Articles''Articles''en');
        }

        function 
add_user_action($type_id$content)
        {
            
$content .= ' '.($this->detect->isMobile() ? 'M' '').($this->detect->isTablet() ? 'T' '');
            
Doo::db()->query("INSERT INTO user_action (type_id, session_id, content, remote_ip) VALUES (".$type_id.",'".session_id()."',".(!empty($content) ? "'".$content."'" "NULL").",'".$_SERVER['REMOTE_ADDR']."')");
        }
    }

?>


* Stack Trace...

  1. /var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/index.php(29) calling run()
  2. /var/www/vhosts/43/163869/webspace/httpdocs/dooframework/app/DooWebApp.php(34) calling routeTo()
  3. /var/www/vhosts/43/163869/webspace/httpdocs/dooframework/app/DooWebApp.php(281) calling index()
  4. /var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected/controller/ContactController.php(98) calling render_c()
  5. /var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected/controller/BaseController.php(83) calling renderc()
  6. /var/www/vhosts/43/163869/webspace/httpdocs/dooframework/controller/DooController.php(247) calling renderc()
  7. /var/www/vhosts/43/163869/webspace/httpdocs/dooframework/view/DooView.php(199) calling renderc()


* Variables...  Conf .  GET  .  POST  .  Session  .  Cookie 


object(DooConfig)#1 (25) {
  
["AUTOLOAD"] => NULL
  
["SITE_PATH"] => string(56"/var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/"
  
["PROTECTED_FOLDER"] => string(10"protected/"
  
["BASE_PATH"] => string(57"/var/www/vhosts/43/163869/webspace/httpdocs/dooframework/"
  
["LOG_PATH"] => NULL
  
["APP_URL"] => string(24"https://www.exitgame.nl/"
  
["SUBFOLDER"] => string(1"/"
  
["APP_MODE"] => string(4"prod"
  
["AUTOROUTE"] => bool(true)
  [
"DEBUG_ENABLED"] => bool(false)
  [
"ERROR_404_DOCUMENT"] => NULL
  
["ERROR_404_ROUTE"] => string(6"/error"
  
["CACHE_PATH"] => NULL
  
["AUTO_VIEW_RENDER_PATH"] => array(2) {
    [
0] =>   string(7"contact"
    
[1] =>   string(5"index"
  
}
  [
"MEMCACHE"] => NULL
  
["TEMPLATE_ENGINE"] => string(7"DooView"
  
["TEMPLATE_SHOW_COMMENT"] => NULL
  
["TEMPLATE_ALLOW_PHP"] => NULL
  
["TEMPLATE_COMPILE_ALWAYS"] => NULL
  
["TEMPLATE_GLOBAL_TAGS"] => array(10) {
    [
0] =>   string(5"links"
    
[1] =>   string(7"shorten"
    
[2] =>   string(5"month"
    
[3] =>   string(10"formatDate"
    
[4] =>   string(5"debug"
    
[5] =>   string(3"url"
    
[6] =>   string(4"url2"
    
[7] =>   string(13"function_deny"
    
[8] =>   string(5"isset"
    
[9] =>   string(5"empty"
  
}
  [
"MODULES"] => NULL
  
["APP_NAMESPACE_ID"] => NULL
  
["CHMOD_DEFAULT"] => int(511)
  [
"FROM_CLI"] => bool(false)
  [
"IMAGE_PATH"] => string(70"/var/www/vhosts/43/163869/webspace/httpdocs/exitgame.nl/protected/img/"
}
$_SESSION Variables array(1) {
  [
"ExitGame"] => array(3) {
    [
"session_id"] =>   string(32"1a9cc55b79b914cba80da431772e2dd1"
    
["contact_sent"] =>   bool(false)
    [
"first_page"] =>   bool(true)
  }
}
$_COOKIE Variables array(0) {
}

BACK TO TOP