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; }
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; }
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; }