Advertisement
anton_slim

history.php

Feb 21st, 2012
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.81 KB | None | 0 0
  1. <?php  
  2.     require_once('classes/config.class.php');
  3.     require_once('classes/magazin.class.php');
  4.     require_once('classes/ViewHelper.php');
  5.     require_once('kernel_funcs.php');
  6.    
  7.     $mg = new magazin();
  8.     $filter_actions = $mg->get_unique_actions();
  9.     $filter_users = $mg->get_unique_users();
  10.     $viewFilter = getParam('filter', array());
  11.     if (!is_array($viewFilter)) {
  12.         $viewFilter = array();
  13.     }
  14.     // номер текущей страницы
  15.     $page = getParam('page', 1);
  16.    
  17.     // Фильтруем переменные фильтра :))
  18.     // никаких пустых значений
  19.     $viewFilter = array_filter($viewFilter, function($var) {
  20.         return ($var != '');
  21.     });
  22.     // фильтруем ключи, оставляем только допустимые
  23.     $filter_keys = array_flip(array('id_user', 'action', 'date_from', 'date_to'));
  24.     $viewFilter = array_intersect_key($viewFilter, $filter_keys);
  25.    
  26.     $filter = $viewFilter;
  27.    
  28.     if ($filter['date_to'] && !$filter['date_from']) {
  29.         $filter['date_from'] = $filter['date_to'];
  30.         unset($filter['date_to']);
  31.     }
  32.    
  33.     // строим фильтр для модели выборки в базе
  34.     if ($filter['date_from'] && !$filter['date_to']) {
  35.         $filter[] = new mysql_expr('DATE(`date`) = DATE('.$mg->escape($filter['date_from']).')');
  36.         unset($filter['date_from']);
  37.     } else if ($filter['date_from'] && $filter['date_to']) {
  38.         $date_from = strtotime($filter['date_from']);
  39.         $date_to = strtotime($filter['date_to']);
  40.         if ($date_from > $date_to) {
  41.             $date_from = $filter['date_to'];
  42.             $date_to = $filter['date_from'];
  43.             $filter[] = new mysql_expr('DATE(`date`) >= '.$mg->escape($date_from));
  44.             $filter[] = new mysql_expr('DATE(`date`) <= '.$mg->escape($date_to));
  45.         } else if ($date_from == $date_to) {
  46.             $filter[] = new mysql_expr('DATE(`date`) = DATE('.$mg->escape($filter['date_from']).')');
  47.         }
  48.         unset($filter['date_from'], $filter['date_to']);
  49.     }
  50.     $zh_notes = $mg->getData($filter, $page);
  51.     $total = $zh_notes['count'];
  52.     function page_url($page, $total)
  53.     {
  54.         $on_page = 10;
  55.        
  56.     }
  57. ?>
  58. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  59.         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  60. <html xmlns="http://www.w3.org/1999/xhtml">
  61. <head>
  62.     <? include 'templates/header.tpl' ?>
  63.     <script type="text/javascript">
  64.         $(function() {
  65.             $.datepicker.setDefaults($.datepicker.regional['ru']);
  66.             $( "#from, #to" ).datepicker({dateFormat: 'yy-mm-dd'});
  67.         });
  68.     </script>
  69.     <title>Документ без названия</title>
  70. </head>
  71.  
  72. <body>
  73. <? include('blocks/mewnu.php');
  74. ?>
  75. <div id="content">
  76.    
  77.     <div id="tovars_list_div" style="float:left; border-left:1px solid black; margin-left:10px; padding-left:5px;">
  78.  
  79.         <div style="clear:both;">
  80.             <br>
  81.             <form id="filter_form" action="" method="GET">
  82.             <b>Фильтр</b><br />
  83.             По владельцу: <?=ViewHelper::formSelect('filter[id_user]', array("" => '-- не выбрано --') + $filter_users, $viewFilter['id_user'])?><br />
  84.             По действию: <?=ViewHelper::formSelect('filter[action]', array("" => '-- не выбрано --') + $filter_actions, $viewFilter['action'])?><br />
  85.             По дате: <label for="from">Начало</label>
  86.                 <input type="text" id="from" name="filter[date_from]" value="<?=$viewFilter['date_from']?>"/>
  87.                 <label for="to">Конец</label>
  88.                 <input type="text" id="to" name="filter[date_to]" value="<?=$viewFilter['date_to']?>"/>
  89.             <br />
  90.             <input type="submit" value="OK" />
  91.             <input type="button" value="Отмена" onclick="document.location.href=document.location.pathname;" />
  92.             </form>
  93.             <h3>Журнал событий</h3>
  94.             <table class="table_border" style="width: 800px;">
  95.             <tr>
  96.                 <th style="width:150px;">Дата</th>
  97.                 <th>Кто</th>
  98.                 <th>Действие</th>
  99.                 <th style="width:50%">Подробно</th>
  100.             </tr>
  101.             <? $date_header = null; foreach ($zh_notes as $row): ?>
  102.             <?  if (!$date_header || ($last_date_header && $last_date_header != $row['date_str']) ):
  103.                     $date_header = $row['date_str'];
  104.                     $last_date_header = $date_header;
  105.             ?>
  106.                 <tr><td colspan="4"><b><?=$date_header?></b></td></tr>
  107.             <?  endif; ?>
  108.                 <tr>
  109.                     <td><?=$row['hour_str']?></td>
  110.                     <td><?=$row['author']?></td>
  111.                     <td><b><?=$row['action']?></b></td>
  112.                     <td><?=$row['descr']?></td>
  113.                 </tr>
  114.             <? endforeach; ?>
  115.             </table>
  116.         </div>
  117.     </div>
  118. </div>
  119. <script>
  120. function Dump(d,l)
  121. {
  122.   if (l == null) l = 1;
  123.   var s = '';
  124.   if (typeof(d) == "object") {
  125.     s += typeof(d) + " {\n";
  126.     for (var k in d) {
  127.       for (var i=0; i<l; i++)
  128.         s += "  ";
  129.       s += k+": " + Dump(d[k],l+1);
  130.     }
  131.     for (var i=0; i<l-1; i++) s += "  ";
  132.       s += "}\n"
  133.   } else {
  134.     s += "" + d + "\n";
  135.   }
  136.   return s;
  137. }
  138. </script>
  139. </body>
  140. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement