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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (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/plain

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24