#############################################################################################################
#  GRUNDKONFIGURATION DER content.txt © Ansatheus 2003-2014 - Steuerzeichen siehe Hilfe                     #
#<< 1  Die Anzahl der Zeichen in einer Reihe sollte 120 bei 1024x768 nicht überschreiten              120 >>#
#############################################################################################################
#STATISTIK
~!Fragen und Antworten
~Fragen und Antworten
~©Ansatheus
#~~Dateien und Verzeichnisse         | Steuerzeichen wird nur untersucht
~?letzte Bearbeitung der content.txt| Steuerzeichen wird nur untersucht
#############################################################################################################
#INHALT

%Fragen und Antworten

Hier findet Ihr Antworten auf Fragen, die häufig gsetellt werden oder auf Sachverhalte, die öfters
bei der Arbeit mit AT Contenator auftreten.
  <hr width="100%" size="1" noshade>
%Wie kann ich Menüpunkte erzeugen?
AT Contenator generiert Menüpunkte aus Verzeichnissen, die bestimmte Kriterien erfüllen müssen.

- eine vorangestellte einstellige Zahl mit nachfolgendem Unterstrich -> 1_Home
- mit erstem Großbuchstaben -> Home

Wichtig ist, daß jedes Verzeichnis eine index.php enthält. Im Normalfall ist dies die index.php
und die dazugehörige content.txt für den Verzeichnisaufruf, die im Verzeichnis "_verzeichnis_index_dateien"
liegen und nur in das entsprechende Verzeichnis hineinkopiert werden.
Es können bis zu 10 Unterverzeichnisse erzeugt und als Untermenü angezeigt werden. Dieser Wert kann
im Code der core.menu.php noch vergrößert werden.
  <hr width="100%" size="1" noshade>
%Wie kann ich Menüpunkte ausblenden?
Verzeichnisse mit folgenden Kriterien werden nicht als Menüpunkt angezeigt:

- home
- _home
  <hr width="100%" size="1" noshade>
%Was kann ich in die content.txt schreiben und was muß ich dabei beachten?
§normaler Text
Im Prinzip kann sofort in einem Texteditor losgeschrieben werden, ohne irgendetwas beachten zu müssen.
Das ist Ideal für die schnelle Ablage von Textinformationen jeglicher Art.

§formatierter Text
Mittels speziellen Steuerzeichen können Texte zeilenweise formatiert und somit strukturiert werden.
AT Contenator untersucht immer die ersten beiden Zeichen ganz am Anfang jeder Zeile auf Steuerzeichen.
Dabei ist darauf zu achten, daß auch keine für die zukünftige Nutzung reservierten Steuerzeichen genommen
werden (siehe Hilfe|Steuerzeichen).

§HTML-Code
HTML-Code wird ebenfalls verarbeitet. Dabei ist ebenfalls auf die reservierten Steuerzeichen zu achten.
Wenn der Code ab dem 3. Zeichen beginnt, ist man auf der sicheren Seite, obwohl die ersten beiden Zeichen
ebenfalls funktionieren.

§PHP-Code
PHP-Code muß per Include eingebunden werden (siehe Hilfe|Steuerzeichen).
  <hr width="100%" size="1" noshade>
%Warum lädt die Seite nicht, wenn ein Menüpunkt angeklickt wird?
Dieses Verhalten liegt nicht am AT Contenator, sondern an den Einstellungen der PHP.INI. Damit
der Contenator korrekt arbeitet, sollte folgender Eintrag in der PHP.INI gemacht werden:

&3register_globals=ON

Dieser Eintrag sorgt dafür, daß PHP-Variablen zwischen den Seiten übergeben werden können.
Bei einigen PHP-Versionen ist dieser Eintrag entweder auf OFF, nicht vorhanden oder die PHP.INI
existiert gar nicht erst. Ist das der Fall, dann wird diese einfach angelegt - unter Windows im
Windows-Verzeichnis und unter UNIX/Linux im etc-Verzeichnis.
Ist dies unter UNIX/Linux nicht möglich, z.B. wegen fehlender Benutzerrechte oder wenn PHP im
^§safe_mode^ läuft (insbesondere auf Uni-Servern), dann kann dies elegant mit einer .htaccess-Datei
umgangen werden, die im Root des contenatorbasierenden Systems liegt, also im selben Verzeichnis,
in der auch die index.php liegt, die das contenatorbasierende System aufruft.
Die .htaccess hat folgenden Inhalt:

