コード例 #1
0
function core_latin2utf($data)
{
    if (is_array($data)) {
        $result = array();
        foreach ($data as $key => $value) {
            if (is_array($value)) {
                $result[core_utf8_encode($key)] = core_latin2utf($value);
            } else {
                $result[core_utf8_encode($key)] = core_utf8_encode($value);
            }
        }
    } elseif (is_string($data)) {
        $result = core_utf8_encode($data);
    } else {
        $result = $data;
    }
    return $result;
}
コード例 #2
0
 function next_travel_record($handler = 0)
 {
     global $recordCounter, $charset;
     if ($row = $this->next_record($handler)) {
         /*
          * reply from queryForEdit, nordita database
          */
         if ($row['Leave']) {
             $row['date'] = $row['Leave'];
             $row['duration'] = ($row['Return'] - $row['Leave']) / 24 / 3600;
             $row['p_name'] = $row['Location'];
             // Id is ambiguos, lets use 'uid' instead
             if ($row['Id']) {
                 $row['uid'] = $row['Id'];
             } else {
                 $row['uid'] = $row['id'];
             }
             unset($row['Id']);
             unset($row['id']);
             if ($row['full_name']) {
                 $row['login'] = $row['username'];
                 $row['gecos'] = core_latin2utf($row['full_name']);
             } else {
                 if ($u1 = posix_getpwuid($row['uid'])) {
                     $row['login'] = $u1['name'];
                     $row['gecos'] = core_latin2utf($u1['gecos']);
                 } else {
                     $row['login'] = $row['username'];
                     $row['gecos'] = $row['username'];
                 }
             }
         }
         $row['duration'] = (int) ($row['duration'] + 0.5);
         /*
          * tooltips
          */
         $cs = array();
         if ($row['placeid'] == 'other') {
             $row['p_name'] = $row['comment'];
             $row['tooltip'] = $row['comment'];
         } else {
             $cs[] = $row['p_name'];
             if ($row['comment']) {
                 $cs[] = $row['comment'];
             }
             if ($row['info']) {
                 $cs[] = $row['info'];
             }
             if ($row['Contact']) {
                 $cs[] = "Contact: " . $row['Contact'];
             }
             $row['tooltip'] = join(";\n", $cs);
             $row['tooltip'] = eregi_replace("_", " ", $row['tooltip']);
             $row['tooltip'] = eregi_replace("<br>", "\n", $row['tooltip']);
         }
         $row['comment'] = info2comment($row);
         if (!$row['login']) {
             if ($row['uid']) {
                 $u = posix_getpwuid($row['uid']);
             }
             if ($u) {
                 $row['login'] = $u['name'];
             }
             if (!$row['login'] && eregi('@', $row['Contact'])) {
                 $row['login'] = $row['Contact'];
             }
         }
         if (!$row['gecos']) {
             if ($row['uid']) {
                 $uu = core_getpwuid($row['uid'], $this);
             }
             if ($row['login'] && !$uu) {
                 $uu = core_getpwnam($row['login'], $this);
             }
             if ($uu) {
                 $row['gecos'] = core_latin2utf($uu['gecos']);
             }
         }
         if (!$row['login']) {
             $row['login'] = '******';
         }
         if (!$row['gecos']) {
             $row['gecos'] = $row['login'];
         }
         while (list($k, $v) = each($row)) {
             $row[$k] = eregi_replace("\"", "'", $row[$k]);
             $row[$k] = eregi_replace("_", " ", $row[$k]);
             $row[$k] = eregi_replace(",", ", ", $row[$k]);
         }
         reset($row);
     }
     return $row;
 }
コード例 #3
0
 function next_record($handler = 0)
 {
     $this->addCounter('next_record');
     if ($handler == 0) {
         $handler = $this->DBq;
     }
     if ($Record = mysql_fetch_array($handler)) {
         if (!$this->dbgNoNextRecord) {
             $this->dbg("{$handler} next_record", "OK " . ++$this->dbAntiDebugger);
         }
         $Record = core_latin2utf($Record);
     } else {
         mysql_free_result($handler);
         unset($handler);
     }
     return $Record;
 }