/[suikacvs]/messaging/newsportal/doc/readme.html
Suika

Contents of /messaging/newsportal/doc/readme.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (as text) (vendor branch)
Sat Dec 1 11:17:31 2001 UTC (22 years, 5 months ago) by wakaba
Branch: suika, MAIN
CVS Tags: initial, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/html

1 <html>
2 <head>
3 <title>Newsportal</title>
4 </head>
5 <body textcolor=black bgcolor=white>
6 <h1 align=center>News Portal</h1>
7
8 <p>Version 0.24pre1</p>
9
10 <h2>Einleitung</h2>
11
12 <p>Newsportal ist ein PHP-Basierter Newsreader.
13 Es steht unter der GNU Public License (siehe beiliegende LICENSE).</p>
14
15
16 <h2>&Uuml;berblick</h2>
17
18 <p>Diese Skriptsammlung ermöglicht von einer Webseite aus den Zugriff auf einen
19 Newsserver (per NNTP). Man kann damit Webforen und Newsgruppen verbinden, so
20 daß auf ein "Webforum" auch per NNTP zugegriffen werden kann. Dieses Skript
21 eignet sich auch für die Präsentation von Announce-Newsgruppen auf
22 Webseiten, ohne daß der Benutzer merkt, daß er in Wirklichkeit auf einen
23 Newsserver zugreift.</p>
24
25 <p>Die eigentliche Funktionalitäts des Skripts liegt in der Datei
26 <tt>newsportal.php3</tt>, in der die meisten php3-Funktionen untergebracht sind.
27 Zusätzlich gibt es vier weitere php3-Dateien, auf die direkt mit dem Browser
28 zugegriffen wird:
29 <UL>
30 <li><i>index.php3</i> zeigt die auf dem Newsserver verfügbaren Newsgruppen an (sofern
31 sie auch in die Datei groups.txt eingetragen sind).
32 <li><i>thread.php3</i> zeigt die Artikel in einer Newsgruppe an.
33 <li><i>article.php3</i> zeigt einen einzelnen Artikel an.
34 <li><i>post.php3</i> schreibt eine Nachricht in die passende Newsgruppe.
35 WARNUNG: Dieses Skript erzeugt noch nicht unbedingt RFC-Konforme
36 Nachrichten. So werden Umlaute im Subject nicht 7bit-kodiert!
37 <li><i>config.inc</i> enthält die Einstellungen
38 <li><i>body.inc</i> enthält die HTML-Bodyzeile, in der z.B. die Hintergrundfarbe
39 gesetzt wird. Das betrifft nur "index.php3", "thread.php3", "post.php3"
40 und "article.php3".
41 <li><i>deutsch.lang</i>: Die deutschen Sprachdefinitionen
42 <li><i>english.lang</i>: Die englischen Sprachdefinitionen
43 </ul></p>
44
45 <p>Da das Abfragen der Artikelübersicht vom Newsserver viel Zeit beansprucht,
46 werden diese Dateien im Verzeichnis <tt>spool/</tt> zwischengespeichert. Die Dateien
47 dort drin können nach belieben gelöscht werden, sie werden bei Bedarf neu
48 angelegt.</p>
49
50 <h2>Installation:</h2>
51
52 <p><ol>
53 <li>Das Archiv in ein Verzeichnis entpacken.
54
55 <li>Die Datei <tt>config.inc</tt> muß angepasst werden (für einen Schnellstart müssen
56 <i>$server, $port, $title</i> und gegebenenfalls <i>$readonly</i> verändert werden).
57
58 <li>In die Datei <tt>groups.txt</tt> werden alle Newsgruppen eingetragen, die
59 Newsportal anzeigen soll. Optional kann man hinter den Gruppennamen von
60 einem Leerzeichen getrennt eine Beschreibung eintragen, die dann von der
61 <tt>index.php3</tt> angezeigt wird. Fehlt diese, wird die Beschreibung vom
62 Newsserver angefordert.
63
64 <li>Das Verzeichnis spool muß mit "<code>chmod 777 spool</code>" für jeden les- und
65 schreibbar gemacht werden. Nach einem Update kann es passieren, daß das
66 Skript ohne das Löschen aller Dateien in diesem Verzeichnis nicht
67 funktioniert. Das kommt aber darauf an, ob ich das Format dieser Dateien
68 geändert habe. NewsPortal erkennt normalerweise fehlerhafte Spooldateien und
69 l&ouml;scht sie gegebenenfalls.
70 </ol></p>
71
72 <h2>Konfiguration</h2>
73 <p>Folgende Einstellungen können in der <tt>config.inc</tt> vorgenommen werden:
74 </p>
75
76 <p><b>Verzeichnisse und Dateien:</b>
77 <UL>
78 <li><i>$file_newsportal="newsportal.php3":</i> Name des newsportal-Skripts
79
80 <li><i>$file_groups="index.php3"</i>: Die Gruppenübersicht
81
82 <li><i>$file_thread="thread.php3"</i>: Die Artikelübersicht
83
84 <li><i>$file_article="article.php3"</i>: Zeigt den Artikel an
85
86 <li><i>$file_post="post.php3"</i>: einen Artikel schreiben. Die Datei kann entfernt
87 werden, wenn das System auf readonly gesetzt ist (siehe unten)
88
89 <li><i>$file_language="deutsch.lang"</i>: Verweis auf die Sprachdefinitionsdatei.
90 <li><i>$file_footer</i>: Hier kann Optional der Name einer Datei angegeben
91 werden, die an jede &uuml;ber Newsportal verschickte Nachricht
92 angeh&auml;ngt wird.
93 </ul></p>
94
95 <p><b>Servereinstellungen</b>
96 <UL>
97 <li><i>$server</i>: Adresse des Newsservers
98 <li><i>$port</i>: Port des Newsservers, normalerweise 119
99 <li><i>$post_server</i>: Optional kann hier f&uuml;r das Schreiben von
100 Artikeln ein eigener Server angegeben werden. Es ist dann nat&uuml;rlich so,
101 da&szlig; ein Artikel eine Zeit braucht, bis er vom $post_server zum $server
102 gelangt ist.
103 <li><i>$post_port</i>: Port des Post-Newsservers, normalerweise 119
104 <li><i>$maxfetch</i>: Hier wird die maximal bei einem Aufruf von thread.php3 vom
105 Newsserver anzufordernden Artikelübersichten beschränkt. Auf "0" gesetzt
106 werden so viele Artikel angefordert, wie neu zur Verfügung stehen, jede
107 andere Nummer legt die Maximalanzahl fest. Diese Option sollte nur dann
108 auf etwas anderes als 0 gesetzt werden, wenn es Probleme mit der
109 Geschwindigkeit gibt.
110 <li><i>$initialfetch</i>: Bei einem Neuaufbau der Overview-Spooldatei wird statt
111 $maxfech viele Artikel maximal $initialfetch viele Artikel abgeholt.
112 Bei "0" ist es auch ungeschränkt.
113 <li><i>$server_auth_user</i>: Falls der Newsserver durch Name und Passwort
114 gsch&uuml;tzt wird, kann hier der Username angegeben werden. Ansonsten
115 einfach die Variable auf "" setzen.
116 <li><i>$server_auth_pass</i>: Hier wird das zum Usernamen passende Passwort
117 angegeben.
118 </ul></p>
119
120 <p><b>Threaddarstellung</b>
121 <ul>
122 <li><i>$treestyle</i>: Setzt das Aussehen des Nachrichtenbaums.
123 <ul>
124 <li>0: Einfache Auflistung der Artikel</li>
125 <li>1: Einfache Auflistung der Artikel, jedoch als HTML-Auflistung</li>
126 <li>2: Einfache Auflistung in Tabellenform</li>
127 <li>3: Thread mit HTML-Auflistungen</li>
128 <li>4: Thread aus Textzeichen</li>
129 <li>5: Thread auf Graphikelementen</li>
130 <li>6: Thread aus Textzeichen mit Tabelle</li>
131 <li>7: Thread aus Grafikzeichen mit Tabelle</li>
132 </ul></li>
133
134 <li><i>$thread_fontPre</i>: Der Inhalt dieser Variable wird vor Texten in
135 der Threadansicht ausgegeben. Diese Variable ist gedacht um z.B. die
136 Textgr&ouml;&szlig;e der Texte zu &auml;ndern. Standardm&auml;&szlig; wird
137 dort der Font klein gestellt. Das ist bei alle Threadstyles sinnvoll, wo mit
138 Tabellen gearbeitet wird, bei allen anderen ist es sch&ouml;ner die Variable
139 auf einen leeren String zu setzen.</li>
140
141 <li><i>$thread_fontPost</i>: Das gleiche wie $thread_fontPre, nur da&szlig;
142 dieser String nach Textausgaben ausgegeben wird.</li>
143
144 <li><i>$thread_showDate,<br>
145 $thread_showSubject,<br>
146 $thread_showAuthor</i>:
147 <ul>
148 <li>true: das Datum / das Subject / der Autor wird im Artikelbaum angezeigt
149 <li>false: Darstellung wird unterdrückt.
150 </ul>
151
152 <li><i>$thread_maxSubject</i>: Anzahl der Zeichen, die vom Subject in der
153 Artikelübersicht angezeigt werden.
154
155 <li><i>$maxarticles</i>: Gibt die Anzahl der Artikel an, die maximal im Artikelbam
156 angezeigt werden. "0" bedeutet keine Beschränkung.
157 Es werden immer die letzten x Artikel angezeigt, wo wie sie auf dem
158 Newsserver liegen. Das muß nicht unbedingt mit dem Erstelldatum des
159 Artikels übereinstimmen.
160
161 <li><i>$maxarticles_extra</i>: Das Problem beim Betrieb mit $maxarticles
162 ist, da&szlig; alle Artikeldaten vom Newsserver komplett neu angefordert
163 werden m&uuml;ssen, wenn der angegebene Wert &uuml;berschritten worden
164 ist. Damit dies nicht ganz so oft vorkommt, kann $maxarticles_extra
165 gesetzt werden. Dann wird die Artikeldatenbank erst neu aufgebaut, wenn
166 $maxarticles + $maxarticles_extra Artikel vorliegen, wobei dann
167 $maxarticles viele Artikeldaten angefordert werden. Wenn man mit
168 $maxarticles arbeitet, weil die Newsgruppen zu gro&szlig; sind, sollte man
169 unbedingt immer auch mit $maxarticles_extra arbeiten. Der Wert sollte etwa
170 20% von $maxarticles betragen. Nur dann, wenn man wirklich eine ganz genau
171 vorgegebene Anzahl von Artikeln auf einer Webseite anzeigen will, sollte
172 man hier den Wert auf Null setzen.
173
174 <li><i>$age_count</i>: Anzahl der verschiedenen Altersstufen für die
175 farbliche Markierung von Artikeln
176
177 <li><i>$age_time[n]</i>: maximales Alter eines Artikels in Sekunden, so daß der
178 Artikel mit der Farbe $age_color[n] markiert wird. n ist eine natürliche
179 Zahl >= 1, wobei alle Zahlen von 1 bis n vergeben sein müssen, Lücken sind
180 also nicht erlaubt.
181
182 <li><i>$age_color[n]</i>: Die Farbe, mit dem der Artikel markiert wird
183
184 <li><i>$thread_sorting</i>: Die Sortierreihenfolge für die Artikel:
185 <ul>
186 <li>0: Keine Sortierung, die Artikel werden in der Reihenfolge angezeigt,
187 in der sie vom Newsserver kommen.
188 <li>1: aufsteigende Sortierung, die ältesten Artikel zu oberst
189 <li>-1: absteigende Sortierung, die neusten Artikel zu oberst
190 </ul>
191 Es ist zu beachten, daß die Artikel in einer Baumstruktur angezeigt
192 werden, so daß der oberste Artikel eines Teilbaums immer den Ausschlag
193 gibt.
194
195 <li><i>$articles_per_page</i>: Ist dieser Wert ungleich 0, so gibt er die
196 Anzahl der Artikel an, die auf einer Seite gleichzeitig angezeigt werden
197 sollen. Es gibt dann Links um die einzelnen Seiten zu wechseln. Benutzt man
198 diese Option, so sollte man <i>$maxarticles</i> beachten: Diese Variable
199 gibt n&auml;mlich auch an, wieviele Artikel in den Spooldateien gespeichert
200 werden, sa da&szlig; ein zu hoher Wert trotz Seiteneinteilung die
201 Geschwindigkeit herabsetzen kann.</li>
202
203 <li><i>$startpage</i>: In Verbindung mit $articles_per_page wird hier
204 angegeben, welche Seite bei Aufruf des Threads angezeigt werden soll:
205 <ul>
206 <li>"first": zeigt zuerst die erste Seite an.
207 <li>"last": zeigt die letzte Seite an.
208 </ul>
209 Die Angabe sollte mit <i>$thread_sorting</i> abgestimmt werden. "first"
210 f&uuml;r 0 und 1, und "last" f&uuml;r -1.</li>
211 </ul></p>
212
213 <p><b>Artikeldarstellung</b>
214 <ul>
215 <li><i>$article_show["Subject"],<br>
216 $article_show["From"],<br>
217 $article_show["Newsgroups"],<br>
218 $article_show["Organization"],<br>
219 $article_show["Date"],<br>
220 $article_show["Message-ID"],<br>
221 $article_show["User-Agent"],<br>
222 $article_show["References"]</i>: Bei "true" wird die jeweilige Headerzeile in der
223 Artikelansicht angezeigt, bei "false" wird sie unterdrückt. Momentan ist
224 die Ansicht weiterer Headerzeilen nicht möglich.
225 </ul></p>
226
227 <p><b>Frameunterst&uuml;tzung</b><br>
228 Beispieldateien f&uuml;r die Frameunterst&uuml;tzung liegen in
229 <tt>extras/frames/</tt>. In dieser Sektion werden die targets f&uuml;r
230 diverse Links definiert, also in welchem Frame welche Webseite dargestellt
231 werden soll. In der <tt>config.inc</tt> mu&szlig; statt "<i>thread.php3</i>"
232 "<i>thread_frameset.php3</i>" eingetragen werden.
233 <ul>
234 <li><i>$frame_article</i>: Name des Artikel-Frames. Mu&szlig; mit dem Namen
235 in <tt>thread_frameset.php3</tt> &uuml;bereinstimmen
236 <li>$frame_thread</i>: Name des Thread-Frames;
237 <li><i>$frame_groups</i>: Name des Frames f&uuml;r die Gruppen&uuml;bersicht,
238 normalerweise "_top".
239 <li><i>$frame_post</i>: Name des Schreiben-Frames
240 <li><i>$frame_threadframeset</i>: Frame, in dem der Frameset erscheinen
241 soll, der den Artikel- und Thread-Frame aufnimmt. Normalerweise "_top".
242 <li><i>$frame_externallink</i>: Zielframe f&uuml;r extrerne Links innerhalb
243 von Artikeln
244 </ul>
245
246 <p><b>Sicherheitseinstellungen</b>
247 <ul>
248 <li><i>$send_poster_host</i>: bei "true" wird bei jeder geschriebenen Nachricht noch
249 die Zeile "X-HTTP-Posting-Host: " in den Header geschrieben, und der Name
250 des Rechners eingetragen, der die Nachricht abgeschickt ist. Das kann als
251 Ersatz von "NNTP-Posting-Host" angesehen werden, dessen Wert beim Einsatz
252 von Newsportal immer nur den Namen des Webservers anzeigt.
253 <li><i>$readonly</i>: wenn auf "true" gesetzt, kann man keine Artikel in Gruppen
254 schreiben.
255 <li><i>$testgroup</i>: auf "true" gesetzt wird beim Anzeigen des Threads überprüft, ob
256 betreffende Gruppe in die "groups.txt" eingetragen ist.
257 Andernfalls könnte man über das direkte Eintragen der richtigen URL eine
258 Gruppe einsehen, obwohl diese nicht in der Gruppenübersicht angezeigt wird.
259 <li><i>$validate_email</i>: Hier kann eingestellt werden, wie Newsportal
260 beim Posten eine angegebene eMail-Adresse auf richtigkeit pr&uuml;ft:
261 <ul>
262 <li>0: keine &Uuml;berpr&uuml;fung. Ist nicht zu empfehlen, da
263 normalerweise der Newsserver eine Fehlermeldung liefert, wenn
264 die Adresse syntaktisch Falsch ist.
265 <li>1: &Uuml:berpr&uuml;ft die Adresse auf syntaktische Richtigkeit.
266 <li>2: hier wird zus&auml;tzlich &uuml;berpr&uuml;ft, ob zu der angegebenen
267 Domain ein MX oder A Record existiert.
268 </ul>
269 </UL></p>
270
271 <p><b>Allgemeines</b>
272 <ul>
273 <li><i>$title</i>: Name des Systems, wird als Überschrift verwendet
274
275 <li><i>$organization</i>: Die Organisation für den NNTP-Header beim
276 Schreiben von Nachrichten
277
278 <li><i>$setcookies</i>: Erlaubt dem Benutzer, seinen Namen und seine eMail-Adresse
279 beim schreiben eines Artikels als Cookie abzuspeichern, so daß die Daten
280 beim erneuten Schreiben eines Artikels automatisch eingesetzt werden.
281
282 <li><i>$compress_spoolfiles</i>: Hier kann eingestellt werden, ob die
283 Spooldateien komprimiert werden sollen. Dies ist im Normalfall empfohlen,
284 da auf etwa 10 bis 15% der Originalgr&ouml;&szlig;e komprimiert wird.
285 Bei aelteren PHP-Versionen mu&szlig; man diese Variable jedoch auf
286 <code>false</code> setzen, falls diese Kompression noch nicht
287 unterst&uuml;tzen.
288 </ul></p>
289
290 <h2>Sicherheitshinweise</h2>
291
292 <p>Ein paar Kleinigkeiten m&uuml;&szlig;en beachtet werden, damit NewsPortal
293 nicht zu einem Sicherheitsloch werden soll:
294 <ul>
295 <li>Zu Debugzwecken wird immer der User-Agent in der Artikelansicht
296 mitübermittelt, wenn die Anzeige ($article_show["User-Agent"])
297 abgeschaltet ist, ist der Eintrag lediglich unsichtbar.
298 <li>Die config.inc kann solange von jedem Websurfer (der den Dateinamen
299 kennt) abgerufen werden, wie die Datei nicht in einen geschützten Bereich
300 des Webservers verschoben worden ist.
301 </ul></p>
302
303 <p>Dieses Skript war ursprünglich (und eigentlich immer noch) nur f&uuml;r
304 den Zugriff auf lokale Newsgruppen
305 gedacht. Wenn Gruppen des UseNet im Web verfügbar sind, ergeben sich
306 folgende Probleme:
307 <ul>
308 <li>Spammer können anonym ($send_poster_host beachten!) Artikel abschicken
309 <li>Newsportal erzeugt 8bit-Headerzeilen (z.B. das Subject), was eigentlich
310 nicht erlaubt ist. Es scheint aber keine ernsthaften Probleme zu geben.
311 <li>Es gibt im Internet Listen mit sogenannten "offenen" Newsservern. Offen
312 hei&szlig;t hier meist nicht, da&szlig; die jeder benutzen darf, sondern
313 da&szlig; diese einfach nur nicht ordentlich gesichert worden sind. Bevor Du
314 also einen solchen Newsserver benutzt, solltest Du Dich vergewissern,
315 da&szlig; der Betreiber nichts gegen Dein Vorhaben einzuwenden hat.
316 <li>Es wird im UseNet oft nicht gerne gesehen, wenn Personen anonym in
317 Newsgruppen schreiben k&ouml;nnen. Bevor Du also schreibenden Zugriff auf
318 eine Newsgruppe erlaubst, solltest Du in der betreffenden Gruppe nachfragen,
319 ob es dort keine Einw&auml;nde gibt. Etwas anderes ist es nat&uuml;rlich,
320 wenn Du NewsPortal in einem gesch&uuml;tzten Bereich Deines Webservers
321 betreibst, auf den nur eine Dir bekannte Benutzergruppe zugreifen kann.
322 <b>Gib keinen &ouml;ffentlichen Schreibzugriff auf UseNet Newsgruppen, wenn
323 Du nicht ganz genau wei&szlig;t, was Du tust!</b>
324 </ul></p>
325
326 <p>Die Benutzung des Skripts erfolgt auf eigene Gefahr!</p>
327
328
329 <h2>Kompatiblität</h2>
330
331 <p>Sollte auf jedem PHP3-Fähigen Webserver zusammen mit jedem NNRP-fähigen
332 Newsserver laufen. Webserver und Newsserver müßen nicht auf der selben
333 Maschine laufen.</p>
334
335 <h2>Kontakt:</h2>
336
337 <p>Florian Amrhein<br>
338 eMail: <a href="mailto:florian.amrhein@gmx.de">florian.amrhein@gmx.de</a><br>
339 WWW: <a href="http://floh.gartenhaus.net">http://floh.gartenhaus.net</a>
340 </p>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24