&3#(entspricht off)
&3php_value register_globals 0

&3#(entspricht on)
&3php_value register_globals 1

Die nicht gewünschte Option muß mit einen # am Zeilenanfang auskommentiert werden.
Den AT-Contenator-Sourcen und dem Beispielprojekt liegt diese Datei bei. Es muß nur die entsprechende
Option aktiviert werden (# vor der Option entfernen). Dies darf aber nur gemacht werden, wenn die
Variablenübergabe nicht funktioniert, sonst gibt es einen internen Serverfehler.

§Dank an Martin Lehmann, TU Berlin

§Anmerkung
Obige Einstellungen sind nur für ältere Versionen von AT Contentaor nötig.
Aktuelle Versionen (ab 2014), benötigen dies nicht mehr. Hier werden auch Variablen übergeben
bei ^&3register_globals=OFF^.

  <hr width="100%" size="1" noshade>
%Kann ich für die Online-Bearbeitung der Inhalte mittels dem Modul OnlineEdit nur bestimmte
%Benutzer zulassen?
AT Contenator hat bisher keine eigene Benutzerverwaltung. Dennoch kann die .htaccess-Funktionalität
des Apache Webservers dafür genutzt werden (serverseitiger Zugriffsschutz).

1. Es wird ein Verzeichnis im Projektpfad angelegt.
(hier /beispielprojekt/pwpw ) kleingeschrieben damit es nicht im Menü angezeigt wird.

In dieses Verzeichnis kommen die .htpasswd und die .htgroup Datei. Zur Sicherheit kann das Verzeichnis auch
noch mit einer .htaccess geschützt werden.

Das mit dem zusätzlichen Unterverzeichnis muss nicht sein, aber so sind immer alle Passwortdateien
zusammen. Wenn dann mal alles gesperrt werden muss, einfach dieses Verzeichnis umbennen.

2. Die unten Beipielhaft aufgeführte ".htaccess" Datei kommt ins Projektverzeichnis
( /beispielprojekt )

3. Sollten für einige Seiten spezielle Zugangsregeln zu Anwendung kommen, dann wird zusätzlich
zur "modul.ordner.onlineedit.php" Datei die ".htaccess" Datei in das Verzeichnis kopiert
in der die zu editierende "content.txt" steht.

Das war es auch schon. Jetzt hat man, je nach Inhalt der ".htaccess" Datei, eine Editiermöglichkeit
auf User oderGruppenbasis.

&4Beispielvorlage für die .htaccess Datei

AuthUserFile /var/www/htdocs/Beispielprojekt/pwpw/.htpasswd (Absoluter Pfad zur Datei, dieser muss angepasst werden)
AuthGroupFile /var/www/htdocs/Beispielprojekt/pwpw/.htgroup (Absoluter Pfad zur Datei, dieser muss angepasst werden)

AuthType Basic
AuthName "Seitenlogin"

require user Demo

  &lt;Files ./modul.ordner.onlineedit.php&gt;
  &nbsp;&nbsp;&nbsp;&nbsp;require user Demo
  &lt;/Files&gt;

&4Beispielvorlage für die .htpasswd Datei
\&nbsp;#Der Username ist "Demo" das Passwort lautet "passwort"

Demo:$apr1$RP4.....$a425xHbGfI/On1R6upGLx/:Demouser:

&4Hier eine Beispielvorlage für die .htgroup Datei
\&nbsp;#Der Username ist "Demo" das Passwort lautet "passwort"
Gruppe ist all (alle Gruppen)

all: Demo

§Update
Da AT Contenator mittlerweile einen Online-Editor hat, der den Zugang mittels Passwort-Abfrage regelt,
kann alternativ auch dieses Modul eingesetzt werden (bei Standardinstallation mit dabei). Möchte man
zudem die o.g. serversetige Abfrage nutzen, sollte die .htaccess-Datei im Root einfach wie folgt
erweitert werden:

  &lt;Files module.ContenatorEdit.php&gt;
  &nbsp;&nbsp;&nbsp;&nbsp;require user Demo
  &lt;/Files&gt;

Zusätzlich muß dann die Passwort-Abfrage in der Datei "module.ContenatorEdit.php" deaktiviert oder
entfernt werden. Diese Lösung erlaubt es, gruppenweise Berechtigungen zu vergeben. Dazu muß nur
jedes Unterverzeichnis dann eine entsprechende .htaccess erhalten.

§Dank an Kay Dittmann
   <hr width="100%" size="1" noshade>
%Beim Laden der Seite wird ein "permission denied" bei Zeile 110 der core.parser.php angezeigt - warum?
Da ist eine Sache des Providers, die aber mit wenige Handgriffen umgangen werden kann. Grund ist, daß
manche Provider automatisch in einem Zeitraum (z.B. alle 24 Stunden) Verzeichnisse anlegen, die
Zugriffsstatistiken etc. enthalten. Diese Verzeichnisse sind geschützt, der User darf nicht darauf
zugreifen -> permission denied. In Zeile 110 der core.parser.php wird die Funktion count_files_dir
für Statistikangaben rekursiv aufgerufen, die in der Fußzeile erscheinen.

Jetzt gibt es 4 Lösungsvarianten:

1) dem Provider bescheid sagen, er solle doch die Berechtigungen entsprechend setzen
2) in der content.txt im Statistik-Bereich Dateien und Verzeichnisse deaktivieren
3) in Zeile 512 (ca.) in der core.parser.php den Aufruf der Funktion auskommentieren
4) in der Funktion die 7. Zeile ersetzen oder erweitern

