index-ajax.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. define('DS', DIRECTORY_SEPARATOR);
  3. define('APP_PATH_ROOT', dirname(__FILE__));
  4. define('APP_PATH_LIB', APP_PATH_ROOT . '/se-lib');
  5. define('APP_PATH_WWW', APP_PATH_ROOT);
  6. define('APP_PATH_CONFIG', APP_PATH_ROOT . DS . 'config');
  7. //session_save_path("./tmp") ;
  8. session_start();
  9. date_default_timezone_set('Europe/Warsaw');// PHP 5 >= 5.1.0 required by date functions
  10. error_reporting(E_ALL);
  11. ini_set('error_reporting', E_ALL);
  12. ini_set('display_errors', 0);
  13. ini_set('display_startup_errors', '0');
  14. //display_startup_errors(0);
  15. #TEST $_SESSION['DEBUG'] = 3;// TODO: TEST
  16. if (!isset($_SESSION['DEBUG'])) $_SESSION['DEBUG'] = 0;// set default value
  17. if (file_exists(APP_PATH_ROOT . "/config/.config_{$_SERVER['SERVER_NAME']}.php")) {
  18. require APP_PATH_ROOT . "/config/.config_{$_SERVER['SERVER_NAME']}.php";
  19. }
  20. if (file_exists(APP_PATH_ROOT . "/.config.php")) include APP_PATH_ROOT . "/.config.php";
  21. require_once APP_PATH_ROOT . "/superedit-SEF.php";
  22. require_once APP_PATH_LIB . '/' . 'Lib.php';
  23. Lib::loadClass('V');
  24. Lib::loadClass('DB');
  25. Lib::loadClass('User');
  26. Lib::loadClass('Http');
  27. Lib::loadClass('HttpException');
  28. Lib::loadClass('StorageException');
  29. Lib::loadClass('S');
  30. if (!User::logged()) {
  31. die('NotAuthenticated');
  32. }
  33. $DBG = ('1' == V::get('DBG', '', $_REQUEST));
  34. $task = V::get('_task', '', $_REQUEST);
  35. $zasobID = V::get('_zasobID', 0, $_REQUEST, 'int');
  36. $cls = V::get('_cls', '', $_REQUEST);
  37. if ($cls == 'UserBookmarks') {
  38. // ?_cls=UserBookmarks&_task=add_bookmark&_zasobID={$ID}
  39. Lib::loadClass('UserBookmarks');
  40. $userBookmarks = UserBookmarks::getInstance();
  41. if ($task == 'add_bookmark') {
  42. if ($zasobID <= 0) {
  43. die('Error: no resource');
  44. }
  45. $userBookmarks->addBookmark($zasobID);
  46. User::saveProfile();
  47. } else if ($task == 'remove_bookmark') {
  48. if ($zasobID <= 0) {
  49. die('Error: no resource');
  50. }
  51. $userBookmarks->removeBookmark($zasobID);
  52. User::saveProfile();
  53. } else if ($task == 'change_bookmark') {
  54. if ($zasobID <= 0) {
  55. die('Error: no resource');
  56. }
  57. $btnCls = V::get('btnCls', '', $_REQUEST);
  58. if (empty($btnCls)) {
  59. die('Error: no button class');
  60. }
  61. $userBookmarks->changeBookmark($zasobID, $btnCls);
  62. User::saveProfile();
  63. } else if ($task == 'sort_bookmarks') {
  64. $idsOrdered = V::get('ids', array(), $_REQUEST, 'array', array('V', 'filterPositiveInteger'));
  65. if (empty($idsOrdered)) {
  66. die('Error: no ids');
  67. }
  68. $userBookmarks->sortBookmarks($idsOrdered);
  69. User::saveProfile();
  70. }
  71. // default - always return bookmarks
  72. $userAcl = User::getAcl();
  73. $tbls = $userAcl->getTablesAcl();
  74. $urls = $userAcl->getUrls();
  75. $jsonData = array();
  76. $bookmarks = $userBookmarks->getBookmarks();
  77. foreach ($bookmarks as $kZasobID => $vClass) {
  78. if (array_key_exists($kZasobID, $tbls)) {
  79. $jsonData[] = (object)array('id'=>$kZasobID, 'name'=>$tbls[$kZasobID]->getName(), 'label'=>$tbls[$kZasobID]->getRawLabel(), 'opis'=>$tbls[$kZasobID]->getOpis(), 'type'=>'menu', 'class'=>$vClass);
  80. }
  81. else if (array_key_exists($kZasobID, $urls)) {
  82. $jsonData[] = (object)array('id'=>$kZasobID, 'name'=>$urls[$kZasobID], 'type'=>'url', 'class'=>$vClass);
  83. }
  84. }
  85. if ($DBG) {
  86. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">tbls (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($tbls);echo'</pre>';
  87. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">urls (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($urls);echo'</pre>';
  88. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">bookmarks (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($bookmarks);echo'</pre>';
  89. $USER_PROFILE = $_SESSION['USER_PROFILE'];
  90. reset($USER_PROFILE);
  91. $VAR = " Array ( ";
  92. for ( ;(key($USER_PROFILE)); next($USER_PROFILE)) {
  93. $VAR = $VAR . "\n\t\"" . key($USER_PROFILE) . "\" => Array ( ";
  94. for ( ;(key($USER_PROFILE[key($USER_PROFILE)])); next($USER_PROFILE[key($USER_PROFILE)])) {
  95. $VAR = $VAR . "\n\t\t \"" . key($USER_PROFILE[key($USER_PROFILE)]) . "\"=>\"" . $USER_PROFILE[key($USER_PROFILE)][key($USER_PROFILE[key($USER_PROFILE)])] . "\"," ;
  96. }
  97. $VAR = $VAR . "\n\t ), ";
  98. }
  99. $VAR = $VAR . "\n ) " ;
  100. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;"> (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($VAR);echo'</pre>';
  101. $USER_PROFILE = $_SESSION['USER_PROFILE'];
  102. $VAR = " Array ( ";
  103. foreach ($USER_PROFILE as $key => $values) {
  104. $VAR = $VAR . "\n\t\"" . $key . "\" => Array ( ";
  105. foreach ($values as $k => $v) {
  106. $VAR = $VAR . "\n\t\t \"" . $k . "\"=>\"" . $v . "\"," ;
  107. }
  108. $VAR = $VAR . "\n\t ), ";
  109. }
  110. $VAR = $VAR . "\n ) " ;
  111. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;"> (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($VAR);echo'</pre>';
  112. }
  113. echo json_encode($jsonData);
  114. die();
  115. }
  116. if ($zasobID <= 0) {
  117. die('Error: no tbl');
  118. }
  119. $userAcl = User::getAcl();
  120. $tblAcl = $userAcl->getTableAcl($zasobID);
  121. if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">tblAcl (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($tblAcl);echo'</pre>';}
  122. if (!$tblAcl->isInitialized()) {
  123. echo'<p class="red">'."Brak konfiguracji dla ".$tblAcl->getName()."!".'</p>';
  124. return;
  125. }
  126. if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">tblAcl (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($tblAcl);echo'</pre>';}
  127. if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">cls (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($cls);echo'</pre>';}
  128. if (!$cls) {
  129. die('Error: no cls');
  130. }
  131. Lib::loadClass($cls);
  132. if (!class_exists($cls)) {
  133. die('Error: cls not exists ' . $cls);
  134. }
  135. $tblObj = new $cls($tblAcl);
  136. if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">tblObj (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($tblObj);echo'</pre>';}
  137. $task = V::get('_task', '', $_REQUEST);
  138. if ($task == 'EDIT') {
  139. $id_item = V::get('ID', 0, $_REQUEST, 'int');
  140. if ($id_item > 0) {
  141. Lib::loadClass('UserActivity');
  142. UserActivity::add($zasobID, 'edit', $id_item);
  143. }
  144. }
  145. S::timeoutUpdate();
  146. if (method_exists($tblObj, 'ajaxTask')) {
  147. $tblObj->ajaxTask($task);
  148. } else {
  149. die('Error: method ajaxTask not exists in class ' . $cls);
  150. }
  151. ?>