Home

PmWiki

pmwiki.org

edit SideBar

FAQ

Autoren, Administratoren

Diese Seite ist bestrebt, einige der gewöhnlich auftretenden Fragen zu sammeln. Die Antworten sind in den korrespondierenden Seiten zu finden (siehe Verweise). Wenn Sie eine Frage haben, die hier nicht beantwortet wird, können Sie ihre Frage (auf englisch) in der Seite Questions loswerden, oder suchen Sie nach Dokumentationen mit Hilfe der Suchseite. Weitere Dokumentationen finden sich im Dokumentations-Index.

Grundlagen der Bearbeitung

Ich bin neu bei PmWiki, wo kann ich ein paar grundlegende Erklärungen für den Einstieg finden?

Die Seite Grundlagen der Bearbeitung ist ein guter Startpunkt. Von dort aus kannst du dann dem am Seitenende (direkt über den häufig gestellten Fragen) befindlichen Verweis Index der Dokumentation folgen. Dort findet sich eine strukturierte Übersicht über die wichtigsten Dokumentationsseiten.

Wie kann ich Sonderzeichen in den Text meiner Wikiseiten einfügen?

Benutze Auszeichnungen von der Seite Sonderzeichen, zB. Copyright (©) und Trademark (® oder ™) sind Symbole, die nicht auf der Tastatur zu finden sind.

Warum werden mehrere Zeilen im Wiki-Quelltext zu einer einzigen Zeile bei der Darstellung der Seite?

PmWiki behandelt untereinanderstehende Zeilen mit Text als einen Abschnitt (Paragrafen) und fügt deshalb die Zeilen des Quelltextes zusammen und bricht sie bei der Darstellung im Browser je nach Breite des Browserfensters um. Dies wird auch bei den meisten anderen Wiki-Programmen so gemacht. Ein Autor kann aber die Direktive (:linebreaks:) verwenden, um zu erreichen, dass getrennte Zeilen im Quelltext auch bei der Ausgabe als getrennte Zeilen behandelt werden.

Kann ich auch einfach HTML-Kode eingeben?

Standardmäßig unterstützt PmWiki die Verwendung von HTML-Elementen im Wiki-Quelltext nicht. Hierfür gibt es eine Reihe von Gründen, die in der PmWiki-Philosophie und auf der Seite PmWiki:Audiences erläutert werden. Um es kurz zu sagen, vertritt Pm die Auffassung, dass potenzielle Autoren vom Bearbeiten von Wikiseiten abgeschreckt oder sogar ausgeschlossen werden, wenn dort HTML-Kode enthalten ist. Außerdem bringt die Verwendung von HTML-Kode eine Reihe von Darstellungs- und Sicherheits-Problemen mit sich. Ein Administrator kann allerdings das Kochbuch-Rezept Cookbook:EnableHTML nutzen, um die Nutzung von HTML-Kode in Wikiseiten zu ermöglichen.

Erzeugung neuer Seiten

Wie kann ich eine neue Seite anlegen?

Das Einfügen von [[Neue Seite]] führt dazu, dass ein Verweis auf NeueSeite angelegt wird. Nach dem Anklicken dieses neuen Verweises kann man die neue Seite bearbeiten.

Warum haben manche neuen Seiten einen Titel mit Leerzeichen (wie "Erzeugung neuer Seiten") und andere einen WikiWort-artigen Titel ohne Leerzeichen (wie "ErzeugungNeuerSeiten")?

Standardmäßig entspricht der Seitentitel einfach dem Seitennamen, der wiederum normalerweise als "ErzeugungNeuerSeiten" abgespeichert wird. Allerdings kan man den Seitentitel durch die Verwendung der Direktive (:title Erzeugung Neuer Seiten:) nach Bedarf selbst definieren. Dies ist besonders nützlich, wenn man Sonderzeichen oder eine spezielle Großschreibung im Seitentitel verwenden will, die man für den Seitennamen nicht benutzen kann oder will.

Verweise

Wie erzeuge ich einen Verweis, der in einem neuen Browserfenster geöffnet wird?

Benutze den Wikistil %newwin% -- so wie im folgenden Beispiel:

%newwin% http://example.com/

http://example.com/

Wie erzeuge ich einen Verweis, der in einem neuen Browserfenster geöffnet wird und kann gleichzeitig das Aussehen dieses neuen Fenster beeinflussen?

Dazu ist Javascript erforderlich. Siehe das Kochbuch-Rezept Cookbook:PopupWindow (nur auf Englisch verfügbar).

We kann ich eine E-Mail-Adresse in einee Wikiseite einfügen?

Benutze die Formatierungsanweisung mailto: -- so wie in den folgenden Beispielen:

* mailto:meineadresse@example.com
* [[mailto:meineadresse@example.com]]
* [[mailto:meineadresse@example.com | Schreib mir eine E-Mail!]]
* [[mailto:meineadresse@example.com?subject=Irgendein Betreff&body=Text der E-Mail | Schreib mir eine E-Mail!]]

Siehe auch die Kochbuch-Rezepte Cookbook:EProtect und Cookbook:ProtectEmail für ausführlichere Informationen über den Schutz von E-Mail-Adressen vor Spammern (nur auf Englisch verfügbar).

Wie kann ich einen WikiWort-Verweis zu einem Verweis auf eine externe anstatt auf eine interne Seite machen?

Benutze die Formatierungsanweisungen für Verweise. Es gibt folgende zwei Möglichkeiten:

