X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;ds=sidebyside;f=wwwroot%2Fnodes.php;h=3687d0803a8047ec799fabab7d6e602e7d63f518;hb=4b313ce7c4582f34e4ca12422a632c1bb95ae43a;hp=69e867d95aa88a24e2bdd80c027a0b64e340db1c;hpb=822594dc43aa87e2b7bc87bc6110a17884fd6454;p=mirrors%2FKyberia-bloodline.git
diff --git a/wwwroot/nodes.php b/wwwroot/nodes.php
index 69e867d..3687d08 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,39 @@ 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);
}
+//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 - thish should replace most of mod_rewrites in future...)
+//Path info (Experimental - this replaced most of mod_rewrites...)
@$PATH_INFO=trim($_SERVER[PATH_INFO]);
if($PATH_INFO != '') {
- $PATH_CHUNKS = preg_split("/\//", $PATH_INFO);
- switch($PATH_CHUNKS[1]) {
+ $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];
@@ -41,20 +51,36 @@ if($PATH_INFO != '') {
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($_GET['template_id'] == 'download') break; //Fix ugly download hack...
+ 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);
-//requiring main config file with path/database etc. constants
-require('config/config.inc');
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];
}
@@ -85,12 +111,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 ;
@@ -126,7 +154,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']) {