Wird z.B. das Verzeichnis "usage" angelegt, dann muß die Zeile so erweitert werden:
   <code>
if (is_dir("$dir/$datei") && $datei!="." && $datei!=".." && $datei!="usage" && (substr($datei,0,1) != "_"))
  </code>
Das Verzeichnis "usage" wird somit ausgeschlossen und die Statistik funktioniert weiterhin.

§Dank an Tobias Tabler
  <hr width="100%" size="1" noshade>
%Kann ich meiner Homepage einen Titel für die Titelzeile des Browsers geben?
Ja! Datei "core.config.dat" Option "websitetitel".
  <hr width="100%" size="1" noshade>
%Wie können bestimmte Dateien von der Generierung im Linkindex ausgeschlossen werden?
Es gibt verschiedene Möglichkeiten, dies zu tun:

§1. Wie kann ich bestimmte Dateiarten für den Linkindex zulassen?
In der Datei "core.config.dat" im Verzeichnis "_config" gibt es die Option "dateiarten". Wird dort eine
Dateiart nach folgendem Muster: .txt; eingetragen, dann wird jede Datei mit dieser Endung im Linkindex
generiert. Den gleichen Effekt hat, wenn .txt keine Dateiendung ist sondern mitten im Dateiname auftaucht.

§2. Dateien ignorieren
Will man aber eine bestimmte Dateiart unter einem Menüpunkt für den Linkindex zulassen aber diese unter
einem anderen Menüpunkt nicht im Linkindex anzeigen, dann können sie auch explizit ausgeschlossen werden.
Dazu gibt es in der "core.config.dat" die Option "dateiignore". Erhalten die auszuschließenden Dateien
in ihrem Namen eine bestimmte Zeichenfolge (z.B. gesperrt oder _nichtanzeigen) und wird diese Zeichenfolge
in dieser Option nach folgendem Muster: gesperrt; oder _nichtanzeigen; eingetragen, werden alle Dateien
mit dieser Zeichenfolge ausgeschlossen.

§3. Linkindex ausschalten
Die Option "linkindex=off" in der "core.config.dat" schaltet den Generator für den Linkindex ab. Jetzt
wird zwar grundsätzlich kein Linkindex mehr generiert, aber es kann mittels eines eigenen Parser-Moduls
ein eigene Funktionalität für einen Linkindex integriert werden.
  <hr width="100%" size="1" noshade>
