See file /var/customers/webs/vworld/app/protected/controller/MainController.php
+ Error on line 131
        $data['place'] = $data['place'][0];
<?php
/**
 * MainController
 * vWorld Frontend and Backend
 *
 * @author kb
 */
class MainController extends DooController{
    private function init() {
        $data = array();
    
        $site = Doo::loadModel('Site', true);
        $site->domain = str_replace('www.', '', $_SERVER['HTTP_HOST']);
        $data['site'] = Doo::db()->find($site);
        $data['site'] = $data['site'][0];
        
        $data['footerPlaces'] = Doo::db()->find('Place', array('where'=>'site = '.$data['site']->sid." AND name <> '".$data['site']->name."' AND ( pid IN (SELECT pid FROM article_places GROUP BY pid ORDER BY COUNT(aid) DESC) OR pid IN (SELECT pid FROM place_gallery GROUP BY pid ORDER BY COUNT(gid) DESC) )"));
        //if(count($data['footerPlaces']) == 0)
        $tmp = Doo::db()->find('Place', array('where'=>'site = '.$data['site']->sid." AND name <> '".$data['site']->name."' ORDER BY place.population DESC"));
        $data['footerPlaces'] = array_unique(array_merge($data['footerPlaces'], $tmp), SORT_REGULAR);
        
        $data['footerArticles'] = $data['site']->getArticles(3, 'date DESC');
        $data['footerSites'] = $data['site']->getSites();
        $data['footerURL'] = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
        
        $data['title'] = $data['site']->name.' - '.$data['site']->domain;
        
        return $data;
    }
    public function index() {
        $data = self::init();
        $data['currentpage'] = 'home';
        //$this->view()->render('/'.Doo::conf()->lang .'/index', $data);
        
        $data['timelines'] = Doo::db()->find('Timeline', array('where'=>"place IN (SELECT pid FROM place WHERE quote = 'N' AND parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")", 'desc'=>'date', 'limit'=>3));
        $data['place'] = Doo::db()->find('Place', array('where'=>"parent IS NULL AND site = ".$data['site']->sid));
        if(count($data['place']) > 0)
            $data['place'] = $data['place'][0];
        else {
            $this->view()->render('/404', $data);
            return;
        }
        
        $data['places'] = Doo::db()->find('Place', array('where'=>'site = '.$data['site']->sid));
        $data['articles'] = $data['site']->getArticlesWoTeaser();
        
        // Teaser 1
        if(is_numeric($data['site']->teaser1)) {
            $data['teaser1'] = Doo::db()->find('Article', array('where'=>"aid = ".$data['site']->teaser1));
            $data['teaser1'] = $data['teaser1'][0];
        }
        elseif($data['site']->teaser1 == 'timeline_N')
            $data['teaser1'] = Doo::db()->find('Timeline', array('where'=>"quote = 'N' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser1 == 'timeline_NY') 
            $data['teaser1'] = Doo::db()->find('Timeline', array('where'=>"(quote = 'N' OR quote = 'Y') AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser1 == 'timeline_Y') 
            $data['teaser1'] = Doo::db()->find('Timeline', array('where'=>"quote = 'Y' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser1 == 'timeline_P') 
            $data['teaser1'] = Doo::db()->find('Timeline', array('where'=>"quote = 'P' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
    
        // Teaser 2
        if(is_numeric($data['site']->teaser2)) {
            $data['teaser2'] = Doo::db()->find('Article', array('where'=>"aid = ".$data['site']->teaser2));
            $data['teaser2'] = $data['teaser2'][0];
        }
        elseif($data['site']->teaser2 == 'timeline_N')
            $data['teaser2'] = Doo::db()->find('Timeline', array('where'=>"quote = 'N' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser2 == 'timeline_NY') 
            $data['teaser2'] = Doo::db()->find('Timeline', array('where'=>"(quote = 'N' OR quote = 'Y') AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser2 == 'timeline_Y') 
            $data['teaser2'] = Doo::db()->find('Timeline', array('where'=>"quote = 'Y' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser2 == 'timeline_P') 
            $data['teaser2'] = Doo::db()->find('Timeline', array('where'=>"quote = 'P' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
    
        // Teaser 3
        if(is_numeric($data['site']->teaser3)) {
            $data['teaser3'] = Doo::db()->find('Article', array('where'=>"aid = ".$data['site']->teaser3));
            $data['teaser3'] = $data['teaser3'][0];
        }
        elseif($data['site']->teaser3 == 'timeline_N')
            $data['teaser3'] = Doo::db()->find('Timeline', array('where'=>"quote = 'N' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser3 == 'timeline_NY') 
            $data['teaser3'] = Doo::db()->find('Timeline', array('where'=>"(quote = 'N' OR quote = 'Y') AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser3 == 'timeline_Y') 
            $data['teaser3'] = Doo::db()->find('Timeline', array('where'=>"quote = 'Y' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        elseif($data['site']->teaser3 == 'timeline_P') 
            $data['teaser3'] = Doo::db()->find('Timeline', array('where'=>"quote = 'P' AND ( place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.")) OR place IN (SELECT pid FROM place WHERE site = ".$data['site']->sid.") )", 'desc'=>'date', 'limit'=>3));
        
        $this->view()->render('/index', $data);
    }
    
    public function urlParser() {
        if(isset($this->params['article'])) {
            if($this->params['article'] == 'chronik')
                self::timeline();
            else
                self::article();
        }
        else
            self::place();
    
    }
    
    public function article() {
        $data = self::init();
        
        //$data['article'] = Doo::db()->find('Article', array('where'=>"aid IN (SELECT aid FROM article WHERE url LIKE '".$this->params['article']."%' ORDER BY date DESC)", 'desc'=>'date'));
        $data['article'] = Doo::db()->find('Article', array('where'=>"aid IN (SELECT aid FROM article WHERE url LIKE '".$this->params['article']."%' ORDER BY date DESC) ORDER BY date DESC, rev DESC"));
        $data['article'] = $data['article'][0];
        
        
        
        //var_dump($data['article']);
        
        //$data['place'] = Doo::db()->find('Place', array('where'=>"pid IN (SELECT pid FROM article_places WHERE aid = ".$data['article']->aid.") AND site = ".$data['site']->sid, 'desc'=>'parent'));
        $data['place'] = $data['article']->getPlace();
        //$data['galleries'] = $data['article']->getGalleries();
        
        $data['places'] = $data['site']->getPlaces();
        
        $data['title'] = $data['article']->title.' - '.$data['site']->name;
        $this->view()->render('/article', $data);
    }
    
    public function place() {
        $data = self::init();
        
        $data['place'] = Doo::db()->find('Place', array('where'=>"url LIKE '".$this->params['place']."%'"));
        
        /*$data['place'] = Doo::db()->find('Place', array('where'=>"pid IN (SELECT pid FROM article_places WHERE aid = ".$data['article']->aid.") AND site = ".$data['site']->sid));
        $data['place'] = $data['place'][0];*/
        
        $data['places'] = $data['site']->getPlaces();
        
        $data['articles'] = $data['place']->getArticles();
        $data['galleries'] = $data['place']->getGalleriesWithoutArticle();
        
        $arr = array_merge((array)$data['galleries'], (array)$data['articles']);
        //shuffle($arr);
        $m = count($arr);
        if($m == 2)
            $n = $m + 1;
        else
            $n = $m + 2;
        
        $list = array();
        for ($i = 1; $i <= $n; $i++) {
            if($i == 2)
                $list[$i] = 'DATA';
            elseif($m == 0 && $i == 1)
                $list[$i] = 'MAP';
            elseif($m == 1 && $i == 3)
                $list[$i] = 'MAP';
            elseif($m == 3 && $i == 3)
                $list[$i] = 'MAP';
            elseif($n >= 4 && $i == 6)
                $list[$i] = 'MAP';
            else 
                $list[$i] = array_pop($arr);
        }
        
        //var_dump($list);
        $data['list'] = $list;
        $data['title'] = $data['place']->name;
        if(strlen($data['place']->name_orig) > 0 && $data['place']->name_orig != $data['place']->name)
            $data['title'] .= ' - '.$data['place']->name_orig;
        if(strlen($data['place']->name_de) > 0 && $data['place']->name_de != $data['place']->name)
            $data['title'] .= ' - '.$data['place']->name_de;
        if(strlen($data['place']->name_en) > 0 && $data['place']->name_en != $data['place']->name)
            $data['title'] .= ' - '.$data['place']->name_en;
        
        $data['title'] .= ' - '.$data['site']->name;
        $this->view()->render('/place', $data);
    }
    
    public function showImageGallery() {
        $data = self::init();
        
        $data['gallery'] = Doo::db()->find('Gallery', array('where'=>"url LIKE '".$this->params['gallery']."%'"));
        
        if(count($data['gallery']) == 0)
            return Doo::conf()->APP_URL.'';
        else         
            $data['gallery'] = $data['gallery'][0];
        
        $data['images'] = Doo::db()->find('Media', array('where'=>"mid IN (SELECT mid FROM media_gallery WHERE gid = ".$data['gallery']->gid.")"));
        //$data['images'] = Doo::db()->find('Media', array('where'=>"url LIKE '".$this->params['place']."%'"));
        
        $data['places'] = $data['site']->getPlaces();
        $data['articles'] = $data['gallery']->getArticles();
        if(count($data['articles']) > 0) {
            $data['article'] = $data['articles'][0];
            $data['place'] = $data['article']->getPlace();
        }
        else {
            $data['article'] = null;
            $data['place'] = $data['gallery']->getPlace();
        }
        
        $data['title'] = $data['gallery']->title.' - Bilder & Fotos - '.$data['site']->name;
        $this->view()->render('/gallery', $data);
    }
    
    public function showImageGallery2() {
        $data = self::init();
        
        $data['gallery'] = Doo::db()->find('Gallery', array('where'=>"url LIKE '".$this->params['gallery']."%'"));
        
        if(count($data['gallery']) == 0)
            return Doo::conf()->APP_URL.'';
        else         
            $data['gallery'] = $data['gallery'][0];
        
        $data['images'] = Doo::db()->find('Media', array('where'=>"mid IN (SELECT mid FROM media_gallery WHERE gid = ".$data['gallery']->gid.")"));
        //$data['images'] = Doo::db()->find('Media', array('where'=>"url LIKE '".$this->params['place']."%'"));
        
        $data['places'] = $data['site']->getPlaces();
        $data['articles'] = $data['gallery']->getArticles();
        if(count($data['articles']) > 0) {
            $data['article'] = $data['articles'][0];
            $data['place'] = $data['article']->getPlace();
        }
        else {
            $data['article'] = null;
            $data['place'] = $data['gallery']->getPlace();
        }
        
        $data['title'] = $data['gallery']->title.' - Bilder & Fotos - '.$data['site']->name;
        $this->view()->render('/gallery2', $data);
    }
    
    public function showImageGallery3() {
        $data = self::init();
        
        $data['gallery'] = Doo::db()->find('Gallery', array('where'=>"url LIKE '".$this->params['gallery']."%'"));
        
        if(count($data['gallery']) == 0)
            return Doo::conf()->APP_URL.'';
        else         
            $data['gallery'] = $data['gallery'][0];
        
        $data['images'] = Doo::db()->find('Media', array('where'=>"mid IN (SELECT mid FROM media_gallery WHERE gid = ".$data['gallery']->gid.")"));
        //$data['images'] = Doo::db()->find('Media', array('where'=>"url LIKE '".$this->params['place']."%'"));
        
        $data['places'] = $data['site']->getPlaces();
        $data['articles'] = $data['gallery']->getArticles();
        if(count($data['articles']) > 0) {
            $data['article'] = $data['articles'][0];
            $data['place'] = $data['article']->getPlace();
        }
        else {
            $data['article'] = null;
            $data['place'] = $data['gallery']->getPlace();
        }
        
        $data['title'] = $data['gallery']->title.' - Bilder & Fotos - '.$data['site']->name;
        $this->view()->render('/gallery3', $data);
    }
    
        public function showImageGallery4() {
        $data = self::init();
        
        $data['gallery'] = Doo::db()->find('Gallery', array('where'=>"url LIKE '".$this->params['gallery']."%'"));
        
        if(count($data['gallery']) == 0)
            return Doo::conf()->APP_URL.'';
        else         
            $data['gallery'] = $data['gallery'][0];
        
        //zoom overwrite
        if(isset($_GET['z']) && is_numeric($_GET['z']) && $_GET['z'] > 0 && $_GET['z'] <= 18)
            $data['zoom'] = $_GET['z'];
        else
            $data['zoom'] = false;
        
        $data['images'] = Doo::db()->find('Media', array('where'=>"mid IN (SELECT mid FROM media_gallery WHERE gid = ".$data['gallery']->gid.")"));
        //$data['images'] = Doo::db()->find('Media', array('where'=>"url LIKE '".$this->params['place']."%'"));
        
        $data['places'] = $data['site']->getPlaces();
        $data['articles'] = $data['gallery']->getArticles();
        if(count($data['articles']) > 0) {
            $data['article'] = $data['articles'][0];
            $data['place'] = $data['article']->getPlace();
        }
        else {
            $data['article'] = null;
            $data['place'] = $data['gallery']->getPlace();
        }
        
        $data['title'] = $data['gallery']->title.' - Bilder & Fotos - '.$data['site']->name;
        $this->view()->render('/gallery4', $data);
    }
    
    public function showVideoGallery() {
        $data = self::init();
        
        $data['gallery'] = Doo::db()->find('Gallery', array('where'=>"url LIKE '".$this->params['gallery']."%'"));
        if(count($data['gallery']) == 0)
            return Doo::conf()->APP_URL.'';
        else         
            $data['gallery'] = $data['gallery'][0];
        
        $data['videos'] = Doo::db()->find('Media', array('where'=>"mid IN (SELECT mid FROM media_gallery WHERE gid = ".$data['gallery']->gid.")"));
        //$data['images'] = Doo::db()->find('Media', array('where'=>"url LIKE '".$this->params['place']."%'"));
        
        /*$data['place'] = Doo::db()->find('Place', array('where'=>"pid IN (SELECT pid FROM article_places WHERE aid = ".$data['article']->aid.") AND site = ".$data['site']->sid));
        $data['place'] = $data['place'][0];*/
        
        $data['places'] = $data['site']->getPlaces();
        $data['articles'] = $data['gallery']->getArticles();
        if(count($data['articles']) > 0)
            $data['article'] = $data['articles'][0];
        else
            $data['article'] = null;
        
        if($data['article'] !== null) 
            $data['place'] = $data['article']->getPlace();
        else 
            $data['place'] = $data['gallery']->getPlace();
        
        //$data['articles'] = null;
        
        $data['title'] = $data['gallery']->title.' - Video - '.$data['site']->name;
        $this->view()->render('/videoGallery', $data);
    }
    
    public function timeline() {
        $data = self::init();
        
        $data['timelines'] = Doo::db()->find('Timeline', array('where'=>"place IN (SELECT pid FROM place WHERE parent IN (SELECT pid FROM place WHERE url LIKE '".$this->params['place']."%')) OR place IN (SELECT pid FROM place WHERE url LIKE '".$this->params['place']."%')", 'desc'=>'date'));
        
        $data['place'] = Doo::db()->find('Place', array('where'=>"url LIKE '".$this->params['place']."%'"));
        $data['place'] = $data['place'][0];
        
        $data['places'] = $data['site']->getPlaces();
        $data['articles'] = $data['place']->getArticles();
        
        $data['title'] = 'Chronik und Pressespiegel - '.$data['site']->name;
        $data['tag'] = 'Aktuelles, Chronik, Historie, Nachrichten, News, Pressespiegel, Timeline, Zeitachse';
        $this->view()->render('/timeline', $data);
    }
    
    
    
    
    ////////////
    
    public function adminSites(){
        $data = self::init();
        
        $data['sites'] = Doo::db()->find('Site', array('asc'=>'name'));
        $this->view()->render('/admin_site', $data);
    }
    
    public function adminSiteEdit(){
        $data = self::init();
    
        if(is_numeric($this->params['sid'])) {
            $site = Doo::db()->find('Site', array('where'=>'sid = '.$this->params['sid']));
            $site = $site[0];
            
            if(isset($_POST['submit']) && isset($_POST['name']) && isset($_POST['domain'])) {
                $site->name = $_POST['name'];
                $site->teaser = $_POST['teaser'];
                $site->domain = $_POST['domain'];
                
                $site->teaser1 = $_POST['teaser1'];
                $site->teaser2 = $_POST['teaser2'];
                $site->teaser3 = $_POST['teaser3'];
                
                $site->update(array('setnulls'=>true));
                return Doo::conf()->APP_URL.'admin/site';
            }
        }
        elseif($this->params['sid'] == 'new') {
            $site = Doo::loadModel('Site', true);
            
            if(isset($_POST['submit']) && isset($_POST['name']) && isset($_POST['domain'])) {
                $site->name = $_POST['name'];
                $site->teaser = $_POST['teaser'];
                $site->domain = $_POST['domain'];
                $site->insert(array('setnulls'=>true));
                return Doo::conf()->APP_URL.'admin/site';
            }
        }
    
        $data['site'] = $site;
        $this->view()->render('/admin_site_edit', $data);
    }
    
    public function adminPlaces(){
        $data = self::init();
        
        $data['places'] = Doo::db()->find('Place', array('where'=>'site = '.$data['site']->sid));
        $this->view()->render('/admin_place', $data);
    }
    
    public function adminPlaceEdit(){
        $data = self::init();
    
        if(is_numeric($this->params['pid'])) {
            $place = Doo::db()->find('Place', array('where'=>'pid = '.$this->params['pid']));
            $place = $place[0];
            
            if(isset($_POST['submit']) && isset($_POST['name']) && isset($_POST['url'])) {
                if(isset($_POST['parent']) && $_POST['parent'] != 'null')
                    $place->parent = $_POST['parent'];
                else
                    $place->parent = null;
                $place->site = $_POST['site'];
                $place->name = $_POST['name'];
                $place->name_de = $_POST['name_de'];
                $place->name_en = $_POST['name_en'];
                $place->name_orig = $_POST['name_orig'];
                $place->teaser = $_POST['teaser'];
                $place->url = $_POST['url'];
                $place->geo_lat = $_POST['geo_lat'];
                $place->geo_lon = $_POST['geo_lon'];
                $place->geo_alt = $_POST['geo_alt'];
                $place->population = $_POST['population'];
                $place->density = $_POST['density'];
                $place->area = $_POST['area'];
                $place->maps_lat = $_POST['maps_lat'];
                $place->maps_lon = $_POST['maps_lon'];
                $place->maps_zoom = $_POST['maps_zoom'];
                $place->maps_type = $_POST['maps_type'];
                
                if(strlen($_POST['geo_lat']) == 0)
                    $place->geo_lat = null;
                if(strlen($_POST['geo_lon']) == 0)
                    $place->geo_lon = null;
                if(strlen($_POST['geo_alt']) == 0)
                    $place->geo_alt = null;
                if(strlen($_POST['population']) == 0)
                    $place->population = null;
                if(strlen($_POST['density']) == 0)
                    $place->density = null;
                if(strlen($_POST['area']) == 0)
                    $place->area = null;
                if(strlen($_POST['maps_lat']) == 0)
                    $place->maps_lat = null;
                if(strlen($_POST['maps_lon']) == 0)
                    $place->maps_lon = null;
                
                // galleries
                $map = Doo::db()->find('PlaceGallery', array('where'=>'pid = '.$this->params['pid']));
                if(count($map) > 0) {
                    foreach($map as $pg)
                        Doo::db()->delete($pg);
                }
                if(isset($_POST['galleries'])) {
                    foreach($_POST['galleries'] as $gid) {
                        $newg = Doo::loadModel('PlaceGallery', true);
                        $newg->pid = $place->pid;
                        $newg->gid = $gid;
                        $newg->insert();
                    }
                }
                
                $place->update(array('setnulls'=>true));
                return Doo::conf()->APP_URL.'admin/place';
            }
        }
        elseif($this->params['pid'] == 'new') {
            $place = Doo::loadModel('Place', true);
            
            if(isset($_POST['submit']) && isset($_POST['name']) && isset($_POST['url'])) {
                if(isset($_POST['parent']) && $_POST['parent'] != 'null')
                    $place->parent = $_POST['parent'];
                else
                    $place->parent = null;
                $place->site = $_POST['site'];
                $place->name = $_POST['name'];
                $place->name_de = $_POST['name_de'];
                $place->name_en = $_POST['name_en'];
                $place->name_orig = $_POST['name_orig'];
                $place->teaser = $_POST['teaser'];
                $place->url = $_POST['url'];
                $place->geo_lat = $_POST['geo_lat'];
                $place->geo_lon = $_POST['geo_lon'];
                $place->geo_alt = $_POST['geo_alt'];
                $place->population = $_POST['population'];
                $place->density = $_POST['density'];
                $place->area = $_POST['area'];
                $place->maps_lat = $_POST['maps_lat'];
                $place->maps_lon = $_POST['maps_lon'];
                $place->maps_zoom = $_POST['maps_zoom'];
                $place->maps_type = $_POST['maps_type'];
                
                if(strlen($_POST['geo_lat']) == 0)
                    $place->geo_lat = null;
                if(strlen($_POST['geo_lon']) == 0)
                    $place->geo_lon = null;
                if(strlen($_POST['geo_alt']) == 0)
                    $place->geo_alt = null;
                if(strlen($_POST['population']) == 0)
                    $place->population = null;
                if(strlen($_POST['density']) == 0)
                    $place->density = null;
                if(strlen($_POST['area']) == 0)
                    $place->area = null;
                if(strlen($_POST['maps_lat']) == 0)
                    $place->maps_lat = null;
                if(strlen($_POST['maps_lon']) == 0)
                    $place->maps_lon = null;
                
                $pid = $place->insert(array('setnulls'=>true));
                
                // galleries
                if(isset($_POST['galleries'])) {
                    foreach($_POST['galleries'] as $gid) {
                        $newg = Doo::loadModel('PlaceGallery', true);
                        $newg->pid = $pid;
                        $newg->gid = $gid;
                        $newg->insert();
                    }
                }
                
                return Doo::conf()->APP_URL.'admin/place';
            }
        }
    
        $data['place'] = $place;
        $this->view()->render('/admin_place_edit', $data);
    }
    
    public function adminSiteHeaderImage(){
        $data = self::init();
        
        if(isset($_POST['submit']) && isset($_POST['header']) && is_numeric($_POST['header']) && is_numeric($this->params['sid'])) {
            $site = Doo::db()->find('Site', array('where'=>'sid = '.$this->params['sid']));
            $site = $site[0];
            $site->header = $_POST['header'];
            $site->update();
        }
        
        if(isset($this->params['gid'])) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid']));
            $gallery = $gallery[0];
            $data['gallery'] = $gallery;
        }
        else {
            $data['galleries'] = $data['site']->getGalleries();
            $data['gallery'] = $data['galleries'][0];
        }
        
        if(count($data['gallery']->getMedias()) > 0)
            $data['medias'] = $data['gallery']->getMedias();
        else
            $data['medias'] = array();
        
        $data['sid'] = $this->params['sid'];
        $data['gid'] = $data['gallery']->gid;
        
        $this->view()->render('/admin_site_header', $data);
    }
    
    public function adminPlaceHeaderImage(){
        $data = self::init();
        
        $place = Doo::db()->find('Place', array('where'=>'pid = '.$this->params['pid']));
        $place = $place[0];
        
        if(isset($_POST['submit']) && isset($_POST['header']) && (is_numeric($_POST['header']) || $_POST['header'] == 'nopic') && is_numeric($this->params['pid'])) {
            if($_POST['header'] == 'nopic')
                $place->header = null;
            else
                $place->header = $_POST['header'];
                
            $place->update(array('setnulls'=>true));
        }
        
        if(isset($this->params['gid'])) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid']));
            $gallery = $gallery[0];
            $data['gallery'] = $gallery;
        }
        elseif(is_numeric($place->header)) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid IN (SELECT gid from media_gallery WHERE mid = '.$place->header.')'));
            $gallery = $gallery[0];
            $data['gallery'] = $gallery;
        }
        else {
            $data['galleries'] = $data['site']->getGalleries();
            $data['gallery'] = $data['galleries'][0];
        }
        
        if(count($data['gallery']->getMedias()) > 0)
            $data['medias'] = $data['gallery']->getMedias();
        else
            $data['medias'] = array();
        
        $data['pid'] = $this->params['pid'];
        $data['gid'] = $data['gallery']->gid;
        $data['place'] = $place;
        
        $this->view()->render('/admin_place_header', $data);
    }
    
    public function adminArticles(){
        $data = self::init();
        
        $data['articles'] = $data['site']->getArticles(99, 'aid DESC');
        $this->view()->render('/admin_article', $data);
    }
    
    public function adminArticleEdit(){
        $data = self::init();
    
        if(is_numeric($this->params['aid'])) {
            $article = Doo::db()->find('Article', array('where'=>'aid = '.$this->params['aid'], 'desc'=>'rev'));
            $article = $article[0];
            
            if(isset($_POST['submit']) && isset($_POST['title']) && isset($_POST['url'])) {
                $article->title = $_POST['title'];
                $article->teaser = $_POST['teaser'];
                $article->url = $_POST['url'];
                $article->html = $_POST['html'];
                $article->addition = $_POST['addition'];
                
                if(strlen($_POST['maps_lat']) > 2)
                    $article->maps_lat = $_POST['maps_lat'];
                else 
                    $article->maps_lat = null;
                if(strlen($_POST['maps_lon']) > 2)
                    $article->maps_lon = $_POST['maps_lon'];
                else 
                    $article->maps_lon = null;
                if(strlen($_POST['maps_zoom']) > 0 && is_numeric($_POST['maps_zoom']))
                    $article->maps_zoom = $_POST['maps_zoom'];
                else
                    $article->maps_zoom = null;
                $article->maps_type = $_POST['maps_type'];
                
                // places
                $map = Doo::db()->find('ArticlePlaces', array('where'=>'aid = '.$this->params['aid']));
                if(count($map) > 0) {
                    foreach($map as $ap)
                        Doo::db()->delete($ap);
                }
                
                foreach($_POST['places'] as $pid) {
                    $newp = Doo::loadModel('ArticlePlaces', true);
                    $newp->aid = $article->aid;
                    $newp->pid = $pid;
                    $newp->insert();
                }
                
                // galleries
                $map = Doo::db()->find('ArticleGallery', array('where'=>'aid = '.$this->params['aid']));
                if(count($map) > 0) {
                    foreach($map as $ag)
                        Doo::db()->delete($ag);
                }
                if(isset($_POST['galleries'])) {
                    foreach($_POST['galleries'] as $gid) {
                        $newg = Doo::loadModel('ArticleGallery', true);
                        $newg->aid = $article->aid;
                        $newg->gid = $gid;
                        $newg->insert();
                    }
                }
                
                $article->rev = $article->rev + 1;
                $article->date = null;
                
                $article->insert(array('setnulls'=>true));
                
                return Doo::conf()->APP_URL.'admin/article';
            }
        }
        elseif($this->params['aid'] == 'new') {
            $article = Doo::loadModel('Article', true);
            
            if(isset($_POST['submit']) && isset($_POST['title']) && isset($_POST['url'])) {
                $article->title = $_POST['title'];
                $article->teaser = $_POST['teaser'];
                $article->url = $_POST['url'];
                $article->html = $_POST['html'];
                $article->addition = $_POST['addition'];
                
                $article->maps_lat = $_POST['maps_lat'];
                $article->maps_lon = $_POST['maps_lon'];
                $article->maps_zoom = $_POST['maps_zoom'];
                $article->maps_type = $_POST['maps_type'];
                
                $row = Doo::db()->fetchRow("SELECT MAX(aid)+1 AS aid FROM article");
                $article->aid = $row['aid'];
                $article->rev = 0;
                
                // places
                foreach($_POST['places'] as $pid) {
                    $newp = Doo::loadModel('ArticlePlaces', true);
                    $newp->aid = $article->aid;
                    $newp->pid = $pid;
                    $newp->insert();
                }
                
                // galleries
                if(isset($_POST['galleries'])) {
                    foreach($_POST['galleries'] as $gid) {
                        $newg = Doo::loadModel('ArticleGallery', true);
                        $newg->aid = $article->aid;
                        $newg->gid = $gid;
                        $newg->insert();
                    }
                }
                
                $article->insert(array('setnulls'=>true));
                
                return Doo::conf()->APP_URL.'admin/article';
            }
        }
    
        $data['article'] = $article;
        $this->view()->render('/admin_article_edit', $data);
    }
    
    public function adminArticleTeaserImage(){
        $data = self::init();
        
        if(isset($_POST['submit']) && isset($_POST['teaser']) && is_numeric($_POST['teaser']) && is_numeric($this->params['aid'])) {
            $aiArr = Doo::db()->find('ArticleImage', array('where'=>'article = '.$this->params['aid'].' AND type = \'teaser\''));
            if(count($aiArr) > 0) {
                foreach($aiArr as $ai)
                    Doo::db()->delete($ai);
            }
        
            $ai = Doo::loadModel('ArticleImage', true);
            $ai->article = $this->params['aid'];
            $ai->media = $_POST['teaser'];
            $ai->type = 'teaser';
            $ai->insert();
        }
        
        if(isset($this->params['gid'])) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid']));
            $gallery = $gallery[0];
            $data['gallery'] = $gallery;
        }
        else {
            $data['galleries'] = $data['site']->getGalleries();
            $data['gallery'] = $data['galleries'][0];
        }
        
        if(count($data['gallery']->getMedias()) > 0)
            $data['medias'] = $data['gallery']->getMedias();
        else
            $data['medias'] = array();
        
        $data['aid'] = $this->params['aid'];
        $data['gid'] = $data['gallery']->gid;
        
        $this->view()->render('/admin_article_teaser', $data);
    }
    
    public function adminArticleHeaderImage(){
        $data = self::init();
        
        if(isset($_POST['submit']) && isset($_POST['header']) && count($_POST['header']) >= 1 && is_numeric($this->params['aid'])) {
            $aiArr = Doo::db()->find('ArticleImage', array('where'=>'article = '.$this->params['aid'].' AND type = \'header\''));
            if(count($aiArr) > 0) {
                foreach($aiArr as $ai)
                    Doo::db()->delete($ai);
            }
        
            foreach($_POST['header'] as $header) {
                $ai = Doo::loadModel('ArticleImage', true);
                $ai->article = $this->params['aid'];
                $ai->media = $header;
                $ai->type = 'header';
                $ai->insert();
            }
        }
        
        if(isset($this->params['gid'])) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid']));
            $gallery = $gallery[0];
            $data['gallery'] = $gallery;
        }
        else {
            $data['galleries'] = $data['site']->getGalleries();
            $data['gallery'] = $data['galleries'][0];
        }
        
        if(count($data['gallery']->getMedias()) > 0)
            $data['medias'] = $data['gallery']->getMedias();
        else
            $data['medias'] = array();
        
        $data['aid'] = $this->params['aid'];
        $data['gid'] = $data['gallery']->gid;
        
        $this->view()->render('/admin_article_header', $data);
    }
    
    public function adminGalleries(){
        $data = self::init();
        
        if(isset($_POST['edit']) && isset($_POST['media']) && is_numeric($_POST['media'])) {
            return Doo::conf()->APP_URL.'admin/media/'.$_POST['media'];
        }
        elseif(isset($_POST['delete']) && isset($_POST['media']) && is_numeric($_POST['media'])) {
            // delete image db object and files
            $media = Doo::db()->find('Media', array('where'=>'mid = '.$_POST['media']));
            $media = $media[0];
            $media->remove();
            $media->delete();
            
            // delete gallery links
            $media = Doo::db()->find('MediaGallery', array('where'=>'mid = '.$_POST['media']));
            foreach($media as $m)
                $m->delete();
                
            // delete article links
            $media = Doo::db()->find('ArticleImage', array('where'=>'media = '.$_POST['media']));
            foreach($media as $m)
                $m->delete();
        }
        elseif(isset($_POST['rotate']) && isset($_POST['media']) && is_numeric($_POST['media'])) {
            $media = Doo::db()->find('Media', array('where'=>'mid = '.$_POST['media']));
            $media = $media[0];
            $media->rotate();
        }
        
        $data['galleries'] = $data['site']->getGalleries();
        if(isset($this->params['gid'])) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid']));
            $gallery = $gallery[0];
            $data['gallery'] = $gallery;
        }
        elseif(count($data['galleries']) > 0)
            $data['gallery'] = $data['galleries'][0];
            
        if(count($data['galleries']) > 0 && count($data['gallery']->getMedias()) > 0)
            $data['medias'] = $data['gallery']->getMedias();
        else
            $data['medias'] = array();
        
        $this->view()->render('/admin_gallery', $data);
    }
    
    public function adminGalleryEdit(){
        $data = self::init();
    
        if(is_numeric($this->params['gid'])) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid'], 'asc'=>'title'));
            $gallery = $gallery[0];
            
            if(isset($_POST['submit']) && isset($_POST['title']) && isset($_POST['url'])) {
                $gallery->title = $_POST['title'];
                $gallery->text = $_POST['text'];
                $gallery->url = $_POST['url'];
                if(strlen($_POST['maps_lat']) == 0)
                    $gallery->maps_lat = null;
                else
                    $gallery->maps_lat = $_POST['maps_lat'];
                if(strlen($_POST['maps_lon']) == 0)
                    $gallery->maps_lon = null;
                else
                    $gallery->maps_lon = $_POST['maps_lon'];
                if(strlen($_POST['maps_zoom']) == 0)
                    $gallery->maps_zoom = null;
                else
                    $gallery->maps_zoom = $_POST['maps_zoom'];
                $gallery->maps_type = $_POST['maps_type'];
                
                $gallery->update(array('setnulls'=>true));
                return Doo::conf()->APP_URL.'admin/gallery/show/'.$gallery->gid;
            }
        }
        elseif($this->params['gid'] == 'new') {
            $gallery = Doo::loadModel('Gallery', true);
            
            if(isset($_POST['submit']) && isset($_POST['title']) && isset($_POST['url'])) {
                $gallery->title = $_POST['title'];
                $gallery->text = $_POST['text'];
                $gallery->url = $_POST['url'];
                if(strlen($_POST['maps_lat']) == 0)
                    $gallery->maps_lat = null;
                else
                    $gallery->maps_lat = $_POST['maps_lat'];
                if(strlen($_POST['maps_lon']) == 0)
                    $gallery->maps_lon = null;
                else
                    $gallery->maps_lon = $_POST['maps_lon'];
                if(strlen($_POST['maps_zoom']) == 0)
                    $gallery->maps_zoom = null;
                else
                    $gallery->maps_zoom = $_POST['maps_zoom'];
                $gallery->maps_type = $_POST['maps_type'];
                
                $gid = $gallery->insert(array('setnulls'=>true));
                return Doo::conf()->APP_URL.'admin/gallery/show/'.$gid;
            }
        }
    
        $data['gallery'] = $gallery;
        $this->view()->render('/admin_gallery_edit', $data);
    }
    
    public function adminGalleryTeaserImage(){
        $data = self::init();
        
        if(isset($_POST['submit']) && isset($_POST['teaser']) && is_numeric($_POST['teaser']) && is_numeric($this->params['gid'])) {
            $gals = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid']));
            foreach($gals as $g) {
                $g->teaser = $_POST['teaser'];
                $g->update();
            }
        }
        
        if(isset($this->params['gid_sel'])) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid_sel']));
            $gallery = $gallery[0];
            $data['gallery'] = $gallery;
        }
        else {
            $data['galleries'] = $data['site']->getGalleries();
            $data['gallery'] = $data['galleries'][0];
        }
        
        if(count($data['gallery']->getMedias()) > 0)
            $data['medias'] = $data['gallery']->getMedias();
        else
            $data['medias'] = array();
        
        $data['gid'] = $this->params['gid'];
        $data['gid_sel'] = $data['gallery']->gid;
        
        $this->view()->render('/admin_gallery_teaser', $data);
    }
    
    public function adminMediaUpload(){
        $data = self::init();
                
        if(isset($_FILES['file']) && count($_FILES['file']['tmp_name']) > 0) {
            for ($i = 0; $i < count($_FILES['file']['tmp_name']); $i++) {
                $arr = array();
                $arr['name'] = $_FILES['file']['name'][$i];
                $arr['type'] = $_FILES['file']['type'][$i];
                $arr['tmp_name'] = $_FILES['file']['tmp_name'][$i];
                $arr['size'] = $_FILES['file']['size'][$i];
                $arr['error'] = $_FILES['file']['error'][$i];
                
                if(stripos($arr['name'], '.jpg') !== false && $arr['type'] == 'image/jpeg') {
                    $media = Doo::loadModel('Media', true);
                    // upload image
                    $media->uploadJPEG($arr);
                    // create image in database
                    $mid = $media->insert(array('setnulls'=>true));
                    // map image to gallery
                    $mmap = Doo::loadModel('MediaGallery', true);
                    $mmap->mid = $mid;
                    $mmap->gid = $this->params['gid'];
                    $mmap->insert();
                }
                elseif(stripos($arr['name'], '.png') !== false && $arr['type'] == 'image/png') {
                    $media = Doo::loadModel('Media', true);
                    // upload image
                    $media->uploadPNG($arr);
                    // create image in database
                    $mid = $media->insert(array('setnulls'=>true));
                    // map image to gallery
                    $mmap = Doo::loadModel('MediaGallery', true);
                    $mmap->mid = $mid;
                    $mmap->gid = $this->params['gid'];
                    $mmap->insert();
                }
            }
        }
        
        
        /*if(isset($_FILES['file']) && stripos($_FILES['file'][0]['name'], '.jpg') !== false && $_FILES['file'][0]['type'] == 'image/jpeg') {
            $media->uploadJPEG($_FILES['file']);
        }
        elseif(isset($_FILES['file']) && stripos($_FILES['file']['name'], '.mp4') !== false && $_FILES['file']['type'] == 'video/mp4') {
            //$media->uploadMP4($_FILES['file']);
        }
        else {
            return;
        }*/
        
        
        
        /*$exifdata = exif_read_data($_FILES['file']['tmp_name'],"",true,false);
        var_dump($exifdata);*/
        return Doo::conf()->APP_URL.'admin/gallery/show/'.$this->params['gid'];
    }
    
    public function adminVideoUpload(){
        $data = self::init();
        
        $media = Doo::loadModel('Media', true);
        
        if(isset($_POST['submit'])) {
            
            $media->text = $_POST['text'];
            
            if((isset($_FILES['file_1']) && $_FILES['file_1']['type'] == 'video/mp4') || 
               (isset($_FILES['file_2']) && $_FILES['file_2']['type'] == 'video/mp4') || 
               (isset($_FILES['file_3']) && $_FILES['file_3']['type'] == 'video/mp4')) {
                $media->type = 'video/mp4';
                $mid = $media->insert(array('setnulls'=>true));
                $media->uploadMP4($mid, $_FILES);
                
                $mmap = Doo::loadModel('MediaGallery', true);
                $mmap->mid = $mid;
                $mmap->gid = $_POST['gallery'];
                $mmap->insert();
            }
        }
    
        $data['media'] = $media;
        $data['video'] = Doo::loadModel('MediaVideo', true);
        $data['gid'] = $this->params['gid'];
        $this->view()->render('/admin_media_videoupload', $data);
    }
    
    public function adminVideoTeaserImage(){
        $data = self::init();
        
        if(isset($_POST['submit']) && isset($_POST['teaser']) && is_numeric($_POST['teaser']) && is_numeric($this->params['mid'])) {
            $mvs = Doo::db()->find('MediaVideo', array('where'=>'media = '.$this->params['mid']));
            foreach($mvs as $mv) {
                $mv->teaser = $_POST['teaser'];
                $mv->update();
            }
        }
        
        if(isset($this->params['gid'])) {
            $gallery = Doo::db()->find('Gallery', array('where'=>'gid = '.$this->params['gid']));
            $gallery = $gallery[0];
            $data['gallery'] = $gallery;
        }
        else {
            $data['galleries'] = $data['site']->getGalleries();
            $data['gallery'] = $data['galleries'][0];
        }
        
        if(count($data['gallery']->getMedias()) > 0)
            $data['medias'] = $data['gallery']->getMedias();
        else
            $data['medias'] = array();
        
        $data['mid'] = $this->params['mid'];
        $data['gid'] = $data['gallery']->gid;
        
        $this->view()->render('/admin_media_videoteaser', $data);
    }
    
    public function adminMediaEdit(){
        $data = self::init();
        
        $media = Doo::db()->find('Media', array('where'=>'mid = '.$this->params['mid']));
        if(count($media) == 1)
            $data['media'] = $media[0];
        else
            return Doo::conf()->APP_URL.'admin/gallery';
        
        if(isset($_POST['submit']) && isset($_POST['text'])) {
            $data['media']->text = $_POST['text'];
                
            $data['media']->update(array('setnulls'=>true));
            //return Doo::conf()->APP_URL.'admin/gallery/show/'.$gid;
        }
        
        $this->view()->render('/admin_media_edit', $data);
    }
    
    public function adminTimeline(){
        $data = self::init();
        
        $data['timelines'] = $data['site']->getTimelines(99, 'tid DESC');
        $this->view()->render('/admin_timeline', $data);
    }
    
    public function adminTimelineEdit(){
        $data = self::init();
    
        if(is_numeric($this->params['tid'])) {
            $timeline = Doo::db()->find('Timeline', array('where'=>'tid = '.$this->params['tid']));
            $timeline = $timeline[0];
            
            if(isset($_POST['submit']) && isset($_POST['date']) && isset($_POST['text'])) {
                $timeline->date = $_POST['date'];
                $timeline->text = $_POST['text'];
                $timeline->link = $_POST['link'];
                $timeline->place = $_POST['place'];
                
                if(isset($_POST['quote']) && $_POST['quote'] == 'Y')
                    $timeline->quote = 'Y';
                elseif(isset($_POST['quote']) && $_POST['quote'] == 'P')
                    $timeline->quote = 'P';
                else 
                    $timeline->quote = 'N';
                
                $timeline->update(array('setnulls'=>true));
                
                return Doo::conf()->APP_URL.'admin/timeline';
            }
        }
        elseif($this->params['tid'] == 'new') {
            $timeline = Doo::loadModel('Timeline', true);
            
            if(isset($_POST['submit']) && isset($_POST['date']) && isset($_POST['text'])) {
                $timeline->date = $_POST['date'];
                $timeline->text = $_POST['text'];
                $timeline->link = $_POST['link'];
                $timeline->place = $_POST['place'];
                
                if(isset($_POST['quote']) && $_POST['quote'] == 'Y')
                    $timeline->quote = 'Y';
                elseif(isset($_POST['quote']) && $_POST['quote'] == 'P')
                    $timeline->quote = 'P';
                else 
                    $timeline->quote = 'N';
                
                $timeline->insert(array('setnulls'=>true));
                
                return Doo::conf()->APP_URL.'admin/timeline';
            }
        }
    
        $data['timeline'] = $timeline;
        $this->view()->render('/admin_timeline_edit', $data);
    }
    
    public function test() {
        $filename = Doo::conf()->SITE_PATH.'media/video/P1020235_1080.mp4';
        
        require_once(Doo::conf()->SITE_PATH.'protected/plugin/getid3/getid3.php');
        $getID3 = new getID3;
        $file = $getID3->analyze($filename);
        
        var_dump($file);
        
        
        echo("Duration: ".$file['playtime_string'].
        " / Dimensions: ".$file['video']['resolution_x']." wide by ".$file['video']['resolution_y']." tall".
        " / Filesize: ".$file['filesize']." bytes<br />");
        
        
    }
    
    ///////////////////////////////////////////////
    
    public function allurl(){    
        Doo::loadCore('app/DooSiteMagic');
        DooSiteMagic::showAllUrl();    
    }
    
    public function debug(){
        Doo::loadCore('app/DooSiteMagic');
        DooSiteMagic::showDebug($this->params['filename']);
    }
    
    /*public function gen_sitemap_controller(){
        //This will replace the routes.conf.php file
        Doo::loadCore('app/DooSiteMagic');
        DooSiteMagic::buildSitemap(true);        
        DooSiteMagic::buildSite();
    }
    
    public function gen_sitemap(){
        //This will write a new file,  routes2.conf.php file
        Doo::loadCore('app/DooSiteMagic');
        DooSiteMagic::buildSitemap();        
    }*/
    
    public function gen_site(){
        Doo::loadCore('app/DooSiteMagic');
        DooSiteMagic::buildSite();
    }
    
    public function gen_model(){
        Doo::loadCore('db/DooModelGen');
        DooModelGen::genMySQL();
    }
}
?>
* Stack Trace...
- /var/customers/webs/vworld/app/index.php(29) calling run()
- /var/customers/webs/vworld/dooframework/app/DooWebApp.php(34) calling routeTo()
- /var/customers/webs/vworld/dooframework/app/DooWebApp.php(159) calling urlParser()
- /var/customers/webs/vworld/app/protected/controller/MainController.php(102) calling place()
* Variables... Conf . GET . POST . Session . Cookie
object(DooConfig)#1 (25) {
["AUTOLOAD"] => NULL
["SITE_PATH"] => string(31) "/var/customers/webs/vworld/app/"
["PROTECTED_FOLDER"] => string(10) "protected/"
["BASE_PATH"] => string(40) "/var/customers/webs/vworld/dooframework/"
["LOG_PATH"] => NULL
["APP_URL"] => string(25) "http://mali.vthailand.de/"
["SUBFOLDER"] => string(1) "/"
["APP_MODE"] => string(3) "dev"
["AUTOROUTE"] => bool(false)
["DEBUG_ENABLED"] => bool(true)
["ERROR_404_DOCUMENT"] => NULL
["ERROR_404_ROUTE"] => string(6) "/error"
["CACHE_PATH"] => NULL
["AUTO_VIEW_RENDER_PATH"] => string(16) "/:place/:article"
["MEMCACHE"] => NULL
["TEMPLATE_ENGINE"] => string(12) "DooViewBasic"
["TEMPLATE_SHOW_COMMENT"] => NULL
["TEMPLATE_ALLOW_PHP"] => NULL
["TEMPLATE_COMPILE_ALWAYS"] => bool(true)
["TEMPLATE_GLOBAL_TAGS"] => NULL
["MODULES"] => NULL
["APP_NAMESPACE_ID"] => NULL
["CHMOD_DEFAULT"] => int(511)
["FROM_CLI"] => bool(false)
["MEDIA_PATH"] => string(37) "/var/customers/webs/vworld/app/media/"
}
DooPHP Diagnostics - Call to a member function getArticles() on null DooPHPCall to a member function getArticles() on null
See file /var/customers/webs/vworld/app/index.php
+ Error on line 29
Doo::app()->run();<?php
include './protected/config/common.conf.php';
include './protected/config/routes.conf.php';
include './protected/config/db.conf.php';
#Just include this for production mode
//include $config['BASE_PATH'].'deployment/deploy.php';
include $config['BASE_PATH'].'Doo.php';
include $config['BASE_PATH'].'app/DooConfig.php';
# Uncomment for auto loading the framework classes.
//spl_autoload_register('Doo::autoload');
Doo::conf()->set($config);
# remove this if you wish to see the normal PHP error view.
include $config['BASE_PATH'].'diagnostic/debug.php';
# database usage
//Doo::useDbReplicate(); #for db replication master-slave usage
//Doo::db()->setMap($dbmap);
Doo::db()->setDb($dbconfig, $config['APP_MODE']);
//Doo::db()->sql_tracking = true; #for debugging/profiling purpose
Doo::app()->route = $route;
# Uncomment for DB profiling
//Doo::logger()->beginDbProfile('doowebsite');
//Doo::logger()->endDbProfile('doowebsite');
//Doo::logger()->rotateFile(20);
//Doo::logger()->writeDbProfiles();
?>* Stack Trace...
Error Object
(
[message:protected] => Call to a member function getArticles() on null
[string:Error:private] =>
[code:protected] => 0
[file:protected] => /var/customers/webs/vworld/app/protected/controller/MainController.php
[line:protected] => 138
[trace:Error:private] => Array
(
[0] => Array
(
[file] => /var/customers/webs/vworld/app/protected/controller/MainController.php
[line] => 102
[function] => place
[class] => MainController
[type] => ->
)
[1] => Array
(
[file] => /var/customers/webs/vworld/dooframework/app/DooWebApp.php
[line] => 159
[function] => urlParser
[class] => MainController
[type] => ->
)
[2] => Array
(
[file] => /var/customers/webs/vworld/dooframework/app/DooWebApp.php
[line] => 34
[function] => routeTo
[class] => DooWebApp
[type] => ->
)
[3] => Array
(
[file] => /var/customers/webs/vworld/app/index.php
[line] => 29
[function] => run
[class] => DooWebApp
[type] => ->
)
)
[previous:Error:private] =>
)
* Variables... Conf . GET . POST . Session . Cookie
object(DooConfig)#1 (25) {
["AUTOLOAD"] => NULL
["SITE_PATH"] => string(31) "/var/customers/webs/vworld/app/"
["PROTECTED_FOLDER"] => string(10) "protected/"
["BASE_PATH"] => string(40) "/var/customers/webs/vworld/dooframework/"
["LOG_PATH"] => NULL
["APP_URL"] => string(25) "http://mali.vthailand.de/"
["SUBFOLDER"] => string(1) "/"
["APP_MODE"] => string(3) "dev"
["AUTOROUTE"] => bool(false)
["DEBUG_ENABLED"] => bool(true)
["ERROR_404_DOCUMENT"] => NULL
["ERROR_404_ROUTE"] => string(6) "/error"
["CACHE_PATH"] => NULL
["AUTO_VIEW_RENDER_PATH"] => string(16) "/:place/:article"
["MEMCACHE"] => NULL
["TEMPLATE_ENGINE"] => string(12) "DooViewBasic"
["TEMPLATE_SHOW_COMMENT"] => NULL
["TEMPLATE_ALLOW_PHP"] => NULL
["TEMPLATE_COMPILE_ALWAYS"] => bool(true)
["TEMPLATE_GLOBAL_TAGS"] => NULL
["MODULES"] => NULL
["APP_NAMESPACE_ID"] => NULL
["CHMOD_DEFAULT"] => int(511)
["FROM_CLI"] => bool(false)
["MEDIA_PATH"] => string(37) "/var/customers/webs/vworld/app/media/"
}
$_COOKIE Variables array(0) {
}