server.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?
  2. // Configure database
  3. $server = "localhost";
  4. $db_user = "********";
  5. $db_pass = "********";
  6. $only_db = "********";
  7. // Include required classes
  8. require_once("_inc/database.php");
  9. require_once("_inc/class.tree.php");
  10. // Create a new DB instance
  11. $db = new DB;
  12. // Create a new tree instance
  13. $tree = new tree( array( "structure" => array("id" => "id", "parent_id" => "parent_id", "position" => "position") ) );
  14. $languages = array();
  15. $db->query("SELECT * FROM languages");
  16. while($db->nextr()) { $languages[$db->f(0)] = array($db->f(1),$db->f(2)); }
  17. // SERVER SIDE PART
  18. if(isset($_REQUEST["server"])) {
  19. // Make sure nothing is cached
  20. header("Cache-Control: must-revalidate");
  21. header("Cache-Control: post-check=0, pre-check=0", false);
  22. header("Pragma: no-cache");
  23. 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");
  24. header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
  25. switch($_REQUEST["type"]) {
  26. case "list":
  27. $id = (int)str_replace("node_","",$_REQUEST["id"]);
  28. $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");
  29. $data = array();
  30. $children = array();
  31. while($db->nextr()) {
  32. $children[$db->f("id")] = (int)$db->f("children");
  33. $data[$db->f("id")][$db->f("language")] = $db->f("name");
  34. }
  35. echo "[\n";
  36. $i = 0;
  37. foreach($data as $k => $v) {
  38. echo "{\n";
  39. echo "\tattributes: {\n";
  40. echo "\t\tid : 'node_".$k."'\n";
  41. echo "\t},\n";
  42. if($children[$k]) echo "\tstate: 'closed', \n";
  43. echo "\tdata: {\n";
  44. $kf = 0;
  45. foreach($v as $lang => $name) {
  46. if($kf > 0) echo ",\n";
  47. else echo "\n";
  48. $kf ++;
  49. echo "\t\t'".$languages[$lang][0]."' : { title : '".$name."' }";
  50. }
  51. echo "\n";
  52. echo "\t}\n";
  53. echo "}";
  54. if(++$i < count($data)) echo ",";
  55. echo "\n";
  56. }
  57. echo "\n]";
  58. break;
  59. case "delete":
  60. $id = (int)str_replace("node_","",$_REQUEST["id"]);
  61. $tree->remove($id);
  62. $db->query("DELETE FROM content WHERE id = ".$id);
  63. echo "OK";
  64. break;
  65. case "create":
  66. case "move":
  67. $id = (int)str_replace("node_","",$_REQUEST["id"]);
  68. $ref_id = (int)str_replace("node_","",$_REQUEST["ref_id"]);
  69. $type = $_REQUEST["move_type"];
  70. $result = $tree->move($id,$ref_id,$type);
  71. if($id == 0) {
  72. foreach($languages as $k => $lang) {
  73. $db->query("INSERT INTO content (id,language,name,data) VALUES(".$result.",".$k.",'New folder','')");
  74. }
  75. echo "node_".$result;
  76. }
  77. break;
  78. case "rename":
  79. $sql = "UPDATE content SET name = '".addslashes($_REQUEST["data"])."' WHERE id = ".(int)str_replace("node_","",$_REQUEST["id"])." AND language = ".(int)$_REQUEST["lang"];
  80. $db->query($sql);
  81. echo $sql;
  82. break;
  83. case "loadfile":
  84. $db->query("SELECT * FROM content WHERE id = ".(int)str_replace("node_","",$_REQUEST["id"])." AND language = ".(int)$_REQUEST["lang"]);
  85. $db->nextr();
  86. echo $db->f("data");
  87. break;
  88. case "savefile":
  89. $sql = "UPDATE content SET data = '".addslashes($_REQUEST["data"])."' WHERE id = ".(int)str_replace("node_","",$_REQUEST["id"])." AND language = ".(int)$_REQUEST["lang"];
  90. $db->query($sql);
  91. echo $sql;
  92. break;
  93. }
  94. exit();
  95. }
  96. ?>