%Was sind Menü-Module?
Ein Menü-Modul klinkt sich in das Menü der vom AT Contenator erzeugten Website ein. Dafür steht unter
dem automatisch generierten Modul ein eigener Bereich zur Verfügung. In der Option "moduletitel" in
der "core.config.dat" kann diesem Bereich eine Überschrift gegeben oder auch komplett weggelassen werden.
Alle Menü-Module müssen nach einem genau vorgegebenen Muster im Dateinamen benannt werden:
module.Menuepunkt.Anzeigeziel.php -> module.Gaestebuch.rechter.php.
Es kann jede im Browser anzeigbare Dateiart als Menü-Modul integriert werden - z.B. module.Info._blank.txt.
Auch direkte Links per META-Refresh (HTML) oder header-location (PHP) sind möglich.
Werden keine anzeigbaren Verzeichnisse angelegt aber dafür Menü-Module, wird ebenfalls ein Menü erzeugt,
allerdings ohne Untermenüs.
Ein Beispiel ist das mitgelieferte Menü-Modul "Gaestebuch"

Weitere Einzelheiten in der Hilfe zu "Module".
   <hr width="100%" size="1" noshade>
%Was sind Parser-Module?
Im Gegensatz zu Menü-Module werden Parser-Module in den Parser von AT Contenator eingebunden. Dadurch
kann die Funktionalität individuell angepaßt und beliebig erweitert werden. Die Funktionalität steht dann
zentral für die ganze Website zur Verfügung. Soll dagegen eine erweiterte Funktionalität nur für bestimmte
Menüpunkte zur Verfügung stehen (z.B. passwortgeschützter Bereich), kann dies über Includes geschehen.
Die Include-Datei muß dabei in dem entsprechenden Verzeichnis liegen und per Steuerzeichen in die
dortige content.txt eingebunden werden (siehe Hilfe|Steuerzeichen).
Auch Parser-Module müssen nach einem vorgegebenen Muster benannt werden: module.parser.Name.php.
Ein Beispiel dafür ist das mitgelieferte Parser-Modul "Thumbnails".

   <hr width="100%" size="1" noshade>
%Was sind Ordner-Module?
Ordner-Module können von einfach bis komplex reichen. Sie ergänzen die Funktionalität immer lokal
in einem Menüpunkt, der ja gleichzeitig auch einen Ordner darstellt. Ordner-Module können einfache
Impressumseiten sein aber auch ein datenbankgestütztes Gästebuch oder Shop-System.

Weitere Einzelheiten in der Hilfe zu "Module".
   <hr width="100%" size="1" noshade>
%Warum arbeitet mein Schnufflodondron nicht richtig?
Das Schnufflodondron benötigt den Verzeichnisnamen, in dem es liegt. Wenn AT Contenator im Verzeichnis
"at_contenator" liegt, dann lautet der Eintrag für die Otion "unterverzeichnispfad=/at_contenator" in
der "core.config.dat".
   <hr width="100%" size="1" noshade>
%Warum funktioniert das Parser-Modul "Thumbnails" nicht?
Es funktioniert schon, doch man muß es mit den richtigen Dateinamen "füttern". In Zeile 85 wird das
Module angewiesen, nur Datei anzuzeigen, die im Dateinamen die Zeichenfolge "thumb" oder "voll"
enthalten, z.B. bild_thumb.gif oder bild_voll.gif. Das ist deshalb notwendig, weil Parser-Module
global wirken und bei Nichtunterscheidung alle Bilder in allen Verzeichnissen als Thumbnails
generiert werden würden. Natürlich kann diese Zeile beliebig angepaßt und erweitert werden.
Es sollte aber darauf geachtet werden, das der Eintrag "parsermodule=on" in der "core.config.dat"
im Verzeichnis "_config" gesetzt ist. Die Anzahl der Thumbnails, die in einer Reihe angezeigt
werden sollen, kann mit dem Eintrag "thumbnails=Anzahl" ebenfalls in dieser Datei verändert werden.

