%d', $zid); if (($sth = db_query($query)) === false) return false; if (pg_num_rows($sth) == 0) return false; $row = pg_fetch_array($sth, 0); return $row['name']; } function zeitung_check_data() { global $_POST; if (empty($_POST['name']) || empty($_POST['city']) || empty($_POST['url']) || empty($_POST['description'])) return 'Sie müssen alle Pflichtfelder ausfüllen! Siehe Beschreibung unten.'; $_POST['url'] = fix_url($_POST['url']); if (!is_valid_url($_POST['url'])) return 'Die angegebene Homepage ist ungültig!'; if ($_POST['city'] == 'Deutschland (Stadt)') return 'Sie haben keinen Erscheinungsort angegeben!'; if (isset($_POST['zeitung'])) $try = zeitung_check_url($_POST['url'], $_POST['zeitung']); else $try = zeitung_check_url($_POST['url']); if ($try !== false) return 'Die angegebene URL ist bereits als "'.$try.'" gespeichert.'; return true; } function zeitung_reportnew($id) { global $_SESSION; global $_SERVER; global $_POST; global $cfg; $url = sprintf('%szeitung/%d.html', $cfg['home'], $id); $subject = 'Neue Zeitung '.$_POST['name']; $body = "Folgende Zeitung wurde neu im System aufgenommen:\n\n"; $body .= "Zeitung : " . $_POST['name'] . "\n" ."URL : " . $_POST['url'] . "\n" ."Ort : " . $_POST['city'] . "\n" ."Description: " . $_POST['description'] . "\n" ."\n" ."Nickname: " . $_SESSION['nickname'] . "\n" ."Realname: " . $_SESSION['realname'] . "\n" ."E-Mail : " . $_SESSION['email'] . "\n" ."\n" ."HTTP_USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] . "\n" ."REMOTE_ADDR : " . $_SERVER['REMOTE_ADDR'] . "\n"; $body .= "\n" . $url . "\n"; return sendmail($cfg['mailto'], '', $subject, $body); } function zeitung_update($zid) { global $_POST; $query = sprintf("UPDATE zeitungen SET name='%s',city='%s',url='%s',description='%s' " . 'WHERE id = %d', pg_escape_string(htmlspecialchars(trim($_POST['name']))), pg_escape_string(htmlspecialchars(trim($_POST['city']))), pg_escape_string(htmlspecialchars(trim($_POST['url']))), pg_escape_string(htmlspecialchars(trim($_POST['description']))), $zid); $old = zeitung_load($zid); if (db_query($query) === false) return false; foreach (array('name','city','url','description') as $col) { if ($old[$col] != $_POST[$col]) logbook('zeitungen', $zid, $col, $old[$col], htmlspecialchars(trim($_POST[$col]))); } return true; } function zeitung_insert() { global $_POST; // Bei Problemen das Feld 'deleted' wieder rausnehmen und manuell approven $query = sprintf("INSERT INTO zeitungen (name,city,url,description,deleted,changed) " . "VALUES ('%s','%s','%s','%s',false,now())", pg_escape_string(htmlspecialchars(trim($_POST['name']))), pg_escape_string(htmlspecialchars(trim($_POST['city']))), pg_escape_string(htmlspecialchars(trim($_POST['url']))), pg_escape_string(htmlspecialchars(trim($_POST['description'])))); if (db_query($query) === false) return false; $id = db_last_id('zeitungen', 'id'); logbook('zeitungen', $id, 'name', '', htmlspecialchars(trim(trim($_POST['name'])))); zeitung_reportnew($id); return $id; } function process_edit() { global $_SESSION; global $_SERVER; global $_POST; global $_GET; global $zlist; if (isset($_GET['zeitung']) && is_numeric($_GET['zeitung'])) $zid = $_GET['zeitung']; elseif (isset($_POST['zeitung']) && is_numeric($_POST['zeitung'])) $zid = $_POST['zeitung']; else return warning('Keine Zeitung oder Magazin gefunden!'); $ok = false; $try = format_newspaper($zid, 1); if ($try === false) $ret .= warning('Keine Zeitung oder Magazin gefunden!'); else { $ret .= $try; if (!isset($_SESSION['uid'])) $ret .= warning('Sie sind nicht angemeldet. Zum Bearbeiten von Zeitungen ist das erforderlich.'); else { if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (isset($_POST['delete'])) { zeitung_delete($zid); $ret .= information('Die Zeitung wurde gelöscht.'); $ok = true; } else { $try = zeitung_check_data(); if ($try !== true) { $ret .= warning($try); $replace = array('id' => $zid, 'name' => htmlspecialchars($_POST['name']), 'city' => htmlspecialchars($_POST['city']), 'url' => htmlspecialchars($_POST['url']), 'description' => htmlspecialchars($_POST['description'])); } else { zeitung_update($zid); $ret .= information('Die Zeitung wurde aktualisiert.'); $ok = true; $zlist['redirect'] = sprintf('zeitung/%d.html', $zid); } } } else $replace = zeitung_load($zid); if (!$ok) $ret .= load_template('zeitung.html', $replace); } } return $ret; } function process_new() { global $_SESSION; global $_SERVER; global $_POST; global $_GET; global $zlist; $ok = false; if (!isset($_SESSION['uid'])) $ret .= warning('Sie sind nicht angemeldet. Zum Hinzufügen von Zeitungen ist das erforderlich.'); else { if ($_SERVER['REQUEST_METHOD'] == 'POST') { $try = zeitung_check_data(); if ($try !== true) { $ret .= warning($try); $replace = array('name' => htmlspecialchars($_POST['name']), 'city' => htmlspecialchars($_POST['city']), 'url' => htmlspecialchars($_POST['url']), 'description' => htmlspecialchars($_POST['description'])); } else { $zid = zeitung_insert(); if ($zid === false) { $ret .= warning('Es ist ein Datenbankfehler aufgetreten.'); $ok = true; } else { $ret .= information('Die Zeitung wurde hinzugefügt.'); $zlist['redirect'] = sprintf('zeitung/%d.html', $zid); $ok = true; } } } else $replace = array('city' => 'Deutschland (Stadt)'); if (!$ok) $ret .= load_javascript('zeitung.js') . load_template('zeitung_new.html', $replace); } return $ret; } function ajax_zeitung_check_url() { global $_POST; if (empty($_POST['url'])) return false; return zeitung_check_url($_POST['url']); } ?>