array("id" => "id", "parent_id" => "parent_id", "position" => "position") ) ); $languages = array(); $db->query("SELECT * FROM languages"); while($db->nextr()) { $languages[$db->f(0)] = array($db->f(1),$db->f(2)); } // SERVER SIDE PART if(isset($_REQUEST["server"])) { // Make sure nothing is cached header("Cache-Control: must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Expires: ".gmdate("D, d M Y H:i:s", mktime(date("H")-2, date("i"), date("s"), date("m"), date("d"), date("Y")))." GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); switch($_REQUEST["type"]) { case "list": $id = (int)str_replace("node_","",$_REQUEST["id"]); $db->query("SELECT s.id, ( SELECT COUNT(*) FROM structure WHERE parent_id = s.id ) AS children, c.language, c.name FROM structure s LEFT JOIN content c ON c.id = s.id WHERE s.parent_id = ".$id." ORDER BY position"); $data = array(); $children = array(); while($db->nextr()) { $children[$db->f("id")] = (int)$db->f("children"); $data[$db->f("id")][$db->f("language")] = $db->f("name"); } echo "[\n"; $i = 0; foreach($data as $k => $v) { echo "{\n"; echo "\tattributes: {\n"; echo "\t\tid : 'node_".$k."'\n"; echo "\t},\n"; if($children[$k]) echo "\tstate: 'closed', \n"; echo "\tdata: {\n"; $kf = 0; foreach($v as $lang => $name) { if($kf > 0) echo ",\n"; else echo "\n"; $kf ++; echo "\t\t'".$languages[$lang][0]."' : { title : '".$name."' }"; } echo "\n"; echo "\t}\n"; echo "}"; if(++$i < count($data)) echo ","; echo "\n"; } echo "\n]"; break; case "delete": $id = (int)str_replace("node_","",$_REQUEST["id"]); $tree->remove($id); $db->query("DELETE FROM content WHERE id = ".$id); echo "OK"; break; case "create": case "move": $id = (int)str_replace("node_","",$_REQUEST["id"]); $ref_id = (int)str_replace("node_","",$_REQUEST["ref_id"]); $type = $_REQUEST["move_type"]; $result = $tree->move($id,$ref_id,$type); if($id == 0) { foreach($languages as $k => $lang) { $db->query("INSERT INTO content (id,language,name,data) VALUES(".$result.",".$k.",'New folder','')"); } echo "node_".$result; } break; case "rename": $sql = "UPDATE content SET name = '".addslashes($_REQUEST["data"])."' WHERE id = ".(int)str_replace("node_","",$_REQUEST["id"])." AND language = ".(int)$_REQUEST["lang"]; $db->query($sql); echo $sql; break; case "loadfile": $db->query("SELECT * FROM content WHERE id = ".(int)str_replace("node_","",$_REQUEST["id"])." AND language = ".(int)$_REQUEST["lang"]); $db->nextr(); echo $db->f("data"); break; case "savefile": $sql = "UPDATE content SET data = '".addslashes($_REQUEST["data"])."' WHERE id = ".(int)str_replace("node_","",$_REQUEST["id"])." AND language = ".(int)$_REQUEST["lang"]; $db->query($sql); echo $sql; break; } exit(); } ?>