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'] = $data['place'][0];

        
        
/*$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...

  1. /var/customers/webs/vworld/app/index.php(29) calling run()
  2. /var/customers/webs/vworld/dooframework/app/DooWebApp.php(34) calling routeTo()
  3. /var/customers/webs/vworld/dooframework/app/DooWebApp.php(159) calling urlParser()
  4. /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(20) "http://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

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::app()->run();

//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(20) "http://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) {
}