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

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