Changeset 17760


Ignore:
Timestamp:
09/05/12 17:15:35 (7 years ago)
Author:
grum
Message:

version 0.1.0b

. fix bug on period tab (empty period is managed)
. fix bug on date/time filter (+set time as mandatory value)

Location:
extensions/EStat
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • extensions/EStat/estat_ajax.php

    r17758 r17760  
    11511151 
    11521152          $tmp=$statFile->getStatPeriod(0, 0, $fields['total'], $filter, $sort); 
    1153           $returned['total']=array('', $tmp[0]['T'], $tmp[0]['C'], $tmp[0]['I'], $tmp[0]['A']); 
     1153          if(isset($tmp[0])) 
     1154          { 
     1155            $returned['total']=array('', $tmp[0]['T'], $tmp[0]['C'], $tmp[0]['I'], $tmp[0]['A']); 
     1156          } 
     1157          else 
     1158          { 
     1159            $returned['total']=array('', '0', '0', '0', '0'); 
     1160          } 
    11541161          break; 
    11551162        case 'y': 
     
    11701177 
    11711178          $tmp=$statFile->getStatPeriod(0, 0, $fields['total'], $filter, $sort); 
    1172           $returned['total']=array('', $tmp[0][0]['T'], $tmp[0][0]['C'], $tmp[0][0]['I'], $tmp[0][0]['A']); 
     1179          if(isset($tmp[0])) 
     1180          { 
     1181            $returned['total']=array('', $tmp[0][0]['T'], $tmp[0][0]['C'], $tmp[0][0]['I'], $tmp[0][0]['A']); 
     1182          } 
     1183          else 
     1184          { 
     1185            $returned['total']=array('', '0', '0', '0', '0'); 
     1186          } 
    11731187          break; 
    11741188        default: 
     
    11891203          } 
    11901204          $tmp=$statFile->getStatPeriod(0, 0, $fields['total'], $filter, $sort); 
    1191           $returned['total']=array('', $tmp[0][0]['T'], $tmp[0][0]['C'], $tmp[0][0]['I'], $tmp[0][0]['A']); 
     1205          if(isset($tmp[0])) 
     1206          { 
     1207            $returned['total']=array('', $tmp[0][0]['T'], $tmp[0][0]['C'], $tmp[0][0]['I'], $tmp[0][0]['A']); 
     1208          } 
     1209          else 
     1210          { 
     1211            $returned['total']=array('', '0', '0', '0', '0'); 
     1212          } 
    11921213          break; 
    11931214      } 
  • extensions/EStat/lib/statDB.class.inc.php

    r17758 r17760  
    865865 
    866866 
     867 
     868  /** 
     869   * to be used with Date filter: replace the given operator with 'between' or 'not between' 
     870   * 
     871   * @param Array $value 
     872   * @return Array 
     873   */ 
     874  protected function checkDateFilter($value) 
     875  { 
     876    if(is_array($value)) 
     877    { 
     878      if(isset($value['operator'])) 
     879      { 
     880        if($value['operator']=='=' or 
     881           $value['operator']=='like') 
     882        { 
     883          $value['operator']='between'; 
     884          $value['minValue']=$value['value']; 
     885          $value['maxValue']=$value['value']; 
     886          $value['value']=null; 
     887        } 
     888        elseif($value['operator']=='!=' or 
     889               $value['operator']=='not like') 
     890        { 
     891          $value['operator']='not between'; 
     892          $value['minValue']=$value['value']; 
     893          $value['maxValue']=$value['value']; 
     894          $value['value']=null; 
     895        } 
     896      } 
     897    } 
     898    return($value); 
     899  } // checkDateFilter 
     900 
     901 
     902 
     903 
    867904  /** 
    868905   * check if value is a valid operator array 
     
    902939              { 
    903940                case 'date': 
    904                   $value['value']=$this->checkValueDate($value['value']); 
     941                  switch($value['operator']) 
     942                  { 
     943                    case '>': 
     944                    case '<=': 
     945                      $value['value']=$this->checkValueDate($value['value'], 'E'); 
     946                      break; 
     947                    case '<': 
     948                    case '>=': 
     949                    default: 
     950                      $value['value']=$this->checkValueDate($value['value'], 'B'); 
     951                      break; 
     952                  } 
    905953                  if($value['value']==null) return(null); 
    906954                  $value['value']=$value['value']; 
     
    9581006              { 
    9591007                case 'date': 
    960                   $value['minValue']=$this->checkValueDate($value['minValue']); 
     1008                  $value['minValue']=$this->checkValueDate($value['minValue'], 'B'); 
    9611009                  if($value['minValue']==null) return(null); 
    962                   $value['maxValue']=$this->checkValueDate($value['maxValue']); 
     1010                  $value['maxValue']=$this->checkValueDate($value['maxValue'], 'E'); 
    9631011                  if($value['maxValue']==null) return(null); 
    9641012                  break; 
     
    9931041  /** 
    9941042   * check if date is Ok 
    995    * return the date completed (YYYY-MM-DD => YYYY-MM-DD 00:00:00) or null if not valid 
     1043   * return the date completed 
     1044   *      (YYYY-MM-DD => YYYY-MM-DD 00:00:00) if $mode='B' 
     1045   *  or  (YYYY-MM-DD => YYYY-MM-DD 23:59:59) if $mode='E' 
     1046   *  or  null if not valid 
    9961047   * 
    9971048   * @param String $value 
     1049   * @param String $mode: 'B' for begin or 'E' for end 
    9981050   * @return String 
    9991051   */ 
    1000   protected function checkValueDate($value) 
     1052  protected function checkValueDate($value, $mode='B') 
    10011053  { 
    10021054    $returned=null; 
    10031055    $result=array(); 
    1004     if(preg_match('/^(\d{4}-\d{2}-\d{2})(?:(\s{1}\d{2}:\d{2})(:\d{2})?)?$/', $value, $result)>0) 
     1056    if(preg_match('/^(\d{4}-\d{2}-\d{2})(?:(\s{1}\d{2}:\d{2})(:\d{2})?)?$/', trim($value), $result)>0) 
    10051057    { 
    10061058      $returned=$result[1]; 
     
    10121064          $returned.=$result[3]; 
    10131065        } 
    1014         else $returned.=':00'; 
    1015       } 
    1016       else $returned.=' 00:00:00'; 
     1066        else 
     1067        { 
     1068          $returned.=($mode=='B')?':00':':59'; 
     1069        } 
     1070      } 
     1071      else 
     1072      { 
     1073        $returned.=($mode=='B')?' 00:00:00':' 23:59:59'; 
     1074      } 
    10171075    } 
    10181076    return(strtotime($returned)); 
  • extensions/EStat/lib/statDBMonth.class.inc.php

    r17758 r17760  
    257257    if(!isset($filter['uaType'])) $filter['uaType']=null; 
    258258 
     259    $filter['date']=$this->checkDateFilter($filter['date']); 
    259260    $filter['IPadress']=$this->checkIPFilter($filter['IPadress']); 
    260261    // check filter values - getOperator check and 'clean' the filter 
Note: See TracChangeset for help on using the changeset viewer.