PageRenderTime 21ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/views/backup/core.php

https://github.com/rezamoussavi/MouRe
PHP | 351 lines | 297 code | 30 blank | 24 comment | 34 complexity | cdd9414945b73aab4b4aeb771b9decd1 MD5 | raw file
  1. <?php
  2. //########################################################
  3. //########################################################
  4. // DATA BASE START
  5. //########################################################
  6. //########################################################
  7. $osdbcon = mysql_connect ($ServerAddress, $UN, $Pass);
  8. if ($osdbcon){mysql_select_db($DataBase,$osdbcon);}
  9. $_result=null;
  10. function parseQuery($caller,$s){
  11. //simple replaces
  12. $cmd=array("#db->","#dbfilter->","#by_bizness");
  13. $sql=array(get_class($caller)."_","(SELECT * FROM ","WHERE biznessUID=".osBackBizness().")");
  14. $s=str_replace($cmd,$sql,$s);
  15. //functional replaces
  16. //finally
  17. return $s;
  18. }
  19. function xquery($caller,$s){
  20. global $osdbcon,$_result;
  21. if(!$osdbcon){ $_result=null; return;}
  22. $_result= mysql_query(parseQuery($caller,$s),$osdbcon);
  23. }
  24. function query($s){
  25. global $osdbcon,$_result;
  26. if(!($_result= $osdbcon? mysql_query($s,$osdbcon):false)){
  27. osLog("os","query()","calling mysql_query() <b><font color=red>ERROR</font><br />Query:</b><br />".$s);
  28. }
  29. return $_result;
  30. }
  31. function fetch(){
  32. global $_result;
  33. if(!$_result) return;
  34. return mysql_fetch_assoc($_result);
  35. }
  36. //########################################################
  37. //########################################################
  38. // DATA BASE END
  39. //########################################################
  40. //########################################################
  41. function osLog($Biz,$NodeID,$Message){
  42. $t=$_SERVER['REQUEST_TIME'];
  43. query("INSERT INTO os_log(TimeStamp,Biz,NodeID,Message) VALUES('$t','$Biz','$NodeID','$Message')");
  44. }
  45. function osBackPageLink($page){
  46. $_SESSION['osPage']=$page;
  47. return "?p=".$page;
  48. }
  49. function osBackLink($node,$curLink,$linkto){
  50. $ar1=array();
  51. $ar2=array();
  52. $ret=osBackLinkInfo($node,$curLink,$ar1,$linkto,$ar2);
  53. return $ret;
  54. }
  55. function osBackLinkInfo($node,$curLink,$curInfo,$linkto,$toInfo){
  56. $ret="?";
  57. if(! isset($_SESSION['osLink']))
  58. $_SESSION['osLink']=array();
  59. $curLink=osAttachInfo($curLink,$curInfo);
  60. $linkto=osAttachInfo($linkto,$toInfo);
  61. $_SESSION['osLink'][$node]=$curLink;//Save Current State for others
  62. foreach($_SESSION['osLink'] as $n=>$v){ //Create others link info for this one
  63. if($ret!="?"){
  64. $ret.="&";
  65. }
  66. if($n==$node)// put linkto info for this one requested with linkto info
  67. $ret.=$n."=".$linkto;
  68. else
  69. $ret.=$n."=".$v;
  70. }
  71. if($curLink==null){
  72. unset($_SESSION['osLink'][$node]);
  73. }
  74. return $ret;
  75. }
  76. function osAttachInfo($msg,$info){
  77. if(count($info)>0){
  78. $msg.=":";
  79. foreach($info as $ck=>$cv)
  80. $msg.=$ck."=".$cv.",";
  81. $msg=substr($msg,0,strlen($msg)-1);
  82. }
  83. return $msg;
  84. }
  85. function osBookUser($user){
  86. $_SESSION['user']=array("userUID"=>-1);
  87. $_SESSION['user']=$user;
  88. }
  89. function osBackUser(){
  90. return $_SESSION['user'];
  91. }
  92. function osBackUserID(){
  93. return isset($_SESSION['user']['userUID'])? $_SESSION['user']['userUID'] : -1;
  94. }
  95. function osBackUserEmail(){
  96. return isset($_SESSION['user']['email'])? $_SESSION['user']['email'] : -1;
  97. }
  98. function osUserLogedin(){
  99. return isset($_SESSION['user']['userUID'])? ($_SESSION['user']['userUID']>-1)?true:false : false;
  100. }
  101. function osBackUserRole(){
  102. return osUserLogedin()? $_SESSION['user']['role']:false;
  103. }
  104. function osIsAdmin(){
  105. return (isset($_SESSION['user']['role']))? ($_SESSION['user']['role']=='admin'):false;
  106. }
  107. function osBroadcast($msg,$info){
  108. if($_SESSION['logMessages']){
  109. osLog("OS","BroadCast","<b>MSG:</b> $msg<br><b>INFO:</b><br>".arr2str($info));
  110. }
  111. if(isset($_SESSION['osMsg'][$msg])){
  112. if(count($_SESSION['osMsg'][$msg])>0){
  113. foreach($_SESSION['osMsg'][$msg] as $node=>$v){
  114. osMessage($node,$msg,$info);
  115. }
  116. }
  117. }
  118. }
  119. function osMessage($to,$msg,$info){
  120. if($node=osBackNode($to)){
  121. $node->message($msg,$info);
  122. if($_SESSION['logMessages']){
  123. $data=arr2str($info);
  124. $log=<<<MSGLOG
  125. $msg <b>Sent</b><br>
  126. <b>TO: </b>$to
  127. <br><b>DATA:</b><br>
  128. $data
  129. MSGLOG;
  130. osLog("OS","osMessage","$log");
  131. }
  132. }
  133. }
  134. function osBackNode($FName){
  135. /*
  136. Evaluate the given FullName
  137. */
  138. if(!isset($_SESSION['osNodes'][$FName])){
  139. if($_SESSION['logMessages']){osLog("OS","osBackNode","Node not found : $FName");}
  140. return false;
  141. }
  142. /*
  143. If node is constructed(awake)
  144. */
  145. if(isset($_SESSION['osNodes'][$FName]['node'])){
  146. if(is_object($_SESSION['osNodes'][$FName]['node']))
  147. {
  148. if($_SESSION['logMessages']){osLog("OS","osBackNode","Node is Awake : $FName");}
  149. return $_SESSION['osNodes'][$FName]['node'];
  150. }
  151. }
  152. /*
  153. If node not awake, wake it up
  154. */
  155. $biz=$_SESSION['osNodes'][$FName]['biz'];
  156. if($biz){
  157. if($_SESSION['logMessages']){osLog("OS","osBackNode","Node Woked Up : $FName");}
  158. return new $biz($FName);
  159. }
  160. if($_SESSION['logMessages']){osLog("OS","osBackNode","Node ERROR : $FName");}
  161. return false;
  162. }
  163. function osBackBizness(){
  164. return 1;
  165. global $bizbank;
  166. return $bizbank->bizness_id;
  167. }
  168. function osBackBizbank(){
  169. return 1;
  170. global $bizbank;
  171. return $bizbank->bizbank_id;
  172. }
  173. function osShow($callingBiz)
  174. {
  175. return '<div id="' . $callingBiz->_fullname . '">' . $callingBiz->html . '</div>';
  176. }
  177. function osParse($s){
  178. $msg="";
  179. $ar=array();
  180. $i=strpos($s,":");
  181. if($i===false){
  182. $msg=$s;
  183. }
  184. else{
  185. $msg=substr($s,0,$i);
  186. $params=osParseParams(substr($s,$i+1));
  187. $ar=osParseParamVal($params);
  188. }
  189. return array($msg,$ar);
  190. }
  191. function osParseParams($s){
  192. $ar=array();
  193. while(strlen($s)>0){
  194. $i=strpos($s,",");
  195. if($i===false)
  196. $i=strlen($s);
  197. $ar[]=substr($s,0,$i);
  198. $s=substr($s,$i+1);
  199. }
  200. return $ar;
  201. }
  202. function osParseParamVal($a){
  203. $ret=array();
  204. foreach($a as $s){
  205. $i=strpos($s,"=");
  206. if($i===false)
  207. $ret[$s]=0;
  208. else
  209. $ret[substr($s,0,$i)]=substr($s,$i+1);
  210. }
  211. return $ret;
  212. }
  213. function showLogPage(){
  214. if(isset($_GET['delete'])){
  215. query("DELETE FROM os_log WHERE logID=".$_GET['delete']);
  216. }
  217. if(isset($_GET['deleteto'])){
  218. query("DELETE FROM os_log WHERE logID <= ".$_GET['deleteto']);
  219. }
  220. if(isset($_GET['deletefrom'])){
  221. query("DELETE FROM os_log WHERE logID >= ".$_GET['deletefrom']);
  222. }
  223. query("SELECT * FROM os_log ORDER BY logID DESC");
  224. $html="<html>";
  225. $html.="<head><meta HTTP-EQUIV='refresh' CONTENT='";
  226. $html.=isset($_GET['auto'])?"1":"60";
  227. $html.="; ?log";
  228. if(isset($_GET['auto'])) $html.="&auto";
  229. $html.="'></head><body>";
  230. $html.=<<<HTMLSTYLE
  231. <style type='text/css'>
  232. table.log{
  233. border-width:1px;
  234. border-style:solid;
  235. }
  236. table.log td{
  237. border-width:1px;
  238. border-style:dotted;
  239. }
  240. </style>
  241. HTMLSTYLE;
  242. $html.="<a href='?log'>ManualRefresh</a><br>";
  243. if(isset($_GET['auto']))
  244. $html.="<a href='?log'>Turn OFF AutoRefresh</a>";
  245. else
  246. $html.="<a href='?log&auto'>Turn ON AutoRefresh</a><font color=gray size=1>Refresh time On:1sec OFF:2min</font>";
  247. $html.=" <br>for LogMessages : <font size=1 color=gray>use ?message=on or ?message=off on open page of site</font>";
  248. $html.="<table class='log'><tr>";
  249. $html.="<td>ID</td>";
  250. $html.="<td>Time</td>";
  251. $html.="<td>Biz</td>";
  252. $html.="<td>NodeID</td>";
  253. $html.="<td>Message</td>";
  254. $html.="<td></td><td></td><td></td></tr>";
  255. $c=array("#FFFFFF","#FFCCFF","#99FF99","#CCFF33");
  256. $s=count($c);
  257. $i=0;
  258. $t=" ";
  259. while($row=fetch()){
  260. if($t!=$row['TimeStamp']){
  261. $t=$row['TimeStamp'];
  262. //$i=($i==$s-1)?0:$i+1;
  263. $html.="<tr bgcolor='#000000'><td colspan=8></td></tr>";
  264. }
  265. $bg=$c[$i];
  266. $html.="<tr bgcolor='$bg'>";
  267. $html.="<td><font size=1>".$row['logID']."</font></td>";
  268. $html.="<td><font size=1>".$row['TimeStamp']."</font></td>";
  269. $html.="<td><font size=1>".$row['Biz']."</font></td>";
  270. $html.="<td><font size=2>".$row['NodeID']."</font></td>";
  271. $html.="<td><font size=2>".$row['Message']."</font></td>";
  272. $html.="<td><a title='Delete this Row' href='?log&delete=".$row['logID']."'><img src='delete.jpg' /></a></td>";
  273. $html.="<td><a title='Delete All rows from this Down' href='?log&deleteto=".$row['logID']."'>&or;</td>";
  274. $html.="<td><a title='Delete All rows from this Up' href='?log&deletefrom=".$row['logID']."'>&and;</a></td>";
  275. $html.="</tr>";
  276. }
  277. $html.="</table></body></html>";
  278. echo $html;
  279. }
  280. function arr2str($a){
  281. if(is_array($a)){
  282. $ret=" [ ";
  283. foreach($a as $k=>$v){
  284. $ret.=$k."=>".arr2str($v)." , ";
  285. }
  286. $ret=substr($ret,0,strlen($ret)-2);
  287. $ret.=" ] ";
  288. return $ret;
  289. }else{
  290. return $a;
  291. }
  292. }
  293. function arr2strOpt($a){
  294. return arr2strOptimized($a,1,"Ar");
  295. }
  296. function arr2strOptimized($a,$tabs,$id){
  297. if(is_array($a)){
  298. $tab=TabToSpace($tabs);
  299. $ret=<<<PHTML
  300. <b style="cursor:pointer;" onclick="getElementById('$id').style.display='none'"> [ </b> <div id="$id" style="display:none;">
  301. PHTML;
  302. $idCounter=0;
  303. foreach($a as $k=>$v){
  304. $idCounter++;
  305. $ret.=$tab.$k."=>".arr2strOptimized($v,$tabs+1,$id.$idCounter)."<br />";
  306. }
  307. //$ret=substr($ret,0,strlen($ret)-2);
  308. $ret.=<<<PHTML
  309. </div> $tab <b style="cursor:pointer;" onclick="getElementById('$id').style.display='block'"> ] </b>
  310. PHTML;
  311. return $ret;
  312. }else{
  313. return htmlspecialchars($a, ENT_QUOTES);
  314. }
  315. }
  316. function TabToSpace($tabs){
  317. $ret="";
  318. if ($tabs>0) for ($i=0;$i<$tabs;$i++) $ret.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  319. return $ret;
  320. }
  321. ?>