admin_sqltable_model.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. class admin_sqltable_model extends Model {
  3. public function get_list($data) {
  4. //$_SESSION['sqltable_search'] = "";
  5. if ($data['query']!='') $_SESSION['query'] = $data['query'];
  6. $sql_all = $data['sql'];
  7. $sql_all.= " WHERE".$data['where'].$_SESSION['sqltable_search'].";";
  8. //die($sql_all);
  9. $all = $this->query($sql_all);
  10. if (sizeof($sql_all)>0) {
  11. $result_num = sizeof($all);
  12. }
  13. else {
  14. $result_num = 0;
  15. }
  16. if ($_SESSION['active_page']=='') $_SESSION['active_page'] = 0;
  17. $_SESSION['active_page'] = $data['actual_page'];
  18. if ($_SESSION['SQLTable_page_limit']=='') $_SESSION['SQLTable_page_limit']= $data['pager_limit'];
  19. $_SESSION['SQLTable_page_limit'] = $data['pager_limit'];
  20. $limit = $this->calculate_limit($data['actual_page'],$data['pager_limit']);
  21. $sql = $data['sql']." WHERE".$data['where'].$data['query']."".$_SESSION['sqltable_search']." ORDER BY ".$data['order_field']." ".$data['order_dir']." LIMIT ".$limit.",".$data['pager_limit'].";";
  22. $result['pages'] = $this->calculate_pages($result_num,$data['pager_limit']);
  23. $result['rows'] = $this->query($sql);
  24. return $result;
  25. }
  26. public function calculate_pages($number,$limit) {
  27. return ceil($number/$limit);
  28. }
  29. public function calculate_limit($page,$limit) {
  30. return $page*$limit;
  31. }
  32. public function delete_row($data) {
  33. $this->execute("UPDATE ".$data['table']." SET ".$data['status']."='0' WHERE ".$data['id_field']."='".$data['id']."';");
  34. return true;
  35. }
  36. public function undelete_row($data) {
  37. $this->execute("UPDATE ".$data['table']." SET ".$data['status']."='1' WHERE ".$data['id_field']."='".$data['id']."';");
  38. return true;
  39. }
  40. public function reorder_table($data) {
  41. $data = $this->escapeArray($data);
  42. $hash = $data['table_name'];
  43. $orders = $data['order_data'];
  44. $orders = str_replace("stateslist_1%5B%5D=","",$orders);
  45. $orders = explode("&",$orders);
  46. $i=0;
  47. foreach ($orders as $order) {
  48. $i++;
  49. $this->execute("UPDATE ".$data['table']." SET ".$data['reorder_field']."='".$i."' WHERE ".$data['id_field']."='".$order."';");
  50. }
  51. return true;
  52. }
  53. }