[[http://example.com/ | WikiWort]]
[[WikiWort -> http://example.com/]]

Wie finde ich alle Seiten, die auf eine bestimmte Seite verweisen (sogenannte 'backlinks')?

Benutze die Direktive (:pagelist:)-Direktive mit der Option "link=" -- so wie im folgenden Beispiel:

(:pagelist link=IrgendeineSeite:)   -- zeige alle Verweise auf IrgendeineSeite
(:pagelist link={$FullName}:)  -- zeige alle Verweise auf die aktuelle Seite

Welche Verweis-Schemen (URI-Schemen) unterstützt PmWiki?

Siehe die eigene Seite Link schemes (nur auf Englisch verfügbar).

Wie kann ich Verweise auf anderer Internet-Protokolle -- wie etwa nntp:, ssh:, xmpp: etc. -- ermöglichen.

Siehe das Kochbuch-Rezept Cookbook:Add Url schemes (nur auf Englisch verfügbar).

Wie öffne ich externe Verweise in einem neuen Fenster oder markiere sie mit einem Icon?

Siehe das Kochbuch-Rezept Cookbook:External links (nur auf Englisch verfügbar).

Bilder

Kann ich eine lokale vorliegende Bilddatei zum Wiki hinzufügen?

Ja, siehe Hochladen von Dateien.

Ist es möglich, auf ein Bild zu verweisen, ohne die komplette URL anzugeben?

Ja. Für Bilder, die als Anhänge zu Seiten hochgeladen wurden, lautet das Format Attach:Gruppenname/bild.gif. (Jedenfalls solange, wie Anhänge gruppenweise abgespeichert werden.) Auf ein anderes Bild auf dem aktuellen Server verweist man mit Path:/pfad/zu/bild.gif.

Wie kann ich eine Seite aus einer anderen Gruppe einbinden, die ein als Anhang zu jener Seite hochgeladenes Bild enthält?

Binde diese Seite ganz normal mit (:include GruppenName.Seitenname:) ein. In der einzubindenden Seite (die das Bild enthält) ändere Attach:dateiname.ext zu Attach:{$Group}/dateiname.ext.

Wenn ich ein Bild mit rframe oder rfloat einbinde und direkt dahinter einen neuen Seitenabschnitt mit ! eröffne, ist die Überschrift unterhalb des Bildes anstatt links daneben. Warum?

Die CSS-Angaben für Überschriften wie ! enthalten ein clear:both-Element, das dieses Verhalten erzeugt. Redefinieren Sie die CSS lokal, wenn Sie dieses Verhalten beenden wollen. Ich denke allerdings, dass die Unterstreichung der Unterschrift weitere Anpassungen nötig macht. Vielleicht setzen Sie die Überschrift einfach in fett und setzen Sie vier Bindestrichrte darunter ---- , um den neuen Abschnitt abzutrennen. Das erspart Ihnen an den Kerndefinitionen herumzufummeln.

Anders als die lframe- und rframe-Direktiven berücksichtigt die cframe-Direktive die Breitenangaben mit width nicht vollständig. Während der Rahmen selbst die gewünschte Größe annimmt, wird ein eingeschlossenes Bild nicht skaliert und behält seine ursprüngiche Größe. Der Effekt tritt sowohl im IE als auch im FF auf. Oben ist ein Beispiel dazu bei dem Standardbeispiel eingefügt. example above.

Wie kann ich eine Tabelle mit Bildern in eine nummerierte Liste einfügen?

Die Bilder sollen Hinweise am Mauszeiger haben (Caption genannt). Ich kann keine einfache Tabelle einsetzen, weil Bilder (augenscheinlich) keine Captions in einfachen Tabellen haben können (Beispiel 1). Ich kann anscheinend auch keine Tabellendirektiven einsetzen, weil ich diese nicht innerhalb einer Liste einsetzen kann, ohne die Liste zu beenden und nachfolgend einen Neustart der Nummerierung zu erzeugen (Beispiel 2).

Tabellendirektiven müssen in der ersten Spalte beginnen.

Beispiel 1

# Erster Punkt
## Erster Unterpunkt
   || border=0 align=center
   || http://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 1''' || %width=50pct%http://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 2''' ||
## Zweiter Unterpunkt
# Zweiter Punkt
  1. Erster Punkt
    1. Erster Unterpunkt
      Paper clips | Bild 1Paper clips | Bild 2
    2. Zweiter Unterpunkt
  2. Zweiter Punkt
Beachten Sie: Caption (eingeleitet durch einen senkrechten Strich) wird nicht erkannt, es wird ein fehlerhafter, verwirrender Strich angezeigt, die Unterschrift ist nicht unter den Bildern.

Beispiel 2

# Erster Punkt
## Erster Unterpunkt
(:table border=0 align=center margin-left:4em :)
(:cellnr:)
http://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 1'''
(:cell:)
%width=50pct%http://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 2'''
(:tableend:)
## Zweiter Unterpunkt
(:table border=0 align=center padding-left:4em :)
(:cellnr:)
http://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 1'''
(:cell:)
%width=50pct%http://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 2'''
(:tableend:)
# Zweiter Punkt
  1. Erster Punkt
    1. Erster Unterpunkt
Paper clips
Bild 1
Paper clips
Bild 2
  1. Zweiter Unterpunkt
Paper clips
Bild 1
Paper clips
Bild 2
  1. Zweiter Punkt
Benutzen Sie Stile für die Einrückung, Sie müssen die Nummerierung neu aufsetzen, siehe Wikistile

Noch besser

# Erster Punkt
## Erster Unterpunkt
   || border=0 align=center
   || http://pmichaud.com/img/misc/pc.jpg"Paper clips"[[<<]]'''Bild 1''' || %width=50pct%http://pmichaud.com/img/misc/pc.jpg"Paper clips"[[<<]]'''Bild 2''' ||
## Zweiter Unterpunkt
# Zweiter Punkt
  1. Erster Punkt
    1. Erster Unterpunkt
      Paper clips
      Bild 1
      Paper clips
      Bild 2
    2. Zweiter Unterpunkt
  2. Zweiter Punkt

Ist es möglich, das Anzeigen von Bildern komplett zu unterbinden? Ich habe bereits das Hochladen von Dateien abgeschaltet, möchte aber auch verhindern, dass externe Bilder auf meinen Wikiseiten angezeigt werden.

Fügen Sie Folgendes in die /local/config.php ein:

DisableMarkup('img');
$ImgExtPattern = "$^";

Warum funktioniert die Spezifikation mit pct nicht in Kombination mit lfloat und rfloat?

%rfloat width=10pct% http://pmichaud.com/img/misc/bubble.jpg"rfloat width 10%" 
%width=10pct% http://pmichaud.com/img/misc/bubble.jpg"width 10%" [[<<]]
%lfloat height=20pct% http://pmichaud.com/img/misc/bubble.jpg"lfloat height 20%" 
%height=20pct% http://pmichaud.com/img/misc/bubble.jpg"height 20%" [[<<]]
%width=10pct rfloat% http://pmichaud.com/img/misc/bubble.jpg"width 10% rfloat" 
%height=20pct lfloat% http://pmichaud.com/img/misc/bubble.jpg"height 20% lfloat" 
rfloat width 10%
width 10%
lfloat height 20%
height 20%
width 10% rfloat
height 20% lfloat

Wie mache ich das, dass ein Bild, das ich einfüge, innerhalb der P-Tags des dazugehörenden Absatzes bleibt und nicht in einem DIV-Abschnitt landet?

Wenn Sie das nur für ein einzeles Bild brauchen, setzen Sie [==] an den Zeilenanfang wie in:

[==] http://www.pmwiki.org/pub/pmwiki/pmwiki-32.gif

Ein [==] am Zeilenanfang bewirkt, dass das danach Folgende noch als zum Absatz dazugehörend angesehen wird.

Gibt es einen Weg, eine BMP anzuhängen und das Bild in der Seite anzuzeigen anstatt des Links darauf?

Fügen Sie Folgendes in die /local/config.php ein:
$ImgExtPattern = "\\.(?:gif|jpg|jpeg|png|bmp|GIF|JPG|JPEG|PNG|BMP)";
Bedenken Sie, dass BMP-Bilder nicht komprimiert sind und deshalb sehr groß sind. Sie sollten sie lieber vorher in das PNG-Format umwandeln (verlustfrei) oder ins JPG-Format (verlustbehaftet). Sie reduzieren die Dateigröße um den Faktor 5-20.

Gibt es einen Weg, eine Tabelle links oder rechts neben einem Bild zu bekommen?

Ja, siehe TableAndImage.

Hochladen von Dateien

Wie kann ich es schaffen, dass der Verweis "Datei.pdf" lautet und nicht "Attach:Datei.pdf Δ", wenn ich eine Datei hochlade?

Benutzen Sie Klammern — wie in [[(Attach:)Datei.pdf]]. Es gibt auch eine Konfigurations-Option, mit der sich der "Attach:-Teil" entfernen lässt — siehe dazu Cookbook:AttachLinks (nur auf Englisch verfügbar).

Warum kann ich auf mein neuinstalliertes Wiki keine Dateien hochladen, die größer sind als 50KB?

Die Standardeinstellung für die maximale Dateigröße hochzuladender Dateien ist 50KB. Fügen Sie die Zeile

$UploadMaxSize = 1000000; # begrenzt die Dateigröße von Anhängen auf 1 Megabyte

in Ihre local/config.php-Datei ein, um die Grenze beispielsweise auf 1 MB zu erhöhen. Siehe Verwaltung der Anhänge wegen weiterer Einstellungen und Begrenzungen. Anmerkung: Der Webserver und PHP begrenzen die Größe von hochzuladenden Dateien ebenfalls.

Wer beendet ganz überraschend mein Dateihochladen mit "Incomplete file received"?

Sie könnten nicht genug Platz in einem Bereich für Zwischenspeicherungen haben, der entweder von PmWiki oder von PHP benutzt wird. Auf *nix muss genug Platz in /tmp und /var/tmp sein.

Wie mache ich es, dass der Hochladenverweis einem weiterhin erlaubt, eine weitere Datei hochzuladen (falls jemand die alte Dateiversion durch eine neuere zu ersetzen wünscht)? Momentan bekommt man den Hochladenverweis nur, wenn nicht schon eine Datei in dem Hochladenverzeichnis ist.

Nutzen Sie die Anhängen-Seitenaktion und klicken Sie auf das Deltasymbol (Δ), das an jeder aufgelisteten Datei angezeigt wird. Wenn Sie die Anhängen-Aktion immer noch nicht sehen, sind entweder das Hochladen von Dateien nicht erlaubt, Sie nicht zum Hochladen berechtigt oder die Anhängen-Aktion ist auskommentiert oder fehlt.
Siehe auch Verfügbare Aktionen und werfen Sie einen Blick auf Test?action=upload..

Wie verhindere ich das Hochladen eines gewissen Dateityps?

Hier ist sind Beispiele, was in Ihrer local/config.php-Datei ergänzt werden muss, um Hochladen von .zip-Dateien oder Dateien ohne Dateierweiterung zu verhindern:

$UploadExtSize['zip'] = 0; # verhindert das Hochladen von .zip-Dateien.
$UploadExtSize[''] = 0; # verhindert das Hochladen von Dateien ohne Erweiterung

Wie vermeidet man Probleme mit non-ASCII-Zeichen in den Namen der Anhänge (z. B. "Zażółć geślą jaźń.doc")?

Fügen Sie in ihre local/config.php-Datei die folgende Zeile ein und modifizieren Sie sie für Ihre Bedürfnisse:

$UploadNameChars = "-\w. !=+#"; # erlaube Ausrufezeichen, Gleichheitszeichen, Plus und Doppelkreuz

Wie verberge ich dieses "Attach:" für alle Anhänge?

Siehe Cookbook:AttachLinks. Das funktioniert augenblicklich nicht für [[Attach:my file.ext]].

Wie kann ich Dateien hochladen, die vier-Zeichen-lange Dateierweiterungen haben wie beispielsweise 'abc.pptx'?

Siehe Cookbook:Upload Types.

Wie kann andere daran hindern, den URL meiner Bilder auf ihrer Site zu benutzen?

Siehe Cookbook:Prevent Hotlinking

Einfache Tabellen

Wie erzeuge ich eine einfache Tabelle?

Tabellen werden unter Verwendung des doppelten 'Pipe'-Zeichens '||' erzeugt. Zeilen, die mit diesem Symbol beginnen, zeigen eine Tabellenzeile an; inerhalb socher Zeilen wird das doppelte 'Pipe'-Zeichen benutzt, um Tabellenzellen zu begrenzen. In dem Beispiel hierunter sind Rahmen hinzugefügt zur Illustration (der Standard ist kein Rahmen).

Basic table
|| border=1 rules=rows frame=hsides
|| cell 1 || cell 2 || cell 3 ||
|| cell 1 || cell 2 || cell 3 ||
cell 1cell 2cell 3
cell 1cell 2cell 3

Wie erzeuge ich Spaltenköpfe?

Spaltenköpfe können erzeugt werden, indem man ein Aussrufezeichen an die erste Stelle einer Zelle setzt. Anmerkung: Dies sind Spaltenköpfe, keine Überschriften, '!!' oder '!!!' funktionieren nicht.

Table headers
|| border=1 rules=cols frame=vsides
||! cell 1 ||! cell 2 ||! cell 3 ||
|| cell 1  ||  cell 2 ||  cell 3 ||
cell 1cell 2cell 3
cell 1cell 2cell 3

Wie erhalte ich eine Tabelle mit dünnen Linien und mehr Abstand zum Inhalt?

"Dünne Linien" ist trickreich und browserabhängig, aber das Folgende funktioniert für Firefox und IE (Nov. 2009):

||border="1" cellpadding="10" style="border-collapse:collapse" width=66%
||!Spalte1 ||! Spalte2 ||!  Spalte3||
||Zellen   ||  mit     || 'Padding'||
||und      || dünnen   ||    Linien||
Spalte1Spalte2Spalte3
Zellenmit'Padding'
unddünnenLinien

Wie erzeuge ich eine erweiterte Tabelle?

Siehe unter Erweiterte Tabellen

Meine Tabellen sind standardmäßig zentriert. Wenn ich versuche, '||align=left' zu benutzen, werden sie nicht links ausgerichtet wie erwartet.

Sie benutzen vermutlich Firefox. Benutzen Sie ||style="margin-left:0px;" stattdessen.

Wie kann ich die Breite der Spalten angeben?

Sie können die Breite mit angepassten Stilen definieren, siehe Cookbook:FormattingTables und $TableCellAttrFmt. Fügen Sie in config.php ein:

$TableCellAttrFmt = 'class=col\$TableCellCount';

Und fügen sie in pub/css/local.css hinzu :

table.column td.col1 { width: 120px; }
table.column td.col3 { width: 40px; }

Wie kann ich ein doppeltes 'Pipe'-Zeichen in einen Zelltext schreiben, wenn ich einfache Tabellen benutze?

Benutzen Sie &#124;&#124; um '||' als ein spezielles Zeichen anzuzeigen.

Wie wendet man Stile auf Elemente einer Tabelle an wie eine ID für die Tabellenzeile, oder eine Klasse / einen Stil für TD?

siehe $WikiStyleApply.

Tabellendirektiven

Kann ich Tabellenköpfe definieren, indem ich die Tabellendirektive benutze?

Ja, mit PmWiki version 2.2.11 oder neuer. Siehe auch (auf englisch) Cookbook:AdvancedTableDirectives

Ist es möglich, verschachtelte Tabellen anzulegen?

Ja, wenn sie Einfache Tabellen in erweiterten Tabellen einschachteln.

Kann man Hintergrundbilder zu Tabellen oder Tabellenzellen hinzufügen?

Ja, siehe (auf englisch)Cookbook:BackgroundImages.

Ist es möglich, Stile auf Tabellenelemente anzuwenden, wie eine ID für die Tabellenzeile, oder eine Klasse / einen Stil für TD?

Ja, siehe $WikiStyleApply.

Tastaturkürzel

Wie kann ich die Tastaturkürzel fürs Bearbeiten und Speichern einer Seite ändern.

Siehe Customizing access keys.

Seitendirektiven

Lässt sich (:redirect:) dazu bringen, den Status-Code "Permanent verschoben" (HTTP 301) anzuzeigen?

Das geht mit (:redirect SeitenName status=301:).

Gibt es eine Möglichkeit, den Text "umgeleitet von ..." ganz oben auf der Zielseite zu unterdrücken, wenn ich (:redirect:) nutze?

Dafür gibt es verschiedene Möglichkeiten.

Wenn die Nachricht grundsätzlich unterdrückt werden soll:

  • Füge $PageRedirectFmt = ''; zur Datei local/config.php hinzu.

Wenn die Nachricht je nach Zielseite der Umleitung unterdrückt werden soll:

Wenn die Nachricht je nach Herkunftsseite der Umleitung unterdrückt werden soll:

  • füge den folgenden Code zur Datei local/config.php hinzu:
if (@$_GET['from']) {
  $group = PageVar($_GET['from'], '$Group');
  if ($group == 'IrgendeineGruppe') $PageRedirectFmt = '';
}
(Im obigen Beispiel möchte man eventuell ''IrgendeineGruppe' durch 'Profiles' ersetzen.)

Eine Alternative ist es, die Zielseite mittels (:include:) einzubinden, anstatt eine Umleitung zu nutzen.

Es gibt zwei (nur auf Englisch verfügbare) Kochbuch-Rezepte, die in diesem Zusammenhang hilfreich sein können:

Gibt es eine Methode, auf eine äquivalente Seite in einer anderen Gruppe umzuleiten, z.B. von SchlechteGruppe/Seite => GuteGruppe/Seite -- etwa indem man eine Formatierungsanweisung wie (:redirect GoodGroup.{Name}:) verwendet?

(:redirect GuteGruppe.{$Name}:) ist möglich, wenn man die Anweisung einfach nur in einer bestimmten Seite verwenden will.
Wenn das für eine ganze Gruppe funktionieren soll, füge (:redirect GuteGruppe.{*$Name}:) in die Seite SchlechtGruppe.GroupHeader ein. Dies funktioniert allerdings nur mit Seiten, die in GuteGruppe existieren; wenn man eine Seite in SchlechteGruppe aufruft, für die es keine korrespondierende Seite in GuteGruppe gibt, wird die (:redirect:)-Direktive am Seitenanfang angezeigt (anstatt, dass man auf eine nicht-existierende Seite umgeleitet wird).
Mit (:if exists GuteGruppe.{*$Name}:)(:redirect GuteGruppe.{*$Name}:)(:ifend:) in SchlechteGruppe.GroupHeader wird man auf GuteGruppe.Name umgeleitet, sofern diese Seite existiert, ansonsten bleibt man auf SchlechteGruppe.Name ohne dass irgendein Code-Schnipsel angezeigt wird.

Einbinden anderer Seiten

Wieviele Include-Direktiven kann es höchstens in einer Seite geben.

Meine Site scheint nach 48 Einbindungen aufzuhören. ($MaxIncludes)

Im Standard limitiert PmWiki die Zahl der Include-Direktiven für eine Seite auf 50, um unendliche Schleifen zu verhindern — auch andere Situationen, die die Recourcen des Servers aufessen könnten. Zwei der eingebundenen Seiten sind GroupHeader und GroupFooter, bleiben noch die 48. Die Grenze kann von einem Wiki-Administrator über die Variable $MaxIncludes hochgesetzt werden.

Gibt es eine Möglichkeit, Einbindungen aus einer Gruppe von Seiten zu machen, ohne exakte Namen anzugeben, z. B. zwischen Anker X und Y von allen Seiten namens IFClass-* ?

Das kann man mit page lists erreichen.

Es scheint ein Problem mit der Anzeige zu geben, wenn eine Seite die (:title:)-Direktive enthält.

In der Standard-Installation überschreibt der letzte Titel in der Seite alle vorangegangenen Direktiven. Man kann seine (:title :)-Directive an das Ende der Seite setzen, nach allen Include-Direktiven, siehe auch $EnablePageTitlePriority.

Seitenspezifische Variablen

Gibt es eine Variable wie $LastModified, die aber die Erstellungszeit anzeigt?

Nein, aber Sie können eine in config.php erzeugen. Zum Beispiel:

# add page variable {$PageCreationDate} in format yyyy-mm-dd
$FmtPV['$PageCreationDate'] = 'strftime("%Y-%m-%d", $page["ctime"])';

Wenn Sie lieber das in config.php definierte Format erhalten möchten, benutzen Sie:

 $FmtPV['$Created'] = "strftime(\$GLOBALS['TimeFmt'], \$page['ctime'])";

Wikigruppen

Wir kann ich die Anzeige der "Main"-Gruppe in URLs vermeiden?

Siehe Cookbook:Get Rid Of Main.

Warum funktioniert [[St. Augustin]] nicht als Verweis?

Weil der Verweis einen Punkt enthält, der für die Trennung von Gruppe und Seitennamen reserviert ist. Verwende StAugustin als Seitennamen und die Anweisung (:title St. Augustin:), um den Seitentitel mit Punkt darzustellen.

Wir kann ich eine Wikigruppe oder auch nur Group.RecentChanges löschen?

Normalerweise kann das nur der Administrator, weil er die Datei mit dem Inhalt der "RecentChanges" Seite löschen muß. Mit Cookbook:RecentChanges Deletion geht es auch so.

Kopfbereich der Gruppe

Wie setze ich einen Kopfbereich für alle Seiten und Gruppen?

Der Kopfbereich wird durch die $GroupHeaderFmt Variable bestimmt. Damit kann ein systemweiter Kopfbereich mittels

$GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader
                   basepage={*$FullName}:)(:nl:)' . $GroupHeaderFmt;

gesetzt werden

Beachte, daß die einfachen Anführungszeichen erforderlich sind, damit der vorherige Inhalt von $GroupHeaderFmt von PmWiki korrekt ersetzt werden kann (das trifft auf alle Variablen zu, die auf $...Fmt enden). Siehe auch Cookbook:AllGroupHeader

In $GroupHeaderFmt sind jegliche Formatierungsanweisungen erlaubt, also auch:

$GroupHeaderFmt .= "Globale Formatierungsanweisungen im Header";

Klappt das auch für Fußbereiche?

$GroupFooterFmt = '(:include {$SiteGroup}.SiteFooter
                   basepage={*$FullName}:)(:nl:)' . $GroupFooterFmt;

Ja, ich verwende das in meiner config.php und es funktoniert einwandfrei Ian MacGregor?

Seitenhistorie

Gibt es eine Möglichkeit, die Seitenhistorie aus den Seitendateien zu entfernen?

1. Administratoren können das mittels Cookbook:ExpireDiff durchführen.

2. Administratoren können einzelne Seiten mittels FTP aus dem wiki.d Verzeichnis herunterladen, im Texteditor öffnen, die Historie manuell entfernen und die Datei wieder hochladen. Vorsicht ist geboten, damit die erforderlichen Elemente der Seite erhalten bleiben (siehe PageFileFormat#creating).

3. Die Seite bearbeiten, den gesamten Inhalt in die Zwischenablage kopieren (oder besser noch in einer temporären Textdatei speichern). delete im Textbereich eingeben und Speichern und Bearbeiten klicken (Speichern von "delete" löscht die Seite). Jetzt den zuvor kopierten Text wieder einfügenund Speichern. Durch das kurzzeitige Löschen der Seite wird die Historie gelöscht. Vorsicht ist geboten, dass der Text aus der Zwischenablage nicht verloren geht!

Wie kann ich den Zugriff auf die Historie (?action=diff) auf Benutzer mit Editiererlaubnis beschränken?

Füge in der Datei local/config.php

$HandleAuth['diff'] = 'edit';

hinzu. Wenn diese Einschränkung in eine Farm aufgesetzt wurde und man will in einem bestimmten Wiki 'diff' wieder erlauben, fügt man in local/config.php

$HandleAuth['diff'] = 'read';

hinzu.

Passwörter

Wie kann ich alle Seiten und Gruppen meiner Site mit einem Passwort schützen? Muss ich wirklich die Passwörter Seite für Seite setzen?

Administratoren können Passwörter für die gesamte Site setzen, indem sie die config.php-Datei bearbeiten. Sie müssen nicht für jede Seite oder Gruppe Passwörter setzen. Um zum Beispiel die gesamte Site für Jene bearbeitbar zu machen, die ein 'edit'-Passwort kennen, kann ein Administrator das Folgende zur local/config.php hinzufügen:

    $DefaultPasswords['edit'] = crypt('edit_password');

Wegen weiterer Informationen über die Passwortoptionen, die nur für Administratoren verfügbar sind, siehe Passwörter verwalten.

Ich bekomme einen http error 500 "Internal Server Error", wenn ich versuche, mich einzuloggen. Was ist falsch?

Das kann passieren, wenn das verschlüsselte Passwort nicht auf dem Server erzeugt wird, auf dem PmWiki gehostet wird.
Die crypt-Funktion hat sich während der Entwicklung von PHP geändert, d. h. dass ein Passwort, das mit PHP 5.2 verschlüsselt wurde, nicht mit PHP 5.1 entschlüsselt werden kann, aber PHP 5.2 kann Passwörter entschlüsseln, die mit PHP 5.1 verschlüsselt wurden.
Diese Situation passiert normalerweise, wenn Sie Alles auf Ihrem lokalen Rechner mit der letzten PHP-Version vorbereitet haben und Sie die Passwörter auf einen Webserver hochladen, der mit einer älteren Version läuft.
Der gleiche Fehler tritt auf, wenn Sie verschlüsselte Passwörter in die local/config.php einfügen.

Lösung: Erzeugen Sie die Passwörter auf dem System mit der ältesten PHP-Version und benutzen Sie sie auf allen anderen Systemen.

Wie kann ich private Gruppen für Benutzer erstellen, so dass jeder Benutzer die Seiten seiner Gruppe bearbeiten kann, aber niemand sonst (außer dem Administrator) kann es?

Administratoren können das AuthUser-Rezept benutzen und die wenigen, folgenden Zeilen in ihre local/config.php-Datei einfügen, um das aufzusetzen:

    $group = FmtPageName('$Group', $pagename); 
$DefaultPasswords['edit'] = 'id:'.$group;
include_once("$FarmD/scripts/authuser.php");

Das gibt automatisch jedem Benutzer Bearbeiten-Rechte, dessen Benutzername der gleiche ist wie der Gruppenname.

Wie kommt es, dass wenn ich von einem Wiki in ein anderes wechsele, ich meine Authorisierung behalte?

PmWiki benutzt Sessions, um die Authentifizierung/Authorisierung im Auge zu behalten. Die Standardeinstellungen bewirken in PmWiki, dass Interaktionen mit dem gleichen Server als Teil der gleichen Session angesehen werden.

Ein einfacher Weg, das zu lösen, ist sicher zu gehen, dass jedes Wiki einen individuellen Cookienamen für seine Sessions benutzt. Weit oben in den jeweiligen local/config.php-Dateien, bevor authuser.php oder andere Rezepte aufgerufen werden, schreibt man:

    session_name('XYZSESSID');

Sie können sich einen alphanumerischen Namen für XYZSESSID ausdenken, zum Beispiel für das cs559-1-Wiki wählen Sie:

    session_name('CS559SESSID');

Damit werden die beiden Sessions auseinandergehalten.

Löschen von Seiten

Löschen von Gruppen und Kategorien: Wie werde ich Gruppen oder Kategorien wieder los, nachdem ich sie einmal angelegt habe?

Ein Administrator kann die unerwünschten Seiten einfach aus dem Verzeichnis wiki.d/ löschen. Im Normalfall reicht es nicht, alle Seiten einer Gruppe über das Wiki (mittels delete) zu löschen, weil das Löschen der Seiten als Änderung interpretiert wird und die Seite RecentChanges neu erzeugt wird. Es ist aber möglich, die Konfiguration so zu ändern, dass die RecentChanges-Seiten für Wikigruppen über das Wiki gelöscht werden können -- siehe das Kochbuch-Rezept Cookbook:RecentChangesDeletion (nur auf Englisch verfügbar).

Aktualisierungen

Wie kann ich herausfinden, welche Version von PmWiki bei mir läuft?

Siehe Version - So findet man die Version von PmWiki heraus..

Wie kann ich eine neue Version von PmWiki testen, ohne die vorige Version zu ändern, die die Besucher benutzen?

Der leichte Weg, das zu tun, ist, die neue Version in einem separaten Verzeichnis zu installieren und in deren local/config.php-Datei das Folgende einzufügen:


    $WikiLibDirs = array(&$WikiDir,
      new PageStore('/path/to/existing/wiki.d/{$FullName}'),
      new PageStore('wikilib.d/{$FullName}'));

Wenn Seiten aufgerufen werden, werden sie (vorausgesetzt, an den Standardnamen wurde nichts geändert) der Reihe nach in wiki.d, /path/to/existing/wiki.d/ und wikilib.d gesucht. Der erste Fund wird dann geladen. Gespeichert wird das Ergebnis immer in wiki.d.

Das lässt Sie die neue Version mit existierenden Seiteninhalten testen, ohne Auswirkungen auf die existierende Site und ohne Modifikationen an den Seiten zu riskieren. (Natürlich müssen auch alle Rezepte und lokale Anpassungen in der neuen Version installiert werden.)

Wenn Sie dann irgendwann zufrieden mit der neuen Version sind und alles so zu funktionieren scheint wie in der alten Version, ist es sicher, die alte Version auf die neue upzugraden (und man kennt alle Konfigurations- und Seitenänderungen, die notwenig gemacht werden müssen.)

Verwaltung der Anhänge

Wie verhindere ich das Hochladen eines gewissen Dateityps?

Hier ist ein Beispiel, was in Ihrer local/config.php-Datei ergänzt werden muss, um Hochladen von .zip-Dateien zu verhindern:

$UploadExtSize['zip'] = 0; # Disallow uploading .zip files.
$UploadExtSize[''] = 0; # Disallow files with no extension

Wie verbinde ich Anhänge mit individuellen Seiten oder der gesamtem Site, anstatt sie durch Wikigruppen zu organisieren?

Verwenden Sie die $UploadPrefixFmt-Variable (siehe auch das Cookbook:UploadGroups Rezepte).

$UploadPrefixFmt = '/$FullName'; # per-page
$UploadPrefixFmt = ''; # site-wide

Für $UploadDirQuota - können Sie ein paar Einheiten und Zahlen anbieten? Ist die Angabe in Bytes oder Bits? Was ist die Nummer vor 100K? 1Meg? 1 Gig? 1 Terabyte?

Einheiten sind in Bytes.

   $UploadDirQuota = 100*1024;         # limit uploads to 100KiB
   $UploadDirQuota = 1000*1024;        # limit uploads to 1000KiB
   $UploadDirQuota = 1024*1024;        # limit uploads to 1MiB
   $UploadDirQuota = 25*1024*1024;     # limit uploads to 25MiB
   $UploadDirQuota = 2*1024*1024*1024; # limit uploads to 2GiB

Gibt es einen Weg, Dateinamen mit Unicode oder zusätzlichen Zeichen zu erlauben?

Für ältere Versionen von PmWiki, siehe Cookbook:Attachlist enhanced → "",
für Version 2.2 oder höher siehe Cookbook:Attachtable → ""

Wie kann ich Hotlinking meiner hochgeladenen Bilder verhindern?

Siehe Cookbook:Prevent Hotlinking

Sicherheit

Wie melde ich mögliche Verwundbarkeiten der Sicherheit in PmWiki?

Pm schrieb darüber in einer Veröffentlichung an pmwiki-Benutzer vom September 2006. In aller Kürze unterscheiden er zwischen zwei Fällen:

  1. Die mögliche Verwundbarkeit ist noch nicht öffentlich bekannt: In diesem Fall kontaktieren Sie Pm in einer persönlichen Mail.
  2. Die möglich Verwundbarkeit ist bereits öffentlich bekannt: In diesem Fall diskutieren Sie die Verwundbarkeit öffentlich (z. B. auf pmwiki-users).

Siehe seine oben erwähnte Nachricht wegen Details und Begründungen.

Was ist mit den Botnet-Sicherheits-Ratschlägen in http://isc.sans.org/diary.php?storyid=1672?

Sites, bei denen PHPs register_globals-Einstellungen auf "On" gesetzt sind und Versionen vom PmWiki vor 2.1.21 könnten verwundbar durch ein Botnet sein durch Ausnutzen eines Fehlers in PHP. Die Verwundbarkeit kann geschlossen werden, indem man register_globals auf "off" stellt, auf PmWiki 2.1.21 oder später upgradet oder die PHP-Versionen 4.4.3 oder 5.1.4 upgradet.
Zusatz: Es gibt einen Test in PmWiki:SiteAnalyzer, der benutzt werden kann, um zu bestimmen, ob Ihre Site verwundbar ist.

Wiki-Vandalismus und Spam

Voraussetzungen
Sie nutzen eine Blockadeliste und Url-Freigabe.
Sie wollen nicht darauf zurückgreifen, das gesamte Wiki durch Passwörter zu schützen, das ist nach allem nicht der Punkt.
Idealerweise wird dieser Schutz in config.php aktiviert.

Wie beende ich das Löschen von Seiten, d. h. Passwortschutz gegen Löschen von Seiten?

Benutzen Sie Cookbook:DeleteAction und schützen Sie die Löschen-Aktion mit einem Passwort, indem Sie $DefaultPasswords['delete'] = '*'; in die config.php einfügen
oder schützen Sie die Aktion durch $HandleAuth['delete'] = 'edit'; mit einem Passwort
oder durch $HandleAuth['delete'] = 'admin';, um ein Bearbeiten- oder Administrator-Passwort für das Löschen erforderlich zu machen.

Wie verhindere ich, dass Seiteninhalte durch eine leere (alles Leerzeichen) Seite ersetzt wird?

Fügen Sie block: /^\s*$/ zu Ihrer Blockadeliste hinzu.

wie kann ich verhindern, dass Seiten durch alberne Kommentare wie exellente Site, großartige Informationen, ersetzt werden, wo Inhalt nicht blockiert werden kann?

Versuchen Sie eine neuere Automatische Blockadeliste, die Informationen über IP-Adressen von bekannten Wiki-Verunstalter.

(ODER) Versuchen Sie Cookbook:Captchas or Cookbook:Captcha anzuwenden (Beachten Sie, die sind verschieden).

(ODER) Setzen Sie ein Bearbeiten-Passwort, machen es aber in der Site.AuthForm-Vorlage öffentlich.

Wie kann ich alle gemeinsamen Seiten in allen Gruppen wie RecentChanges, Search, GroupHeader, GroupFooter usw. mit einem Passwort schützen?

Fügen Sie die folgenden Zeilen in Ihre local/config.php-Datei ein. Ein Bearbeiten dieser Seiten wird dann ein Administrator-Passwort erfordern.

## Require admin password to edit RecentChanges (etc.) pages.
if ($action=='edit'
    && preg_match('/\\.(Search|Group(Header|Footer)|(All)?RecentChanges)$/', $pagename))
  { $DefaultPasswords['edit'] = crypt('secret phrase'); }

Anmerkung: Alle GroupAttributes-Seiten sind durch das 'attr'-Passwort geschützt.

Alternative: Sie können eine 'admin'-Authentifizierung für diese Seiten erforderlich machen:

## Require admin password to edit RecentChanges (etc.) pages.
if ($action=='edit' 
    && preg_match('(Search|Group(Header|Footer)|(All)?RecentChanges)', $pagename))
  { $HandleAuth['edit'] = 'admin'; }
Ich fürchte, wegen meiner sauberen URLs muss ich den regulären Ausdruck etwas kürzen. Außerdem setze ich das Bearbeiten-Passwort für diese Seiten auf das Administrator-Passwort in $DefaultPasswords['admin'] = crypt('secret phrase'); in local/config.php.
Soweit ich sehen kann, funktioniert das für mich wie erwartet. --Rico, 2007-02-02

Wie schütze ich das Anlegen neuer Gruppen mit einem Passwort?

Siehe Cookbook:Limit Wiki Groups

Wie schütze ich das Anlegen neuer Seiten mit einem Passwort?

Siehe Cookbook:Limit new pages in Wiki Groups

Wie kann ich eine Art Whitelist machen, wo Benutzer von bekannten oder vertrauenswürdigen IP-Adressen Bearbeiten können, alle Anderen aber ein Passwort brauchen?

Fügen Sie diese Zeilen in local/config.php ein:

## Allow passwordless editing from own turf, pass for others.
if ($action=='edit'
 && !preg_match("^90.68.", $_SERVER['REMOTE_ADDR']) )    
 { $DefaultPasswords['edit'] = crypt('foobar'); }

Ersetzen Sie "90.68." durch den bevorzugten Netzwerk-Präfix und "foobar" durch das Standardpasswort für Andere.

Wie setze oder lösche ich ein Passwort für eine Gruppe oder Seite in config.php?

siehe Passwörter und Passwörter verwalten.

Wie schütze ich Seitenaktionen durch ein Passwort?

Siehe Passwörter wegen Einstellungen in config.php.

$HandleAuth['pageactionname'] = 'pageactionname'; # zusammen mit :
$DefaultPasswords['pageactionname'] = crypt('secret phrase');

oder

$HandleAuth['pageactionname'] = 'anotherpageactionname';

Wie erlaube ich Verfassern nur dann zu veröffentlichen, wenn Sie auch ein Profil? haben?

Fügen Sie dies in Ihre local/config.php unterhalb der include_once("$FarmD/scripts/author.php");-Zeile:

if(!PageExists('Profiles.'.$Author)&&$action=='edit')
$HandleAuth['edit'] = 'admin';

Dies ist eine mögliche Lösung, aber seien Sie gewarnt, Autoren können auch keine Wikiseite in der Profile-Gruppe? neu anlegen.
Ergänzen Sie if($group != 'Profiles') oben ;-)

Wie macht man eine Regel, die nur den Autoren selbst erlaubt, ihre eigene Wikiseite in der Profile-Gruppe? zu bearbeiten?

Fügen Sie dies zu Ihrer local/config.php-Datei hinzu:

$name = PageVar($pagename, '$Name');
if($group=='Profiles') $DefaultPasswords['edit'] = 'id:'.$name;

Wie moderiere ich alle Veröffentlichungen?

Aktivieren Sie PmWiki.Drafts

  • Setzen Sie $EnableDrafts, damit wird der "Speichern"-Button in zwei einzelne Buttons aufgeteilt: "Veröffentlichen" und "Als Entwurf speichern".
  • Setzen Sie dann $EnablePublishAttr. Das fügt eine "Veröffentlichen"-Authorisierungsebene ein, um das Bearbeiten der Entwürfe vom Veröffentlichen des neuen Textes unterscheiden zu können.

Wie mache ich ein Read-Only-Wiki?

Setzen Sie ein 'edit'-Passwort in config.php.

Wie schränke ich den Zugriff auf hochgeladene Anhänge ein?

Siehe

InterMap anpassen

Ist die Groß/Kleinschreibung der InterMap-Namen relevant.

Ja, es ist also eAdmin: ein anderer InterMap-Verweis als EAdmin:.

Wie erreiche ich eine localmap.txt-Abbildung mit dem Effekt von Pics: Path:/somepathto/pics/?

Benutzen Sie das Folgende:

Pics: /somepathto/pics/

Wie kann ich ein InterMap in PHP definieren?

Benutzen Sie das Folgende:

      $LinkFunctions['PmWikiHome:'] = 'LinkIMap';
      $IMap['PmWikiHome:'] = 'http://pmwiki.org/wiki/$1';

Internationalisierungen

Wenn mein Wiki internationalisiert ist durch die config.php, wie kehre ich für eine bestimmte Gruppe zu Englisch zurück?

Benutzen Sie $XLLangs = array('en'); in der Anpassungsdatei der Gruppe.

Wenn mein Wiki in Englisch ist und ich nur eine Seite oder eine Gruppe auf Spanisch haben will, schreibe ich dann XLPage('es','PmWikiEs.XLPage'); in die Gruppen- oder Seitenkonfigurationsdatei?

Ja, das ist gewöhnlich die beste Methode. Wenn Sie das mit vielen verteilten Seiten tun oder mit mehreren Sprachen, finden Sie es vielleicht leichter zu verwalten, wenn Sie die Übersetzungen alle in config.php laden wie hier:

   XLPage('es','PmWikiEs.XLPage');
   XLPage('fr','PmWikiFr.XLPage');
   XLPage('ru','PmWikiRu.XLPage');
   $XLLangs = array('en');

In der Gruppen- oder Seitenkonfigurationsdatei müssen sie dann nur $XLLangs = array('es'); schreiben, um die Sprache einzustellen, die benutzt werden soll (in diesem Beispiel Spanisch).

Anmerkung: Obwohl diese Methode leichter zu verwalten ist, ist sie etwas langsamer, weil man jedesmal alle Übersetzungstabellen für jedes Seitenansehen lädt, auch wenn sie nicht gebraucht werden.

Wofür steht der erste Parameter in dieser Funktion? Wie wird er benutzt?

Angenommen, ich will zum Beispiel Übersetzungen für normales Französich und canadisches Französisch haben. Anstatt zwei ganz und gar getrennte Sätze von Seiten zu verwalten, kann ich dies tun:

    XLPage('fr', 'PmWikiFr.XLPage');
    XLPage('fr-ca', 'PmWikiFrCa.XLPage');

PmWikiFr.XLPage würde die ganzen Standardfranzösisch-Übersetzungen enthalten, wohingegen PmWikiFrCA.XLPage nur die canada-spezifischen Übersetzungen enthalten muss — d. h. jene, die sich von denen aus der französischen Seite unterscheiden.

Der erste Parameter unterscheidet die zwei Sätze der Übersetzungen. Zusätzlich kann ein config.php-Skript die $XLLangs-Variable benutzen, um die Reihenfolge der Übersetzungen einzustellen, wenn es also eine Gruppe oder Seite gibt, wo ich nur die Standardfranzösich-Übersetztung haben möchte, setze ich:

   $XLLangs = array('fr', 'en');

und PmWiki nutzt nur die 'fr'- und 'en'- Übersetzungen, egal, wieviele Übersetzungen mit XLPage() geladen worden sind.

Wie kann ich PHP benutzen, um nebenbei eine Übersetzung für einen individuellen String hinzuzufügen?

Benutzen Sie die XLSDV()-Funktion, um eine Übersetzung für einen bestimmten (englischen) String zu liefern. Zum Beispiel hiermit in der config.php-Datei

    XLSDV('nl', array('my English expression'=>'mijn Nederlandse uitdrukking'));

wird jedes Vorkommen des Variablenausdrucks my English expression im Wikiquelltext im Standardkontext (englisch) als my English expression ausgegeben, aber als mijn Nederlandse uitdrukking in niederländischem (nl) Kontext, z. B. wenn XLPage('nl',...) für jene Seite in der config.php oder einem Kochbuchrezept aufgerufen worden ist.

Aber seien Sie auf der Hut: Die XLPage()-Funktion benutzt intern auch die XLDV()-Funktion für ihre Übersetzungspaare und nur die erste Definition wird akzeptiert. Wenn daher die niederländische XLPage bereits einen Übersetzung für ihren String wie

   'my English expression' => 'bla bla',

besitzt und Sie wollen den überschreiben, müssen sie Ihr XLDV('nl', ...) vor dem Aufruf vom korrespondierenden XLPage('nl',...) benutzen. Andernfalls, durch Benutzen von XLSDV() nach XLPage() — z. B. innerhalb eine Rezeptes, das später in der config.php geladen wird — wird ihre Übersetzung nur funktionieren, solange keiner 'my English expression' in jener XLPage definiert.

Skins (Layout-Vorlagen)

Wie ändere ich den Standardnamen des Wikis in der oberen linken Ecke?

Setzen Sie das Folgende in die config.php:

$WikiTitle = 'My Wiki Site';

Die docs/sample-config.php-Datei enthält ein Beispiel zum Ändern des Titels.

Wie kann ich PmWiki-Seiten in eine Webseite einbetten.

Lassen Sie sie durch eine PHP-Seite laufen oder setzen Sie sie in einen Frame.

Wie ändere ich die Font- oder Hintergrundfarbe des Hinweisblockes auf der Bearbeiten-Seite?

Fügen Sie einen CSS-Stil in die pub/css/local.css-Datei ein. .quickref {background-color:...; color:... }. Die Hinweise werden durch die Site.EditQuickReference-Seite zur verfügung gestellt. Bearbeiten Sie diese Seite und ändern Sie "bgcolor" oder geben Sie einen Wert für "color" für die Fontfarbe an, so dass sie den gewünschten Kontrast bekommen.

Skinvorlagen

Wie passe ich die CSS-Stile für mein PmWiki-Layout an.

Siehe unter Skins, wie man das Standardwikiskin verändert. Siehe auch unter Cookbook:Skins, wo weitere vorgefertigte Skins zu finden sind, die man benutzen kann, um das Aussehen der eigenen Site seinem eigenen Geschmack anzupassen. Man kann auch eine Datei local.css im pub/css-Verzeichnis erstellt, um die CSS-Selektoren dort hinzu zu fügen (diese Datei wird automatisch eingebunden, wenn sie existiert). Dann kann man schließlich Stile direkt in die lokale Anpassungsdatei schreiben, etwa so:

$HTMLStylesFmt[] = '.foo { color:blue; }';

Wo findet man die erwähnte Übersetzungstabelle, so dass man Übersetzungswendungen hinzufügen kann?

Siehe unter Internationalisierungen.

Ist es möglich, ein Bearbeiten-Formular über die ganze Fensterbreite zu bekommen ohne die SideBar?

Wenn die SideBar mit <!--PageLeftFmt--> markiert ist, fügt man (:noleft:) in die Seite Site.EditForm ein. Das versteckt die SideBar beim Bearbeiten.

Kann man den Titel der Startseite ("HomePage") einfach von der Startseite entfernen/verbergen?

Ja, man kann in der Wikiseite den Titel auf (:title Ein besserer Titel:) ändern oder mit (:notitle:) unterdrücken.

Ist es möglich, die Search-Bar in dem Standardskin von PmWiki zu verbergen?

Ja, siehe bitte unter Cookbook:HideSearchBar.

Userauthorisierung

Kann ich Authorisierungsgruppenzugehörigkeiten in der local/config.php angeben?

Ja — setzen Sie die Gruppendefinition in das $authUser-Array (in config.php).

        $AuthUser['@editors'] = array('alice', 'carol', 'bob');

Kann ich mehrere Admin-Gruppen haben?

Ja, definieren Sie die Gruppen mit array('@admins', '@moderators'); wie hier:

  $DefaultPasswords['admin'] = array( crypt('masterpass'), # globales Passwort
    '@admins', '@moderators', # + Benutzer in diesen Gruppen
    'id:Fred', 'id:Barney');  # + Benutzer Fred und Barney

Ich betreibe mehrere Wikis unter dem gleichen Domainnamen, und Logins von einem Wiki erscheinen in einem anderen Wiki. Sollten die nicht unabhängig voneinander sein?

Das wird verursacht von der Art, wie PHP Sessions behandelt. Siehe PmWiki.AuthUser#sessions wegen weiterer Details.

Gibt es einen Weg, die Zeit des letzten Logins für jeden Benutzer zu speichern, wenn man AuthUser benutzt?

Siehe Cookbook:UserLastAction.

Obwohl alle Einstellungen korrekt zu sein scheinen, funktioniert die Authentifizierung gegen LDAP nicht und es gibt kein LDAP-Log. Was ist falsch?

Vergewissern Sie sich, dass das ldap-php-modul installiert ist ( on debian apt-get install php(4|5)-ldap ; apache(2)ctl graceful )

Das Loginformular fragt nach Benutzernamen und Passwort, aber nur das Passwort spielt eine Rolle.

Der Benutzername kann leer bleiben und trotzdem gelingt ein Einloggen unter dem Account. Ist das so gewollt und wenn, kann ich das so ändern, dass Passwort und Benutzername beide eingegeben werden müssen? - X1/18/07 Ich glaube, das hat was mit der Benutzung des Adminpasswortes zu tun. Ich habe einen Testaccount angelegt und es funktioniert.

Vergewissern Sie sich, dass Sie nicht das Adminpasswort eingeben, wenn sie den Account testen. Wenn das Passwort mit dem des Admin übereinstimmt, wird die Authorisierung direkt durch die config.php-Datei vorgenommen und die anderen Systeme werden übersprungen.

Berücksichtigen Sie, dass man sich selbst mit eingeschaltetem AuthUser immer noch mit einem leeren Benutzernamen und nur der Eingabe des Passwortes einloggen kann. In dem Fall wird jedes eingegebene Passwort "akzeptiert", aber nur Passwörter, die in einem bestimmten Kontext authentifizieren, geben Ihnen auch Authorisierungsrechte. AuthUser koexistieren komfortabel mit dem passwort-basiertes System, wenn man diese Möglichkeit nutzt.

Wenn Sie Benutzernamen und Passwort beide abfordern wollen, dann müssen sie eine Admin-ID vor dem Einbinden von ''authuser.php setzen:

## Define usernames and passwords.
$AuthUser['carol'] = '$1$CknC8zAs$dC8z2vu3UvnIXMfOcGDON0';

## Enable authentication based on username.
include_once('scripts/authuser.php');

# $DefaultPasswords['admin'] = crypt('secret');
$DefaultPasswords['admin'] = 'id:carol';

Ein Benutzername und ein Passwort werden dann erforderlich sein, bevor ein Login erfolgreich ist.

Gibt es irgendeinen Weg, die IP-Adresse zu verbergen, sobald man eingeloggt ist, so dass registrierte Benutzer ihre IP-Adresse gegenüber jedem außer dem Administrator unsichtbar halten können?

Ja, siehe die in PITS:00400 angebotene Lösung.

Gibt es eine Möglichkeit, dass Leute sich selbst registieren können über AuthUser?

Sie können in zwei Rezepten nachsehen, die dieses Feature anbieten: in HtpasswdForm und AuthUserSignup.

Ich hätte es gern, nachdem ich AuthUser angeschaltet habe und ein Benutzer auf meiner Site authentifiert ist, dass, wenn ich ein Passwort für eine bestimmte Seite oder Gruppe gesetzt habe, dieser Benutzer nur noch die typische Passwortzeile sieht und nicht mehr das Formular zur Eingabe von Benutzernamen und Passwort.

Siehe diesen Thread in der Mailingliste.

Passwörter verwalten

Es scheint ein Standardpasswort zu geben, welches ist es?

Es gibt keine gültigen Passwörter, bis Sie eines setzen. Site-weite Passwörter setzen erklärt, wie man eines setzt.

PmWiki kommt "out of the box" mit dem $DefaultPasswords['admin'] auf '*' gesetzt. Das heißt nicht, das Passwort ist ein Sternchen, es bedeutet, das Standard-Administrator-Passwort muss etwas sein, das verschlüsselt zum Sternchen wird. Da das für die crypt()-Funktion unmöglich ist, jemals einen ein-Zeichen-langen verschlüsselten Wert zurückzugeben, ist das Administrator-Passwort tatsächlich gesperrt, bis der Administrator ein Passwort in config.php setzt.

Wie benutze ich eine passwd-formatierte Datei (wie .htpasswd) für die Authentifizierung?

Siehe AuthUser, Cookbook:HtpasswdForm or Cookbook:UserAuth.

Gibt es irgendetwas, das ich in das GroupAttributes-Feld eintragen kann, was 'das gleiche wie das Administrator-Passwort' bedeutet? Wenn nicht, gibt es irgendetwas, das ich in die config.php-Datei eintragen kann, um ebendas zu erreichen?

Geben Sie '@lock' in GroupAttributes?action=attr ein, damit diese Gruppe ein Administrator-Passwort benötigt.

Wie schütze ich – sagen wir mal – alle RecentChanges-Seiten gegen Bearbeiten?

Siehe Security#wikivandalism

Wie kann ich alle Seiten in einer Gruppe gegen Ansehen ('read') schützen, mit Ausnahme der Startseite (HomePage), wenn ich dafür Kofigurationsdateien benutzen will?

Wie in Individuelle Einstellungen pro Gruppe beschrieben, sollten Per-Gruppen- oder Per-Seiten-Konfigurationsdateien nicht benutzt werden, um Passwörter zu setzen. Der Grund ist, dass Per-Gruppen- oder Per-Seiten-Konfigurationsdateien nur für die aktuelle Seite geladen werden. Wenn $DefaultPasswords['read'] in local/GruppeA.php gesetzt ist, dann kann jemand eine Seite in einer anderen Gruppe nutzen, um Inhalte von Seiten aus GruppeA zu lesen. Zum Beispiel könnte Main.WikiSandbox dies enthalten:

(:include GroupA.SomePage:)

und weil die GruppeA.php-Datei nicht geladen wird (wir sehen uns ja Main.WikiSandbox an --> local/main.php), ist kein Ansehen-Passwort gesetzt.

Wie kann ich das Anlegen neuer Seiten mit einem Passwort schützen?

Siehe Cookbook:LimitWikiGroups, Cookbook:NewGroupWarning, Cookbook:LimitNewPagesInWikiGroups.

Wie ändere ich den Schirm mit der Aufforderung zum Passwort-eingeben?

Wenn Ihre Frage ist, wie ändere ich die Seite ... Bearbeiten Sie Site.AuthForm. Wenn ihre Frage dahingeht, wie man umstellt, welche Seite aufgerufen wird, wenn man nach einem Passwort gefragt wird, suchen sie Hilfe bei Cookbook:CustomAuthForm.

Wie ändere ich die Aufforderung auf dem Attribute-(?action=attr)-Schirm?

Legen Sie einfach eine neue Seite an (Site.AttrForm?), und fügen Sie die folgende Zeile in config.php ein:

$PageAttrFmt = 'page:Site.AttrForm';

Bachten Sie, dass das nur den Text über den Eingabefeldern ändert und nicht die Eingabefelder selbst — die Eingabefeldern muss man getrennt davon behandeln. Siehe Cookbook:CustomAttrForm wegen weiterer Informationen.

Ich bekomme einen http error 500 "Internal Server Error", wenn ich versuche, mich einzuloggen. Was ist falsch?

Das kann passieren, wenn das verschlüsselte Passwort nicht auf dem Server erzeugt wird, auf dem PmWiki gehostet wird.
Die crypt-Funktion hat sich während der Entwicklung von PHP geändert, d. h. dass ein Passwort, das mit PHP 5.2 verschlüsselt wurde, nicht mit PHP 5.1 entschlüsselt werden kann, aber PHP 5.2 kann Passwörter entschlüsseln, die mit PHP 5.1 verschlüsselt wurden.
Diese Situation passiert normalerweise, wenn Sie Alles auf Ihrem lokalen Rechner mit der letzten PHP-Version vorbereitet haben und Sie die Passwörter auf einen Webserver hochladen, der mit einer älteren Version läuft.
Der gleiche Fehler tritt auf, wenn Sie verschlüsselte Passwörter in die local/config.php einfügen.

Lösung: Erzeugen Sie die Passwörter auf dem System mit der ältesten PHP-Version und benutzen Sie sie auf allen anderen Systemen.

Ich möchte, dass meine Benutzer nur ein Bearbeiten-Passwort erstellen müssen, das dann automatisch auch als ihre 'upload'- und 'attr'-Passwörter gilt, ohne dass sie das getrennt setzen müssen. Wie mache ich das?

Indem Sie $HandleAuth wie hier einrichten:

      $HandleAuth['upload'] = 'edit';
      // Um u. a. eine WikiSandbox vorm Ändern ihres 'attr'-Rechts zu schützen außer durch den 
      // Admin (aber den Verfassern das Ändern ihrer eigenen Seiten/Gruppen zu erlauben)
      // And to prevent a WikiSandbox from having it's 'attr' permissions changed 
      // except by the admin (but allowing editors to change it on their own pages/group)
      if(($group=="Site") || ($group=="Main") || ($group=="Category") || 
                             ($group=="SiteAdmin") || ($group=="PmWiki") ) {
          // setze 'attr' auf das 'admiin'-Passwort für alle Main-Admin-Seiten 
          $HandleAuth['attr'] = 'admin';  
      } else { 
          // Wer Bearbeiten kann, kann auch Attribute setzen
          $HandleAuth['attr'] = 'edit';  
      }


Übersetzung von PmWiki.FAQ Originalseite auf PmWikiDe.FAQ - Rückverweise
Zuletzt geändert:
PmWikiDe.FAQ am 10.09.2011
PmWiki.FAQ am 10.09.2011