set('DEBUG',3); $f3->set('CACHE',FALSE); $f3->set('AUTOLOAD', ROOT.'app/'); $f3->set('UI', implode(';',array( ROOT.'app/views/', ROOT.'content/' // content folders can contain .html templates ))); if(!is_dir($f3->get('TEMP'))) { mkdir($f3->get('TEMP')); } ///////////////////////// // main configuration: // ///////////////////////// $f3->config( ROOT.'main.cfg' ); if(!setlocale(LC_TIME, 'de_DE.UTF-8')) { //echo "locale not set"; } /////////////////////////////////////////////// // configuration based on configuration file // /////////////////////////////////////////////// // set language $languages = $f3->get('languages'); $f3->set('default_lang', array_shift($languages)); if (in_array(strtolower($f3->get('GET.lang')), $languages)) { $f3->set('LANG', strtolower($f3->get('GET.lang'))); } else { $f3->set('LANG', $f3->get('default_lang')); } // set content dir if(array_key_exists($f3->get('LANG'), $f3->get('content'))) { $content_dir=$f3->get('content.'.$f3->get('LANG')); } else { $content_dir=$f3->get('content.'.$f3->get('default_lang')); } $f3->set('CONTENT', $content_dir); function menu_recursion($m,$root="") { $f3 = \Base::instance(); //$url = explode("/", $f3->get('url')); $out=[]; foreach ($m as $key=>$value) { $folder = $key == "index" ? "" : "/".$key; $path = $root.$folder; if (is_array($value)) { # submenu $submenu=menu_recursion($value,$path); $out[$path]=$submenu[$path]; unset($submenu[$path]); $out[$path]['submenu']=$submenu; } else { $class=""; $ex = explode(":=", $value); if (count($ex) > 1) { # external link $href = $ex[1]; } else { # internal link $href = $f3->get('SITE_URL').$path; $class .= in_array($path,$f3->get('url')) ? ' active' : ' away'; } $out[$path]['name']=$ex[0]; $out[$path]['href']=$href; $out[$path]['class']=$class; } } return $out; } function read_menu($menu_name) { $f3 = \Base::instance(); if(array_key_exists($f3->get('LANG'), $f3->get('nav.'.$menu_name))) { $menu=$f3->get('nav.'.$menu_name.'.'.$f3->get('LANG')); } else { $menu=$f3->get('nav.'.$menu_name.'.'.$f3->get('default_lang')); } if (is_array($menu)) { $menu=menu_recursion($menu); } $f3->set('navi.'.$menu_name, $menu); } // this is needed so the menu can compare the current page with a link to it // and use this information to determine the active state $tmp_url = substr($_SERVER['REQUEST_URI'],1); $url=substr($tmp_url,0,(strpos($tmp_url,'?') === false) ? 999 : strpos($tmp_url,'?')); $url_ex=explode('/',$url); $url=array(); for ($i=1;$i<=count($url_ex);$i++) { $url[]="/".implode("/",array_slice($url_ex,0,$i)); } $f3->set('url', $url); $f3->set('level', 1); // this is for templates, to be abl to count nesting read_menu("main"); read_menu("footer"); read_menu("network"); read_menu("languages"); /////////////////////////////////// // development utility functions // /////////////////////////////////// function debug($Message=".") { if(DEBUG > 0) { echo "
".$Message; } } ############################################################################## // this need to go away from here ----------------------------------------- // just to be more tidy etc. function is_image($path) { $ex = explode('.',$path); $ext = array_pop($ex); return in_array($ext,array( 'jpg', 'jpeg', 'png' )); } function pic_cache($in1,$inwidth=360){ $f3 = \Base::instance(); if(is_image($in1)) { $info = pathinfo($in1); $fn = basename($in1,'.'.$info['extension']); $width=$inwidth; $name = md5($in1.$width); $name = sprintf("%s%s.png",$fn,$name); $out ='rsc/img_display/s'.$name; if(!file_exists($in1)) { $in1='rsc/img/default.png'; } if(!file_exists($out)) { $img1 = new Image($in1); $img1->resize($width); $f3->write($out,$img1->dump('png',9)); } } elseif(!strncmp("locallink:",$in1, strlen("locallink:"))) { $key = substr($in1, strlen("locallink:")); // localize internal links if($f3->get('LANG') != 'DE') { $key .= "?lang=".$f3->get('LANG'); } $out = $key; } else { $out = $in1; } return $out; } //------------------------------------------------------------------------ ############################################################################### if ($f3->get("GET.admin")) { $admin = new \Controller\Admin; $f3->set('backend',$admin->index()); } else { $f3->set('backend',false); } // HTML preloading of images // this could also find some better place $f3->mset(array( 'cached_images' => array(\Controller\Page::check_folder_for_backgroundimage('content/')) )); $f3->run(); echo \Template::instance()->render($f3->get('template'));