/**
  * Setter. Sets the information for one comparison
  * @param string field 1
  * @param string field 2
  * @param string operation 
  * @param string error message
  * @access public
  */
 function addField($name1, $name2, $operation, $error)
 {
     $value1 = $this->tNG->getColumnValue($name1);
     $value2 = KT_DynamicData($name2, null);
     if ($value2 == $name2) {
         $value2 = KT_DynamicData($name2, $this->tNG);
     }
     if ($this->tNG->getColumnType($name1) == 'DATE_TYPE') {
         $value1 = KT_convertDate($value1, $GLOBALS['KT_db_date_format'] . ' ' . $GLOBALS['KT_db_time_format_internal'], "yyyy-mm-dd HH:ii:ss");
         $value2 = KT_convertDate($value2, $GLOBALS['KT_db_date_format'] . ' ' . $GLOBALS['KT_db_time_format_internal'], "yyyy-mm-dd HH:ii:ss");
         $value1 = strtotime($value1);
         $value2 = strtotime($value2);
     } else {
         if ($this->tNG->getColumnType($name1) == 'NUMERIC_TYPE' || $this->tNG->getColumnType($name1) == 'DOUBLE_TYPE') {
             $value1 = (double) $value1;
             $value2 = (double) $value2;
         }
     }
     $this->fields[] = array('0' => array('name' => $name1, 'value' => $value1, 'type' => $this->tNG->getColumnType($name1)), '1' => array('name' => $name2, 'value' => $value2, 'type' => $this->tNG->getColumnType($name1)), 'operation' => $operation, 'error' => KT_DynamicData($error, $this->tNG));
 }
Beispiel #2
0
/** 
 * Search for the current row from logger and try to update dateout field (used in logout trigger);
 * Only for PRO version
 * @param object tNG transaction object
 * @return mixt object in case of error or null
 * @access public
 */
function Trigger_Login_LoggerOut(&$tNG)
{
    $ret = null;
    if (!isset($GLOBALS['tNG_login_config']['logger_table']) || !isset($GLOBALS['tNG_login_config']['logger_pk']) || !isset($GLOBALS['tNG_login_config']['logger_user_id']) || !isset($GLOBALS['tNG_login_config']['logger_ip']) || !isset($GLOBALS['tNG_login_config']['logger_datein']) || !isset($GLOBALS['tNG_login_config']['logger_datelastactivity']) || !isset($GLOBALS['tNG_login_config']['logger_session']) || $GLOBALS['tNG_login_config']['logger_table'] == '' || $GLOBALS['tNG_login_config']['logger_pk'] == '' || $GLOBALS['tNG_login_config']['logger_user_id'] == '' || $GLOBALS['tNG_login_config']['logger_ip'] == '' || $GLOBALS['tNG_login_config']['logger_datein'] == '' || $GLOBALS['tNG_login_config']['logger_datelastactivity'] == '' || $GLOBALS['tNG_login_config']['logger_session'] == '') {
        return $ret;
    }
    $table = $GLOBALS['tNG_login_config']['logger_table'];
    $pk = $GLOBALS['tNG_login_config']['logger_pk'];
    $user_id = $GLOBALS['tNG_login_config']['logger_user_id'];
    $ip = $GLOBALS['tNG_login_config']['logger_ip'];
    $datein = $GLOBALS['tNG_login_config']['logger_datein'];
    $dateout = $GLOBALS['tNG_login_config']['logger_datelastactivity'];
    $session = $GLOBALS['tNG_login_config']['logger_session'];
    $now = KT_convertDate(date("Y-m-d H:i:s"), "yyyy-mm-dd HH:ii:ss", $GLOBALS['KT_db_date_format'] . ' ' . $GLOBALS['KT_db_time_format_internal']);
    $sql = 'SELECT ' . KT_escapeFieldName($pk) . ' AS pk FROM ' . $table . ' WHERE ' . KT_escapeFieldName($user_id) . ' = ' . KT_escapeForSql($tNG->getColumnValue('kt_login_id'), $GLOBALS['tNG_login_config']["pk_type"], false) . ' ORDER BY ' . KT_escapeFieldName($datein) . ' DESC LIMIT 0,1';
    $rs = $tNG->connection->Execute($sql);
    if ($rs === false) {
        return new tNG_error("LOGIN_LOGGER_ERROR", array(), array($tNG->connection->ErrorMsg(), $sql));
    }
    if ($rs->RecordCount() == 0) {
        return null;
    }
    $sql = 'UPDATE ' . $table . ' SET ' . KT_escapeFieldName($dateout) . ' =  ' . KT_escapeForSql($now, 'DATE_TYPE', false) . ' WHERE ' . KT_escapeFieldName($pk) . '=' . $rs->Fields('pk');
    $rs = $tNG->connection->Execute($sql);
    if ($rs === false) {
        $ret = new tNG_error("LOGIN_LOGGER_ERROR", array(), array($tNG->connection->ErrorMsg(), $sql));
    }
    return $ret;
}
/**
 * Wrapper for KT_convertDate
 * For internal use
 * @param string $date The date in input format
 * @param string $toScreen if $toScreen == 'toscreen' the date will be outputed in screen format; otherwise in database format
 * @return string the date in the new format
 */
