/[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 - (hide annotations) (download) (vendor branch)
Sat Dec 1 11:17:31 2001 UTC (22 years, 11 months ago) by wakaba
Branch: suika, MAIN
CVS Tags: initial, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain

1 wakaba 1.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