X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;f=wwwroot%2Fnodes.php;h=9da99532f7f09664c8936eb57cb1ed60c970d8cc;hb=94c8f5b3e574715cc692f8a92f8d332e0c55804a;hp=9a5ff1bb832ebe3462f342b389d19f49e26c0b77;hpb=5b9c0808f40b7b6aa4545625b4dfa6a909f15e4e;p=mirrors%2FKyberia-bloodline.git diff --git a/wwwroot/nodes.php b/wwwroot/nodes.php index 9a5ff1b..9da9953 100644 --- a/wwwroot/nodes.php +++ b/wwwroot/nodes.php @@ -1,4 +1,7 @@ "); var_dump(preg_split('/\//', $_SERVER['PATH_INFO'])); die(); //PATH_INFO Debug (usefull when messing with mod_rewrite) // output buffering forcing (mx) if (!empty($_POST['FORCE_OB']) && $_POST['FORCE_OB'] == 'true') ob_start(); @@ -8,32 +11,75 @@ if (!empty($_POST['FORCE_OB']) && $_POST['FORCE_OB'] == 'true') ob_start(); //starting timer for benchmarking purposes $timer_start=Time()+SubStr(MicroTime(),0,8); - //setting PHPSESSID cookie and starting user session session_start(); error_reporting(1); //$_SESSION['debugging']=1; +//unset($_SESSION['debugging']); //Well... we should make some event or JavaScript page to turning this on/off... //exit; if ($_SESSION['debugging']) { error_reporting(E_ALL); - echo "GET VARIABLES::
"; + echo 'GET VARIABLES::
'; print_r($_GET); - echo "POST VARIABLES::
"; + echo 'POST VARIABLES::
'; print_r($_POST); - echo "SESSION VARIABLES::
"; + echo 'SESSION VARIABLES::
'; print_r($_SESSION); } -//requiring main config file with path/database etc. constants -require('config/config.inc'); +//Smarty from DB +$smarty_resource = 'kyberia'; +//$smarty_resource = ''; //same as 'file' (fallback) +/* I have moved old templates to DB using following lame script: + * for i in *.tpl; do j=$(echo "$i" | cut -d . -f 1); echo UPDATE nodes SET node_content = "'$(php -r "echo mysql_escape_string(file_get_contents('$i'));")'" WHERE node_id = "'$j'" COLLATE utf8_bin LIMIT '1;'; done | mysql --user=kyberia --password=PASSSSSSS kyberia + * In future we should have some mechanism for distributing templates because they are very important part of kyberia source... + */ + +//Path info (Experimental - this replaced most of mod_rewrites...) +@$PATH_INFO=trim($_SERVER[PATH_INFO]); +if($PATH_INFO != '') { + $PATH_CHUNKS = preg_split('/\//', $PATH_INFO); + if(isset($PATH_CHUNKS[1])) switch($PATH_CHUNKS[1]) { + case 'k': + if(isset($PATH_CHUNKS[2]) && $PATH_CHUNKS[2] != '') $_GET['node_kid'] = $PATH_CHUNKS[2]; + if(isset($PATH_CHUNKS[3]) && $PATH_CHUNKS[3] != '') $_GET['template_kid'] = $PATH_CHUNKS[3]; + break; + case 'id': + if(isset($PATH_CHUNKS[2]) && $PATH_CHUNKS[2] != '') $_GET['node_id'] = $PATH_CHUNKS[2]; + if(isset($PATH_CHUNKS[3]) && $PATH_CHUNKS[3] != '') $_GET['template_id'] = $PATH_CHUNKS[3]; + + //Base36 fascism redirect + if(!count($_POST)) { + header('Location: /k/'.base_convert($_GET['node_id'], 10, 36). + (isset($_GET['template_id'])?'/'.base_convert($_GET['template_id'], 10, 36):'') + ); + die("Base36 fascism...\n"); //If you want to be a fascist you have to die imediatelly... + } + + break; + default: + if($PATH_CHUNKS[1] != '') $_GET['node_name'] = $PATH_CHUNKS[1]; + if(isset($PATH_CHUNKS[2]) && $PATH_CHUNKS[2] != '') $_GET['template_kid'] = $PATH_CHUNKS[2]; + break; + } +} +if( + (!isset($_GET['node_kid']) || trim($_GET['node_kid']) == '') && + (!isset($_GET['node_id']) || trim($_GET['node_id']) == '') +) $_GET['node_kid'] = 1; + +//Base36 http://en.wikipedia.org/wiki/Base_36 (Initial support only :-) +if(isset($_GET['node_kid'])) $_GET['node_id'] = base_convert($_GET['node_kid'], 36, 10); +if(isset($_GET['template_kid'])) $_GET['template_id'] = base_convert($_GET['template_kid'], 36, 10); + require(INCLUDE_DIR.'senate.inc'); if (isset($_SERVER['HTTP_REFERER'])) { - preg_match("/id\/([0-9]*)\//",$_SERVER['HTTP_REFERER'],$ref_match); + preg_match('/(k|id)\/([0-9]*)\//',$_SERVER['HTTP_REFERER'],$ref_match); $referer_id=$ref_match[1]; } @@ -64,12 +110,14 @@ if (!empty($_GET['node_name'])) { //loading smarty template engine and setting main parameters require(SMARTY_DIR.'Smarty.class.php'); $smarty = new Smarty; +require(INCLUDE_DIR.'smarty/resource.kyberia.php'); +$smarty->default_resource_type=$smarty_resource; //$smarty->php_handling = SMARTY_PHP_REMOVE; //XXX $smarty->template_dir = TEMPLATE_DIR; //echo TEMPLATE_DIR.TEMPLATE_SET; //echo $smarty->template_dir; -$smarty->compile_dir = SYSTEM_DATA."templates_c/"; +$smarty->compile_dir = SYSTEM_DATA.'templates_c/'; $smarty->config_dir = SMARTY_DIR.'configs/'; //XXX neexistuje $smarty->cache_dir = SMARTY_DIR.'cache/'; $smarty->plugins_dir = SMARTY_PLUGIN_DIR ; @@ -105,7 +153,7 @@ if (empty($node)) { $nodes= nodes::getNodesByName($_GET['node_name']); if ($nodes) { $smarty->assign('nodes',$nodes); - $content=$smarty->display("404.tpl"); + $content=$smarty->display('404.tpl'); die(); } elseif ($_SESSION['user_id']) {