function KT_convertDateCall($date, $toScreen = '')
{
    if (!isset($GLOBALS['KT_screen_time_format_internal'])) {
        KT_getInternalTimeFormat();
    }
    if (!preg_match('/^([\\d-\\/\\[\\]\\(\\)\\s\\*\\|\\+\\.:=,]|a|p|am|pm)+$/i', $date)) {
        return $date;
    }
    $date = str_replace('1900-01-01 ', '', $date);
    if (preg_match('/^\\d+$/', $date)) {
        if (strlen(trim($date)) == 14) {
            $newDate = substr($date, 0, 4) . '-' . substr($date, 4, 2) . '-' . substr($date, 6, 2);
            $newDate .= ' ' . substr($date, 8, 2) . ':' . substr($date, 10, 2) . ':' . substr($date, 12, 2);
            $date = $newDate;
            $from = 'yyyy-mm-dd HH:ii:ss';
            $to = $GLOBALS['KT_screen_date_format'] . ' ' . $GLOBALS['KT_screen_time_format_internal'];
        } else {
            return $date;
        }
    }
    if (!preg_match('/^(\\d+[-\\/\\[\\]\\(\\)\\s\\*\\|\\+\\.=,]\\d+[-\\/\\[\\]\\(\\)\\s\\*\\|\\+\\.=,]\\d+)+/i', $date) && !preg_match('/^\\d+:\\d+(:\\d+|\\s+a|\\s+p|\\s+am|\\s+pm)/i', $date)) {
        return $date;
    }
    if ($toScreen == '' && preg_match('/^\\d+[-\\/\\[\\]\\(\\)\\s\\*\\|\\+\\.=,]\\d+[-\\/\\[\\]\\(\\)\\s\\*\\|\\+\\.=,]\\d+\\s+\\d+/i', $date)) {
        $date = KT_expandTime($date);
    }
    if (strstr($date, ' ') && strstr($date, ':') && strpos($date, ' ') < strpos($date, ':')) {
        $from = $GLOBALS['KT_screen_date_format'] . ' ' . $GLOBALS['KT_screen_time_format_internal'];
        $to = $GLOBALS['KT_db_date_format'] . ' ' . $GLOBALS['KT_db_time_format_internal'];
    } elseif (strstr($date, ':')) {
        $from = $GLOBALS['KT_screen_time_format_internal'];
        $to = $GLOBALS['KT_db_time_format_internal'];
    } else {
        $from = $GLOBALS['KT_screen_date_format'];
        $to = $GLOBALS['KT_db_date_format'];
    }
    if ($toScreen == 'toscreen') {
        $tmp = $from;
        $from = $to;
        $to = $tmp;
    }
    $date = KT_convertDate($date, $from, $to);
    if ($toScreen == 'toscreen') {
        $date = KT_stripTime($date);
    }
    return $date;
}
 /**
  * Main class method. Return a fake recordset.
  * @var string 
  * @access private
  */
 function Execute()
 {
     $relFolder = KT_DynamicData($this->folder, '', '', false, array(), false);
     $relFolder = KT_TransformToUrlPath($relFolder, true);
     if (substr($relFolder, 0, 1) == '/') {
         $relFolder = substr($relFolder, 1);
     }
     $fullFolderPath = KT_realpath($this->baseFolder . $relFolder, true);
     if (substr($fullFolderPath, 0, strlen($this->baseFolder)) != $this->baseFolder) {
         if (isset($GLOBALS['tNG_debug_mode']) && $GLOBALS['tNG_debug_mode'] == "DEVELOPMENT") {
             die("Security error. The folder '" . $fullFolderPath . "' is out of base folder '" . $this->baseFolder . "'");
         } else {
             die("Security error. Access to this folder is forbidden.");
         }
     }
     $this->path = $fullFolderPath;
     $noOfEntries = 0;
     $startCountEntries = $this->page * $this->recordsPerPage;
     $this->totalNo = 0;
     if (file_exists($this->path)) {
         //read folders
         $folder = new KT_folder();
         $entries = $folder->readFolder($this->path, true);
         if ($folder->hasError()) {
             $err = $folder->getError();
             if (isset($GLOBALS['tNG_debug_mode']) && $GLOBALS['tNG_debug_mode'] == "DEVELOPMENT") {
                 $this->error = $err[1];
             } else {
                 $this->error = $err[0];
             }
         }
         $this->filesArr = $entries['files'];
         $tmpFilesArr = array();
         $tmpArr = array();
         for ($i = 0; $i < count($this->filesArr); $i++) {
             $this->filesArr[$i]['fullname'] = $relFolder . $this->filesArr[$i]['name'];
             $path_info = KT_pathinfo($this->filesArr[$i]['name']);
             $this->filesArr[$i]['extension'] = $path_info['extension'];
             $filetime = filectime($this->path . $this->filesArr[$i]['name']);
             $this->filesArr[$i]['date'] = $filetime;
             if (in_array(strtolower($this->filesArr[$i]['extension']), $this->allowedExtensions) || in_array("*", $this->allowedExtensions)) {
                 $tmpArr[] = $this->filesArr[$i][$this->orderField];
                 $tmpFilesArr[] = $this->filesArr[$i];
             }
         }
         $this->filesArr = $tmpFilesArr;
         $this->Sort($tmpArr);
         $this->totalNo = count($this->filesArr);
         if ($this->recordsPerPage > 0) {
             $from = $this->page * $this->recordsPerPage;
             $this->filesArr = array_slice($this->filesArr, $from, $this->recordsPerPage);
         }
         for ($i = 0; $i < count($this->filesArr); $i++) {
             $this->filesArr[$i]['date'] = KT_convertDate(date("Y-m-d H:i:s", $this->filesArr[$i]['date']), "yyyy-mm-dd HH:ii:ss", $GLOBALS['KT_screen_date_format'] . ' ' . $GLOBALS['KT_screen_time_format_internal']);
         }
         // create fake recordset
         $this->filesArr = $this->formatData($this->filesArr);
     }
     $KT_FakeRecordset = new KT_FakeRecordset($this->conn);
     $ret = $KT_FakeRecordset->getFakeRecordset($this->filesArr);
     if ($ret === NULL) {
         if (isset($GLOBALS['tNG_debug_mode']) && $GLOBALS['tNG_debug_mode'] == "DEVELOPMENT") {
             die("Internal error: cannot create fake recordset. " . $KT_FakeRecordset->getError());
         } else {
             die("Internal error: cannot create fake recordset.");
         }
     }
     return $ret;
 }
Beispiel #5
0
 /**
  * getter. validate the time parts
  * @param string time
  * @param string input time format
  * @return array with date parts: hour, mins, sec);
  * @access public
  */
 function getTimeParts($timePart, $format)
 {
     $myDate = '';
     $dateArr = array();
     $hour = '';
     $min = '';
     $sec = '';
     $myDate = KT_convertDate($timePart, $GLOBALS['KT_screen_time_format_internal'], $format);
     $dateArr = explode(':', $myDate);
     $hour = $dateArr[0];
     if (isset($dateArr[1])) {
         $min = $dateArr[1];
     }
     if (isset($dateArr[2])) {
         $sec = $dateArr[2];
     }
     if ($format != 'HH:ii:ss' && preg_match('/p/i', $timePart) && $hour < 12) {
         $hour += 12;
     }
     return array($hour, $min, $sec);
 }