3 function zeitung_load($zid)
5 $query = sprintf('SELECT id,name,url,city,description FROM zeitungen ' .
6 'WHERE deleted IS false AND id = %d', $zid);
8 if (($sth = db_query($query)) === false) return false;
10 return pg_fetch_array($sth, 0);
13 function zeitung_delete($zid)
15 $query = sprintf('UPDATE zeitungen SET deleted = true WHERE id = %d', $zid);
17 if (db_query($query) === false) return false;
19 logbook('zeitungen', $zid, 'deleted', 'false', 'true');
24 function zeitung_check_url($url, $zid=false)
26 $query = sprintf("SELECT name FROM zeitungen WHERE lower(url) = lower('%s')",
27 pg_escape_string($url));
30 $query .= sprintf(' AND id <> %d', $zid);
32 if (($sth = db_query($query)) === false) return false;
34 if (pg_num_rows($sth) == 0) return false;
36 $row = pg_fetch_array($sth, 0);
41 function zeitung_check_data()
45 if (empty($_POST['name']) ||
46 empty($_POST['city']) ||
47 empty($_POST['url']) ||
48 empty($_POST['description']))
49 return 'Sie müssen alle Pflichtfelder ausfüllen! Siehe Beschreibung unten.';
51 $_POST['url'] = fix_url($_POST['url']);
52 if (!is_valid_url($_POST['url']))
53 return 'Die angegebene Homepage ist ungültig!';
55 if ($_POST['city'] == 'Deutschland (Stadt)')
56 return 'Sie haben keinen Erscheinungsort angegeben!';
58 if (isset($_POST['zeitung']))
59 $try = zeitung_check_url($_POST['url'], $_POST['zeitung']);
61 $try = zeitung_check_url($_POST['url']);
63 return 'Die angegebene URL ist bereits als "'.$try.'" gespeichert.';
68 function zeitung_reportnew($id)
75 $url = sprintf('%szeitung/%d.html', $cfg['home'], $id);
76 $subject = 'Neue Zeitung '.$_POST['name'];
79 $body = "Folgende Zeitung wurde neu im System aufgenommen:\n\n";
81 $body .= "Zeitung : " . $_POST['name'] . "\n"
82 ."URL : " . $_POST['url'] . "\n"
83 ."Ort : " . $_POST['city'] . "\n"
84 ."Description: " . $_POST['description'] . "\n"
86 ."Nickname: " . $_SESSION['nickname'] . "\n"
87 ."Realname: " . $_SESSION['realname'] . "\n"
88 ."E-Mail : " . $_SESSION['email'] . "\n"
90 ."HTTP_USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] . "\n"
91 ."REMOTE_ADDR : " . $_SERVER['REMOTE_ADDR'] . "\n";
93 $body .= "\n" . $url . "\n";
95 return sendmail($cfg['mailto'], '', $subject, $body);
98 function zeitung_update($zid)
102 $query = sprintf("UPDATE zeitungen SET name='%s',city='%s',url='%s',description='%s' " .
104 pg_escape_string(htmlspecialchars(trim($_POST['name']))),
105 pg_escape_string(htmlspecialchars(trim($_POST['city']))),
106 pg_escape_string(htmlspecialchars(trim($_POST['url']))),
107 pg_escape_string(htmlspecialchars(trim($_POST['description']))),
110 $old = zeitung_load($zid);
112 if (db_query($query) === false) return false;
114 foreach (array('name','city','url','description') as $col) {
115 if ($old[$col] != $_POST[$col])
116 logbook('zeitungen', $zid, $col, $old[$col], htmlspecialchars(trim($_POST[$col])));
122 function zeitung_insert()
126 // Bei Problemen das Feld 'deleted' wieder rausnehmen und manuell approven
127 $query = sprintf("INSERT INTO zeitungen (name,city,url,description,deleted,changed) " .
128 "VALUES ('%s','%s','%s','%s',false,now())",
129 pg_escape_string(htmlspecialchars(trim($_POST['name']))),
130 pg_escape_string(htmlspecialchars(trim($_POST['city']))),
131 pg_escape_string(htmlspecialchars(trim($_POST['url']))),
132 pg_escape_string(htmlspecialchars(trim($_POST['description']))));
134 if (db_query($query) === false) return false;
136 $id = db_last_id('zeitungen', 'id');
138 logbook('zeitungen', $id, 'name', '', htmlspecialchars(trim(trim($_POST['name']))));
140 zeitung_reportnew($id);
145 function process_edit()
153 if (isset($_GET['zeitung']) && is_numeric($_GET['zeitung']))
154 $zid = $_GET['zeitung'];
155 elseif (isset($_POST['zeitung']) && is_numeric($_POST['zeitung']))
156 $zid = $_POST['zeitung'];
158 return warning('Keine Zeitung oder Magazin gefunden!');
161 $try = format_newspaper($zid, 1);
163 $ret .= warning('Keine Zeitung oder Magazin gefunden!');
167 if (!isset($_SESSION['uid']))
168 $ret .= warning('Sie sind nicht angemeldet. Zum Bearbeiten von Zeitungen ist das erforderlich.');
170 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
171 if (isset($_POST['delete'])) {
172 zeitung_delete($zid);
173 $ret .= information('Die Zeitung wurde gelöscht.');
176 $try = zeitung_check_data();
178 $ret .= warning($try);
179 $replace = array('id' => $zid,
180 'name' => htmlspecialchars($_POST['name']),
181 'city' => htmlspecialchars($_POST['city']),
182 'url' => htmlspecialchars($_POST['url']),
183 'description' => htmlspecialchars($_POST['description']));
185 zeitung_update($zid);
186 $ret .= information('Die Zeitung wurde aktualisiert.');
188 $zlist['redirect'] = sprintf('zeitung/%d.html', $zid);
192 $replace = zeitung_load($zid);
194 $ret .= load_template('zeitung.html', $replace);
201 function process_new()
210 if (!isset($_SESSION['uid']))
211 $ret .= warning('Sie sind nicht angemeldet. Zum Hinzufügen von Zeitungen ist das erforderlich.');
213 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
214 $try = zeitung_check_data();
216 $ret .= warning($try);
217 $replace = array('name' => htmlspecialchars($_POST['name']),
218 'city' => htmlspecialchars($_POST['city']),
219 'url' => htmlspecialchars($_POST['url']),
220 'description' => htmlspecialchars($_POST['description']));
222 $zid = zeitung_insert();
223 if ($zid === false) {
224 $ret .= warning('Es ist ein Datenbankfehler aufgetreten.');
227 $ret .= information('Die Zeitung wurde hinzugefügt.');
228 $zlist['redirect'] = sprintf('zeitung/%d.html', $zid);
233 $replace = array('city' => 'Deutschland (Stadt)');
235 $ret .= load_javascript('zeitung.js') . load_template('zeitung_new.html', $replace);
241 function ajax_zeitung_check_url()
245 if (empty($_POST['url'])) return false;
247 return zeitung_check_url($_POST['url']);