Englisch: |
PmWikiDe /
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. EinführungWas ist PmWiki? PmWiki ist ein wiki-basiertes System für kooperative Erzeugung und Pflege von Webseiten. Siehe PmWikiDe. Was kann ich damit tun? PmWiki-Seiten funktionieren und sehen aus wie normale Webseiten, außer dass sie einen 'Bearbeiten'-Knopf haben, der es einfach macht, existierende Seiten zu ändern und neue Seiten in die Website einzufügen, indem man Basisschreibregeln benutzt. Sie müssen nichts über HTML oder CSS wissen. Das Schreiben der Seiten kann frei für die Öffentlichkeit sein oder auf eine kleine Gruppe von Autoren beschränkt werden. Fühlen Sie sich frei, TextFormattingRules in der "Sandkiste" auszuprobieren. Die Website, die Sie gerade ansehen, wird mit PmWiki geschaffen und gepflegt. Welche Voraussetzungen gibt es? Sehen Sie unter PmWiki-Voraussetzungen nach. Wo kann ich eine Dokumentation zu PmWiki finden? Sehen Sie sich die Seite mit dem Dokumentations-Index an. Wie kann ich PmWiki herunterladen? Sehen Sie unter Download nach. Wie installiere ich PmWiki? Das ist auf der Installationsseite beschrieben. Wie bekommen ich Hilfe zu PmWiki? Sehen Sie nach in den Mailinglisten und unter Wie man Hilfe bekommt. Wie spricht man "Michaud" aus? "Michaud" ist französisch und wird "Mie-Scho" ausgesprochen, das End-"d" wird nicht mitgesprochen. Grundlagen der BearbeitungIch 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 können Sie dann dem am Seitenende befindlichen Verweis Dokumentations-Index folgen. Dort findet sich eine strukturierte Übersicht über die wichtigsten Dokumentationsseiten. Wie kann ich Sonderzeichen in den Text meiner Wikiseiten einfügen? Benutzen Sie Auszeichnungen von der Seite Sonderzeichen, z. B. 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 direkt untereinander stehende Zeilen mit Text als einen Absatz 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 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. Wo finde ich weitere Dokumentationen? Siehe nach im Dokumentations-Index und in der Übersicht über Textauszeichnungen. Erzeugung neuer Seiten
Wie kann ich eine neue Seite anlegen? Das Einfügen von Warum haben manche neuen Seiten einen Titel mit Leerzeichen (wie "Neue Seite") und andere einen WikiWort-artigen Titel ohne Leerzeichen (wie "NeueSeite")? Standardmäßig entspricht der Seitentitel einfach dem Seitennamen, der wiederum normalerweise als "NeueSeite" gespeichert wird. Allerdings können Sie den Seitentitel durch die Verwendung der Direktive VerweiseWie erzeuge ich einen Verweis, der in einem neuen Browserfenster geöffnet wird? Benutzen Sie den Wikistil
Wie erzeuge ich einen Verweis, der in einem neuen Browserfenster geöffnet wird, wenn ich gleichzeitig das Aussehen dieses neuen Fensters beeinflussen will? Dazu ist Javascript erforderlich. Siehe das Kochbuch-Rezept Cookbook:PopupWindow (nur auf Englisch verfügbar). Wie kann ich eine E-Mail-Adresse in eine Wikiseite einfügen? Benutzen Sie die Formatierungsanweisung
Die Auszeichnung Siehe auch im Kochbuch-Rezept Cookbook:DeObMail nach ausführlicheren Informationen über den Schutz von E-Mail-Adressen vor Spammern (nur auf Englisch verfügbar). Wie kann ich Verweise auf andere Protokolle wie nntp:, ssh: xmpp: usw. aktivieren? Siehe Cookbook:Add Url schemes Wie kann ich einen WikiWort-Verweis zu einem Verweis auf eine externe anstatt auf eine interne Seite machen? Benutzen Sie die Formatierungsanweisungen für Verweise. Es gibt folgende zwei Möglichkeiten: [[https://example.com/ | WikiWort]] [[WikiWort -> https://example.com/]] Wie finde ich alle Seiten, die auf eine bestimmte Seite verweisen (sogenannte 'backlinks')? Benutzen Sie (:pagelist link=IrgendeineSeite:) – zeige alle Verweise auf IrgendeineSeite
(:pagelist link={$FullName}:) – zeige alle Verweise auf die aktuelle Seite
Bachten Sie, dass (mit wenigen Ausnahmen) 'includes', 'conditionals', Seitenlisten, Suchergebnisse, 'wikitrails' und Umleitungen ('redirects') nicht für Wikilinks ausgewertet werden, dadurch werden Links, die diese in die Seite setzen, nicht als Backlinks gefunden. Alle anderen Direktiven und Markups, z. B. Verweise, die durch Welche Verweis-Schemen (URI-Schemen) unterstützt PmWiki? Siehe die eigene Seite Linkschemata. 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). Wie kann ich ein Bild als Link benutzen? Benutzen Sie [[Page| Attach:image.jpg ]] oder [[ https://site | https://site/image.jpg ]] Siehe Images#links Warum folgt mein Browser keinen Verweisen auf lokale Dateien (file://)? Aus Sicherheitsgründen folgen die meisten Browser einem Verweis auf file:// nur dann, wenn die Seite, die auf die Datei verweist, ebenfalls auf dem lokalen Laufwerk liegt. Mit anderen Worten, die meisten Browser folgen dem Verweis nicht, wenn Sie die verweisende Seite mit https:// geladen haben, wie es bei einer PmWiki-Site der Fall ist. Siehe auch Cookbook:DirList wegen eines Workarounds. Wie verlinke ich auf die erste existierende Seite, z. B. Siehe Bedingte Auszeichnung (:if exists Group1.Page:) [[Group1.Page|Page]] (:elseif exists Group2.Page:) [[Group2.Page|Page]] (:ifend:) Wie mache ich Referenz-Verweise auf Links, die am Ende der Seite aufgeführt sind, wie in Wikipedia? Oder wie liste ich alle Links der Seite auf? siehe Cookbook:Footnotes. BilderWarum sind einige externe Bilder korrekt eingebettet und andere nicht? Wenn die aktuelle Seite eine sichere URL mit dem "https://"-Protokoll ist, verweigern einige Browser Bilder von unsicheren URLs zu laden (anders herum ist es erlaubt). Manche Webmaster konfigurieren ihre Server auch so, dass Direktverlinkung verboten ist. 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 generelle Format 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 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 der untere Rand (bottom border), die unter der Überschrift liegt, weitere Anpassungen nötig macht. Vielleicht setzen Sie die Überschrift einfach in fett und setzen Sie vier Bindestriche 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. 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
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
Benutzen Sie Stile für die Einrückung, Sie müssen die Nummerierung neu aufsetzen, siehe Wikistile
Noch besser
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
Wie mache ich es, 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 einzelnes Bild brauchen, setzen Sie [==] https://www.pmwiki.org/pub/pmwiki/pmwiki-32.gif
Ein 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: Wie füge ich Sie können die Erweiterung an Gibt es einen Weg, eine Tabelle links oder rechts neben einem Bild zu bekommen? Ja, siehe TableAndImage. Hochladen von DateienWie 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 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
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. 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 Wie kann ich Dateien hochladen, die vier-Zeichen-lange Dateierweiterungen haben wie beispielsweise 'abc.pptx'? Siehe Cookbook:Upload Types. Wie kann ich andere daran hindern, den URL meiner Bilder auf ihrer Site zu benutzen? Siehe Cookbook:Prevent Hotlinking → Wie kann ich eine Datei anzeigen, der eine korrekte Dateiendung fehlt? (etwa, wenn ich Cookbook:LinkIcons benutze) Eine Datei können Sie anzeigen, indem Sie eine "gefälschte" Dateiendung an den URL anhängen. Wenn z. B. der URL Einfache TabellenWie erzeuge ich eine einfache Tabelle? Tabellen werden unter Verwendung des doppelten 'Pipe'-Zeichens '
Wie erzeuge ich Spaltenköpfe? Spaltenköpfe können erzeugt werden, indem man ein Ausrufezeichen an die erste Stelle einer Zelle setzt. Anmerkung: Dies sind Spaltenköpfe, keine Überschriften, '!!' oder '!!!' funktionieren nicht.
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):
Wie erzeuge ich eine erweiterte Tabelle? Siehe unter Tabellendirektiven - komplexe Tabellen anlegen
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
Wie kann ich die Breite der Spalten angeben? Sie können die Breite mit angepassten Stilen definieren, siehe Cookbook:FormattingTables und
Und fügen Sie in pub/css/local.css hinzu :
Wie kann ich ein doppeltes 'Pipe'-Zeichen in einen Zelltext schreiben, wenn ich einfache Tabellen benutze? Benutzen Sie
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 Alternativ können Sie Tabellendirektiven benutzen, die es erlauben, Stile entweder direkt (style="...") oder durch Klassenattribute für CSS(class="...") anzugeben. TabellendirektivenKann ich Tabellenköpfe definieren, indem ich die Tabellendirektive benutze? Ja, benutzen Sie 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 Cookbook:BackgroundImages (auf Englisch). 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 Ist es möglich, TableCaptions in Tabellendirektiven zu benutzen wie in einfachen Tabellen? Ich habe Sehen Sie sich Cookbook:AdvancedTableDirectives (auf Englisch) an, dort gibt es u. a. die Direktive WikistilfarbenWie definiert eine Administrator Farben für alle Seiten? Er definiert Farb-Schlüsselworte und verlässt sich darauf, dass die Browser die Farbwerte rendern. Er kann die Farb-Schlüsselworte sowohl für die Textfarbe (mit %keyword%text%%) als auch für die Hintergrundfarbe (mit %bgcolor=keyword%text%%) benutzen. Er fügt dies zu seiner lokalen Konfigurationsdatei hinzu: $SVGColors = array ( 'aliceblue','antiquewhite','aqua','aquamarine','azure','beige','bisque','black', 'blanchedalmond','blue','blueviolet','brown','burlywood','cadetblue','chartreuse','chocolate', 'coral','cornflowerblue','cornsilk','crimson','cyan','darkblue','darkcyan','darkgoldenrod', 'darkgrey','darkgreen','darkkhaki','darkmagenta','darkolivegreen','darkorange','darkorchid','darkred', 'darksalmon','darkseagreen','darkslateblue','darkslategray', 'darkturquoise','darkviolet','deeppink','deepskyblue', 'dimgray','dodgerblue','firebrick','floralwhite','forestgreen','fuchsia','gainsboro','ghostwhite', 'gold','goldenrod','gray','green','greenyellow','honeydew','hotpink','indianred', 'indigo','ivory','khaki','lavender','lavenderblush','lawngreen','lemonchiffon','lightblue', 'lightcoral','lightcyan','lightgoldenrodyellow','lightgreen', 'lightgrey','lightpink','lightsalmon','lightseagreen', 'lightskyblue','lightslategray','lightsteelblue','lightyellow','lime','limegreen','linen','magenta', 'maroon','mediumaquamarine','mediumblue','mediumorchid', 'mediumpurple','mediumseagreen','mediumslateblue','mediumspringgreen', 'mediumturquoise','mediumvioletred','midnightblue','mintcream', 'mistyrose','moccasin','navajowhite','navy', 'oldlace','olive','olivedrab','orange','orangered','orchid','palegoldenrod','palegreen', 'paleturquoise','palevioletred','papayawhip','peachbuff','peru','pink','plum','powderblue', 'purple','red','rosybrown','royalblue','saddlebrown','salmon','sandybrown','seagreen', 'seashell','sienna','silver','skyblue','slateblue','slategray','snow','springgreen', 'steelblue','tan','teal','thistle','tomato','turquoise','violet','wheat', 'white','whitesmoke','yellow','yellowgreen' ); foreach($SVGColors as $c) $WikiStyle[$c]['color'] = $c; Alternativ definiert er die gewünschten Farben in der lokalen Konfigurationsdatei (siehe Wikistile anpassen für Details). Z. B. fügt er das Folgende in seine local/config-Datei hinzu: $WikiStyle['hardblue']['color'] ='#0000cc'; $WikiStyle['darkgreen']['color'] ='#006600'; $WikiStyle['bluegrass']['color'] ='#009999'; $WikiStyle['teal']['color'] ='#008080'; $WikiStyle['darkpurple']['color'] ='#660066'; $WikiStyle['perwinkle']['color'] ='#6600cc'; $WikiStyle['darkgrey']['color'] ='#a9a9a9'; $WikiStyle['mistgreen']['color'] ='#669966'; $WikiStyle['slategreen']['color'] ='#669999'; $WikiStyle['purple']['color'] ='#800080'; $WikiStyle['lightpurple']['color'] ='#9966cc'; $WikiStyle['lightgrey']['color'] ='#d3d3d3'; $WikiStyle['lightblue']['color'] ='#add8e6'; $WikiStyle['springgreen']['color'] ='#00ff7f'; $WikiStyle['magenta']['color'] ='#ff00ff'; $WikiStyle['burntorange']['color'] ='#cc6633'; $WikiStyle['grey']['color'] ='#808080'; $WikiStyle['lightgreen']['color'] ='#90ee90'; $WikiStyle['pink']['color'] ='#ffc0cb'; $WikiStyle['lightred']['color'] ='#ff6666'; $WikiStyle['orange']['color'] ='#ffa500'; $WikiStyle['lightorange']['color'] ='#ff9966'; $WikiStyle['gold']['color'] ='#ffd700'; $WikiStyle['yellow']['color'] ='#ffff00'; Noch eine Farbenübersicht
TastaturkürzelWie kann ich die Tastaturkürzel fürs Bearbeiten und Speichern einer Seite ändern. Siehe Anpassen der Tastaturkürzel. Seitendirektiven Lässt sich Das geht mit Gibt es eine Möglichkeit, den Text "umgeleitet von ..." ganz oben auf der Zielseite zu unterdrücken, wenn ich Dafür gibt es verschiedene Möglichkeiten. Wenn die Nachricht grundsätzlich unterdrückt werden soll:
Wenn die Nachricht je nach Zielseite der Umleitung unterdrückt werden soll:
Wenn die Nachricht je nach Herkunftsseite der Umleitung unterdrückt werden soll:
if (@$_GET['from']) { $group = PageVar($_GET['from'], '$Group'); if ($group == 'IrgendeineGruppe') $PageRedirectFmt = ''; } (Im obigen Beispiel möchten Sie eventuell 'IrgendeineGruppe' durch 'Profiles' ersetzen.)
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 GuteGruppe.{$Name}:) ist möglich, wenn Sie die Anweisung einfach nur in einer bestimmten Seite verwenden wollen.
Wenn das für eine ganze Gruppe funktionieren soll, fügen Sie (:redirect GuteGruppe.{*$Name}:) in die Seite SchlechtGruppe.GroupHeader ein. Dies funktioniert allerdings nur mit Seiten, die in GuteGruppe existieren; wenn Sie eine Seite in SchlechteGruppe aufrufen, für die es keine korrespondierende Seite in GuteGruppe gibt, wird die(:redirect:) -Direktive am Seitenanfang angezeigt (anstatt dass Sie auf eine nicht-existierende Seite umgeleitet werden).
Mit (:if exists GuteGruppe.{*$Name}:)(:redirect GuteGruppe.{*$Name}:)(:ifend:) in der Seite SchlechteGruppe.GroupHeader werden Sie auf GuteGruppe.Name umgeleitet, sofern diese Seite existiert, ansonsten bleiben Sie auf SchlechteGruppe.Name, ohne dass irgendein Kode-Schnipsel angezeigt wird.
Wie kann ein Wiki standardmäßig Zeilenumbrüche aktivieren, d. h. ohne die Direktive Fügen Sie in config.php eine solche Zeile hinzu: Einbinden anderer SeitenWieviele 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 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 Seitenlisten 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 Welchen Test mache ich, um zu sehen, ob die Seite ein Teil einer anderen Seite ist?
Gibt es irgendeinen Weg, (Kapitel von) Seiten, die geschützt sind (authuser.php), woanders einzubinden. Sie können Ihr Ziel andersherum erreichen: setzen Sie die öffentlichen Abschnitte in eine öffentliche Seite (passwdread=@nopass or @_site_read) und binden Sie diese Abschnitte sowohl in die geschützte Seite als auch in die ungeschützte Seite ein. Beachten Sie, dass es nachdrücklich empfohlen wird, NICHT zu versuchen, in einer ungeschützten Seite sensitive Inhalte innerhalb einer bedingten Auszeichnung zu verbergen. InterMap-PräfixeIst die Groß/Kleinschreibung der InterMap-Namen relevant. Ja, es ist also Wie erreiche ich eine localmap.txt-Abbildung mit dem Effekt von Benutzen Sie das Folgende: Pics: /somepathto/pics/
Wie kann ich ein InterMap in PHP definieren? Benutzen Sie das Folgende: $LinkFunctions['PmWikiHome:'] = 'LinkIMap'; $IMap['PmWikiHome:'] = 'https://pmwiki.org/wiki/$1'; Siehe auch $LinkFunctions Seitenspezifische VariablenGibt es eine Variable wie $LastModified, die aber die Erstellungszeit anzeigt? Nein, aber Sie können eine in config.php erzeugen. Zum Beispiel:
Wenn Sie lieber das in config.php definierte Format erhalten möchten, benutzen Sie:
Wie kann ich testen, ob ein Variable gesetzt ist und/oder nicht leer? Benutzen Sie WikigruppenWir kann ich die Anzeige der "Main"-Gruppe in URLs vermeiden? Siehe Cookbook:Get Rid Of Main. Wie kann ich die Erzeugung neuer Gruppen begrenzen? See Cookbook:Limit Wiki Groups. Warum funktioniert [[St. Augustin]] nicht als Verweis? (Es zeigt überhaupt nichts an.) Der Verweis enthält einen Punkt, der für die Trennung von Gruppen- und Seitennamen reserviert ist. Das zerstört PmWikis Dateistruktur, wo Seiten als Gruppe.Seitenname gespeichert werden. Verwenden Sie StAugustin als Seitennamen und die (:title:)-Direktive (:title St. Augustin:) in der Seite, um den Seitentitel mit Punkt darzustellen. Wie kann ich eine Wikigruppe löschen? Normalerweise können Sie das nicht, denn es erfordert einen Administrator mit Zugriff auf den Server, weil er die Datei mit dem Inhalt der "RecentChanges"-Seite löschen muss. Es ginge aber, wenn der Administrator den Kode, der in dem Kochbuch Cookbook:RecentChanges Deletion zu finden ist, auf der Site einrichtete. Wie kann die Group.RecentChanges einer Gruppe löschen? Normalerweise können Sie das nicht, denn es erfordert einen Administrator mit Zugriff auf den Server, um die Datei zu löschen. Es ginge aber, wenn der Administrator den Kode, der in dem Kochbuch Cookbook:RecentChanges Deletion zu finden ist, auf der Site einrichtete. Kann ich eine Wikigruppe im wiki.d-Verzeichnis auf dem Server löschen, um die Gruppe aus dem Wiki zu entfernen. Ja, wenn Sie alle Dateien namens IhreGruppe.* löschen, verschwindet die Gruppe aus dem Wiki. Beachten Sie, dass die Dokumentation (die Gruppe PmWiki) und die Site-Konfiguration (die Gruppen Site und SiteAdmin), die in der Standardinstallation vorhanden sind, im Verzeichnis wikilib.d und nicht im Verzeichnis wiki.d liegen. Einige Rezepte richten Dateien in einem wikilib.d-Unterverzeichnis des cookbook-Verzeichnisses ein. Sie dürfen die Gruppen Site und SiteAdmin nicht löschen, die sind für die normale Funktion unerlässlich. Wie kann ich alle Seiten einer Wikigruppe auflisten? Setzen Sie Kopfbereich (und Fußbereich) der GruppeWie setze ich den gleichen Kopf- oder Fußbereich für alle Seiten und Gruppen? Der Kopf- und Fußbereich für jede Seite wird von den Variablen
$GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader' . ' basepage={*$FullName}:)(:nl:)' . $GroupHeaderFmt; ### Wenn Sie Site.SiteHeader statt Group.GroupHeader nutzen
$GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader' . ' basepage={*$FullName}:)(:nl:)'; ### Wenn Sie Site.SiteFooter und Group.GroupFooter nutzen
### Site.SiteFooter erscheint unterhalb von Group.GroupFooter
$GroupFooterFmt .= '(:nl:)(:include {$SiteGroup}.SiteFooter' . ' basepage={*$FullName}:)'; ### Beachten Sie die Zuweisung mit .=
### Wenn Sie Site.SiteFooter statt Group.GroupFooter nutzen
$GroupFooterFmt = '(:nl:)(:include {$SiteGroup}.SiteFooter' . ' basepage={*$FullName}:)'; Beachten Sie, dass die einfachen Anführungszeichen erforderlich sind, damit der vorherige Inhalt von Siehe auch das Rezept Cookbook:AllGroupHeader Anstatt eine zusätzliche Seite zu benutzen, können Sie auch jeglichen Wikiquelltext in $GroupHeaderFmt .= "Globale Hinweise oder Nachrichten 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 funktioniert einwandfrei Ian MacGregor? Seitenabfolge
Was ist der Unterschied zwischen einer Seitenliste und einer Seitenabfolge? Die Seitenlistendirektive erzeugt dynamisch Listen von Seiten. Es gibt viele Arten, wie man diese Listen erzeugen kann, einschließlich des Einsatzes von Seitenabfolgen als Quelle. Die Seitenlistendirektive zeigt dann die Seiten an, die bestimmten Kriterien entspricht, wobei sie eine optionale Vorlage benutzt – z. B. Anzeigen jeder Seite auf einer eigenen Zeile als einen Verweis oder Ausgabe des kompletten Inhalts. Die Seitenlistendirektive hat gegenwärtig kein eingebautes Navigations-Markup, das man in die Seiten der Liste setzen kann. Im Kontrast dazu sind die Seitenabfolgen einfach durch Verweise auf einer "Index"-Seite beschrieben und man kann vor&zurück-Navigations-Elemente in alle Seiten einfügen. Die zwei dienen verschiedenen Zwecken. Seitenabfolgen sind nützlich für Web-Feeds, zum Erzeugen einer "Tour" durch einen vorgegebenen Satz von Seiten und viele weitere Dinge. SeitenversionenGibt 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. Sie können die Seite bearbeiten, den gesamten Inhalt in die Zwischenablage kopieren (oder besser noch in einer temporären Textdatei speichern), Wie kann ich den Zugriff auf die Historie Füge in der Datei local/config.php
hinzu. Wenn diese Einschränkung für eine ganze Farm eingerichtet wurde und man will in einem bestimmten Wiki 'diff' wieder erlauben, fügt man in local/config.php dieses Wikis
hinzu. PasswörterWie 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: 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. 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', Das gibt automatisch jedem Benutzer Bearbeiten-Rechte, dessen Benutzername der gleiche ist wie der Gruppenname. FAQWie kommt es, dass, wenn ich von einem Wiki in ein anderes wechsele, ich meine Autorisierung behalte? PmWiki benutzt Sessions, um die Authentifizierung/Autorisierung im Auge zu behalten und ohne besondere Einstellungen setzt PHP voraus, dass alle Interaktionen mit einem Server zur gleichen Session gehören. session_name('XYZSESSID'); Sie können sich einen alphanumerischen Namen für XYZSESSID ausdenken, zum Beispiel für das session_name('CS559SESSID'); Damit werden die beiden Sitzungs-Cookies auseinander gehalten. Ist es möglich, die Passwortebene zum Anzeigen und/oder für if-Bedingungen zu verwenden? Beispiel: * (:if WriterPassword:) (display Edit link) (:ifend:) Sie können Kann ich Das können Sie, es ist aber gewöhnlich nicht sicher. Die empfohlene Strategie ist, Geheimnisse in eine gesonderte Seite einzufügen und alle lese-bezogenen1 Zugriffe auf diese Seite auf solche Benutzer zu beschränken, die dieses Geheimnis teilen dürfen. Um das Geheimnis in einer anderen Seite zu zeigen, können Sie Teile der geheimen Seite oder die ganze Seite in diese andere Seite einfügen. Benutzer mit Leseberechtigung des Geheimnisses sehen den Text, wohingegen andere nichts sehen – oder nach Ihrer Wahl einen anderen Text, z. B. einen Anmelden-Verweis.
Der Grund, warum Bedingte Auszeichnung nicht für Zugriffskontrolle zu gebrauchen ist, ist, dass es nur für die Anzeige des Quelltextes als Webseite gedacht ist, und das ist halt nur einer von vielen Wegen, um auf den Seitentext zuzugreifen. Um bedingte Auszeichnungen verlässlich für den Schutz von Geheimnissen einzusetzen, müssen alle Zugriffsmethoden, die diesen Weg umgehen könnten, ausgeschlossen werden. Um das zu erreichen, müssen Sie alle sich bietenden Möglichkeiten im Auge behalten. In der Standardinstallation von PmWiki enthalten die einfachen Methoden die folgenden: Bearbeiten einer Seite, Einsehen der Versionen oder des Quelltextes sowie das Einfügen von Teilen der Seite in der (Bearbeiten-) Vorschau einer anderen Seite (Vorschau verhindert Spuren in den Aktuellen Änderungen zu hinterlassen). Im Übrigen ist diese Liste bei Weitem nicht erschöpft und kann durch Rezepte? oder zukünftige Versionen von PmWiki noch wachsen. Seitenlisten
Diese Formate werden definiert in Seitenlistenvorlagen, die angepasst werden können (Siehe auch Seitenlisten mit Standardvorlagen und PageListTemplates (in Englisch)). fmt=countDies Format ist nicht in der Seitenlistenvorlage definiert:
link= und category=Die " Das
(:pagelist link=PmWikiDe.DocumentationIndex:)
(:pagelist link={$FullName}:)
(:pagelist category=Skins:)
Seit PmWiki 2.3.0 akzeptieren Beachten Sie, Beachten Sie außerdem, dass das neue count=Die "
Vergleiche fmt=count wrap=Die " Mit "wrap=inline" und "wrap=none" wird die Ausgabe der Seitenliste (Markup oder HTML) direkt im Markup der Seite eingebettet ohne irgendwelche umgebenden <div class=...> - </div>-Tags. Mit "wrap=inline" wird eine umgebende <ul> fortgesetzt. Ohne "wrap=inline" startet die HTML-Ausgabe eine neue <ul> (nicht umgekehrt?). Das ist wichtig, wenn man möchte, dass die Seitenliste eine zweite Ebene in der <ul> erzeugt, denn der Beginn einer neuen Liste mit "**" führt nicht zu einer zweiten <ul>-Ebene sondern zu <dl><dd><ul>... "wrap=inline" hat außerdem noch andere Effekte, da es den Aufruf von $FPLTemplateMarkupFunction unterdrückt (die standardmäßig MarkupToHTML ist). class=Standardmäßig hat eine Seitenliste die 'fpltemplate'-Klasse. Die 'bygroup'-, 'simple'-, 'group'- und 'title'-Seitenlistenformate haben eigene Klassennamen fplbygroup, fplsimple etc. Man kann selbst eine Klasse mit dem class=-Parameter angeben oder durch setzen des $FPLFormatOpt-Arrays. request=Mit
Hinweise: Kodieren Sie jedes "#" in dem URL als "%23". Seit Version 2.2.71 ist es möglich, explizit nur bei ausgewählten Parametern zu erlauben, sie zu überschreiben, oder bei einigen Parametern zu verbieten, sie zu überschreiben. Wenn Sie das brauchen, setzen Sie statt der 1 den Parameternamen ein. Alle Parameter zum Überschreiben frei geben: Nur die Parameter 'order' und 'count' dürfen überschrieben werden: Erlaube, alle Parameter zu überschreiben, außer 'fmt' und 'trail', beachten Sie das Minuszeichen vor jedem verbotenen Parameter. req=1Der Wenn eine Suche durchgeführt wird, entweder über eine passwd=Die " if=Die " (:pagelist if="date {(ftime %GW%V {*$Name})} {=$Name}" :)
alle Seiten aus, deren Namen in der gleiche Woche liegt wie der Name der aktuellen Seite (also der Seite, in die die Liste eingebettet ist). Wenn ein Argument innerhalb der Anführungszeichen Leerzeichen enthalten kann, muss es in einfache Anführungszeichen gesetzt werden. order=Die "
Außerdem erlaubt die
cache=0Seitenlisten können zwischengespeichert werden, was den Prozess erheblich beschleunigt (wenn $PageListCacheDir gesetzt ist). Hin und wieder führt dieses Zwischenspeichern zu unerwünschten Ergebnissen, die Angabe von Variablen als Parameter angebenMan kann auch Variablen innerhalb der Seitenlistenanweisung angeben und sich in der Vorlage auf diese Variablen beziehen, indem man das (:pagelist fmt=#pagelist variable1="value" variable2="value2":)
Das setzt voraus, dass die Site Zum Beispiel mit der Vorlage
erhält man:
Siehe auch BeispieleSchließe den Inhalt einer zufälligen Seite aus der Bannergruppe ein: (:pagelist group=Banners order=random count=1 fmt=#include list=normal:)
Zeige eine einfache Liste der zehn zuletzt geänderten Dateien an: (:pagelist trail=Site.AllRecentChanges count=10 fmt=#simple:)
Zeige die "Top Twenty" der größten Kochbuch-Seiten (:pagelist group=Cookbook order=size count=-20 :)
Die Searchbox-DirektiveDie
Der zusätzliche Parameter Standardmäßig hat das Eingabefeld den "Text"-Typ wegen der Kompatibilität mit HTML/XHTML. Alternativ können Sie es für HTML5 auf den "search"-Inputtyp setzen, siehe Die Suchergebnis-DirektiveDie request=1 req=1Die Suchergebnisse erscheinen ohne die Einleitung, die da heißt "Suche nach ..." . Anpassen von "Suche nach ..." und "3 Treffer auf ..."Um die Texte, die das Suchergebnis umrahmen, zu ändern, kann man das Folgende anpassen und zur local/config.php oder zur XLSDV('de', array( 'SearchFor' => 'Suchergebnis für <em>$Needle</em>:', 'SearchFound' => '$MatchCount Seiten gefunden unter $MatchSearched durchsuchten Seiten.' )); Hinweis: 'de' muss für andere Sprachen als Deutsch entsprechend angepasst werden.
Alternativ kann man auch die 'SearchFor'- und 'SearchFound'-Strings in der Übersetzungsseite anpassen. Auch die $SearchResultsFmt-Variable kann in local/config.php oder SDV($SearchResultsFmt, "<div class='wikisearch'>\$[SearchFor] <div class='vspace'></div>\$MatchList <div class='vspace'></div>\$[SearchFound]</div>"); Siehe auch
FAQ
Wie öffnet PmWiki Seiten mit PageStore? Wenn PmWiki eine Datei zum Lesen öffnen muss, fragt es die PageStore-Objekte eines nach dem anderen, in der Reihenfolge, in der Sie sie in der config.php-Datei definiert haben, ob sie MeineGruppe.MeineSeite haben. Das erste PageStore-Objekt, das diese Seite findet, gibt sie zurück und wenn es noch mehr PageStore-Objekte gibt, werden diese nicht behelligt. Wenn Sie ein PageStore-Objekt definieren mit Pfaden wie Wenn Sie eine Seite schreiben, wird nur das erste PageStore-Objekt benutzt, das gewöhnlich Wie ist das Verhalten von pagelist und searchresults, wenn nur ein Name oder Wort angegeben wird? Beide, pagelist und searchresults, durchsuchen alle Gruppen, außer entweder
Wenn eine Option nicht benutzt wird, sollte diese Option nicht vordefiniert werden.
Löschen von SeitenFAQWie werde ich Gruppen wieder los, nachdem ich sie einmal angelegt habe? Ein Administrator kann die unerwünschten Seiten einfach aus dem Verzeichnis Im Normalfall reicht es nicht, alle Seiten einer Gruppe über das Wiki (mittels InstallationKönnte ich nicht pmwiki.php in index.php umbenennen? Vom Umbenennen wird abgeraten. Statt dessen erzeugen Sie eine neue Datei namens index.php mit der folgenden einzigen Textzeile (und lassen Sie das schließende Tag "?>" ganz bewusst weg):
Wie mache ich pmwiki.php zur Standardseite einer Website? Erzeugen Sie eine index.php-Datei, die PmWiki aus einem Unterverzeichnis heraus startet (z. B. aus pmwiki/) und setzen Sie sie in das Wurzelverzeichnis der Site (das Hauptverzeichnis der Website). <?php chdir('pmwiki'); include_once('pmwiki.php');
Annmerkung: Sie müssen auch ausdrücklich die Wie kann ich "saubere URLs" aktivieren, die kürzer sind und mehr nach Pfaden zu meinen Wikiseiten aussehen? Warum scheint pmwiki.org eher eine Verzeichnisstruktur zu haben anstelle von "?n=seitenname" in den URLs? Siehe Cookbook:CleanUrls. Wie kann ich PmWiki auf einer selbstständigen Maschine (offline, portabel) laufen lassen? Siehe Cookbook:Standalone oder Cookbook:WikiOnAStick. AktualisierungenWie kann ich herausfinden, welche Version von PmWiki bei mir läuft? Siehe Version - So findet man die Version von PmWiki heraus und so gibt man sie aus.. 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 umzustellen (und man kennt alle notwendigen Konfigurations- und Seitenänderungen, die gemacht werden müssen.) Verwaltung der AnhängeWie 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 = '/$FullName'; # seitenweise, in Gruppe.Name-Verzeichnissen $UploadPrefixFmt = '/$Group/$Name'; # seitenweise, in Gruppenverzeichnissen mit Name-Unterverzeichnissen $UploadPrefixFmt = ''; # für das ganze Wiki Für 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? Ja, siehe Wo wird die Liste der Anhänge gespeichert? Sie wird ad hoc durch das (:attachlist:)-Markup erstellt. Wie kann ich Hotlinking meiner hochgeladenen Bilder verhindern? Siehe Cookbook:Prevent Hotlinking → SicherheitWie 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:
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. Wiki-Vandalismus und Spam
Wie beende ich das Löschen von Seiten, d. h. wie schütze ich Seiten vorm Löschen mit einem Passwort? 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'; um ein Bearbeiten-Passwort für das Löschen erforderlich zu machen,
oder durch $HandleAuth['delete'] = 'admin'; um ein 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 Wie kann ich verhindern, dass Seiten durch alberne Kommentare wie exellente Site, großartige Informationen, ersetzt werden, wo der Inhalt nicht blockiert werden kann? Versuchen Sie eine neuere Automatische Blockadeliste, die Informationen über IP-Adressen von bekannten Wiki-Verunstaltern zieht. (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'] = pmcrypt('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'; }
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 Seiten 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'] = pmcrypt('foobar'); } Ersetzen Sie "90.68." durch den bevorzugten Netzwerk-Präfix und "foobar" durch das Standardpasswort für Andere. Für eine einzelne IP benutzen Sie: if($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { # Ihre IP-Adresse hierhin $_POST['authpw'] = 'xxx'; # das Admin-Passwort } Bitte beachten Sie die Sicherheitsaspekte: das bedeutet nämlich, dass Sie das Admin-Passwort als Klartext in Ihrer config.php-Datei stehen haben und jemand mit Zugriff auf das Dateisystem diese Datei lesen kann, z. B. ein technischer Mitarbeiter des hostenden Providers. Ihre IP-Adresse kann sich gelegentlich ändern (es sei denn, Sie haben einen Vertrag über eine fixe IP mit ihrem Internet-Service-Provider [ISP]). Wenn das passiert, wird jemand mit Ihrer alten IP-Adresse automatisch als Admin in Ihrem Wiki angemeldet. Es ist extrem unwahrscheinlich, dass es Probleme gibt, aber Sie sollen wissen, dass das möglich ist. Wenn Sie hinter einem Router sitzen, haben alle anderen Geräte hinter diesem Router im Internet die gleiche IP-Adresse wie Sie (aus der Sicht des Wikis) — Ihr WiFi-Telefon, dass Notebook Ihrer Frau, ein Nachbar, der Ihre WiFi-Verbindung mitbenutzt etc. Alle diese Leute werden Admin Ihres Wikis. Nochmal: Sie sollten prüfen, ob sich daraus ein Sicherheitsrisiko ergibt. In manchen Fällen routet Ihr ISP Ihren Verkehr gemeinsam mit dem anderer Leute über einen gemeinsamen Proxy(-Server) — in solch einem Fall könnten tausende von Leuten die selbe IP-Adresse haben. Siehe auch Cookbook:AuthDNS & Cookbook:PersistentLogin Wie setze oder lösche ich ein Passwort für eine Gruppe oder Seite in siehe Passwörter und Passwörter verwalten. Wie schütze ich Seitenaktionen durch ein Passwort? Siehe Passwörter wegen der Einstellungen in der config.php-Datei. $HandleAuth['pageactionname'] = 'pageactionname'; # zusammen mit :
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 if(!PageExists('Profiles.'.
$HandleAuth['edit'] = 'admin';
Dies ist eine mögliche Lösung, aber seien Sie gewarnt, Autoren können dann auch keine Wikiseite in der Profile-Gruppe? neu anlegen. 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(
if($group=='Profiles')
Wie moderiere ich alle Veröffentlichungen? Aktivieren Sie Entwürfe
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
Wie verberge ich die IP-Adresse in den "diff"-Seiten? Wenn der Benutzer einen Benutzernamen einträgt, erscheint dieser an stelle der IP-Adresse. Um das Eintragen eines Benutzernamen zu erzwingen, setzen Sie das Folgende in die config.php-Datei ein: $EnablePostAuthorRequired = 1; Die IP-Adress kann auch in dem Tooltip-Titel erscheinen, wenn der Mauscursor über dem Autorennamen ist. Wenn Sie das deaktivieren möchten, dass setzen Sie das Folgende in Ihre config.php-Datei: $DiffStartFmt = "<div class='diffbox'><div class='difftime'><a name='diff\$DiffGMT' href='#diff\$DiffGMT'>\$DiffTime</a> \$[by] <span class='diffauthor'>\$DiffAuthor</span> - \$DiffChangeSum</div>"; Wie halte ich einige Apacheinstallationen davon ab, (hochgeladene) Dateien die ".php", ".pl" oder ".cgi" irgendwo im Dateinamen haben, auszuführen. Benutzen Sie $UploadBlacklist Wie hindere ich irgendwelche Leute daran, den Quelltext meiner Wikiseiten mit ?action=source zu inspizieren. Ich habe Wie sichere ich meine Cookies? Siehe Eigene AuszeichnungenWie kann ich JavaScript in die Ausgabe einer Seite einfügen? Es gibt mehrere Wege, das zu erreichen. Das Cookbook:JavaScript-Rezept beschreibt ein einfaches Verfahren, um statisches JavaScript in eine Webseite einzufügen mit Hilfe von eigenen Auszeichnungen. Um JavaScript direkt in Wikiseiten zu schreiben (was verschiedene Sicherheitsrisiken öffnen kann), siehe das JavaScript-Editable-Rezept. Für JavaScript, das im Kopf- und Fußbereich von Seiten erscheinen soll, können Sie die skin-Vorlage direkt verändern, oder Sie fügen <script>-Anweisungen ein, indem Sie das Wie erstelle ich ein Markup ((:nodiscussion:)), das eine Seitenvariable ({$HideDiscussion}) setzt, die wiederum mit (:if enabled HideDiscussion:) in .PageActions? eingesetzt werden kann? Fügen Sie den folgenden Kodeabschnitt in Ihre config.php ein: SDV($HideDiscussion, 0); #define var name Markup('hideDiscussion', '<{$var}', '/\\(:nodiscussion:\\)/', 'setHideDiscussion'); function setHideDiscussion() { global $HideDiscussion; $HideDiscussion = true; } Das macht es möglich, die Anscheinend trifft (.*?) in den Funktionen nicht auf Zeilenumbrüche zu, sodass das obige Beispiel nicht funktioniert, wenn der Text, der in <em> eingeklammert werden soll, Zeilenumbrüche enthält. Wenn Sie den "s"-Modifier im regulären Ausdruck verwenden, wird der Punkt (.) auf einen Zeilenumbruch passen. So wird Ihr regulärer Ausdruck zu "/KRAMS(.*?)/s". Das "s" ganz am Ende ist es, wonach Sie suchten. Wenn Sie beginnen, sich mit mehrzeiligen Ausdrücken zu beschäftigen, sollten Sie sich auch mal die m-Option anzusehen – durch sie passen die Anker (^und $) nicht nur auf den Beginn und das Ende der Zeichenkette, sondern auch auf den Beginn und das Ende von Zeilen, also unmittelbar vor und hinter dem Zeilenumbruch. Versichern Sie sich auch, dass Ihr Markup während der Volltextphase ausgeführt wird. Wie kann der Text, den meine Markup-Funktion zurückliefert, noch einmal den Markup-Prozess durchlaufen? Wenn das Ergebnis Ihres Markups weitere Markups enthält, die auch noch behandelt werden sollen, haben Sie zwei Optionen. Die erste ist, ein "wann"-Argument zu wählen, dass vor dem Markup in Ihrem Ergebnis bearbeitet wird. Wenn zum Beispiel Ihr Markup [[links]] zurückliefert, könnte Ihr "wann"-Argument Wie beginne ich mit dem Schreiben von Rezepten und dem Erzeugen von eigenen Markups? (alternative) Einführung in angepasste Auszeichnungen für Anfänger Wie mache ich eine Regel, die einmalig nach der Behandlung aller anderen Regeln angewendet wird? Wenden Sie diese Anweisung anstelle des üblichen
Wikistile anpassenWie kann ich die Unterstreichung von einem Verweis entfernen, aber eine blaue Unterstreichung hinzufügen, wenn die Maus über den Verweise gleitet? Fügen Sie in pub/css/local.css folgende Zeilen hinzu: .noul a {text-decoration: none;} .noul a:hover {text-decoration: underline; color: blue;} Dann benutzen Sie diese Auszeichnung: Ich habe dies versucht, aber 'background' funktioniert nicht, obwohl 'border' und 'float' gehen. $WikiStyle['vMenu']['background']='#ffffcc' ; $WikiStyle['vMenu']['float']='left' ; $WikiStyle['vMenu']['border']='1px dotted red' ; Verwenden Sie Wie setze ich ein Bildchen an die linke Seite eines Absatzes? Ich möchte gern ein Icon einfügen für wichtige Absätze oder Warnungen und Hinweise etc. siehe WikiStylesPlus und Callout. InternationalisierungenWenn mein Wiki internationalisiert ist durch die config.php, wie kehre ich für eine bestimmte Gruppe zu Englisch zurück? Benutzen Sie Wenn mein Wiki in Englisch ist und ich nur eine Seite oder eine Gruppe auf Spanisch haben will, schreibe ich dann 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');
In der Gruppen- oder Seitenkonfigurationsdatei müssen sie dann nur Anmerkung: Obwohl diese Methode leichter zu verwalten ist, ist sie etwas langsamer, weil jedes Mal alle Übersetzungstabellen für jedes Seitenansehen geladen werden, auch wenn sie nicht gebraucht werden. Wofür steht der erste Parameter in dieser Funktion? Wie wird er benutzt? Der XLPage-Mechanismus erlaubt mehrere Übersetzungssätze zu laden, der erste Parameter dient dazu, diesen Satz zu bestimmen. Angenommen, ich will zum Beispiel Übersetzungen für normales Französisch und kanadisches 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 kanada-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 und PmWiki nutzt nur die 'fr'- und 'en'- Übersetzungen (in dieser Reihenfolge), egal, wie viele Übersetzungen mit XLPage() geladen worden sind. Wie kann ich eine Übersetzung für einen individuellen String in einer PHP-Datei hinzufü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 Wenn Sie eine Übersetzung in einer PHP-Datei erhalten wollen, benutzen Sie die $local_string = XL("my English expression"); 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. Lokale AnpassungenEs gibt gar keine "config.php"-Datei, es ist nicht einmal klar, was eine lokale Anpassungsdatei sein soll! Die "sample-config.php"-Datei im "docs"-Verzeichnis ist als Beispiel mitgeliefert. Kopieren Sie sie in das "local"-Verzeichnis und nennen Sie es in "config.php" um. Sie können dann die "#"-Symbole entfernen oder andere Befehle hinzufügen, die Sie in der Dokumentation gesehen haben. Siehe auch Individuelle Einstellungen pro Gruppe. Kann ich die Standardseite auf etwas anderes als Main.HomePage ( Ja, Sie müssen nur die $DefaultPage = 'ABC.StartPage';
Beachten Sie die Empfehlungen zu Wie bekommen ich den Gruppen- oder Seitennamen in eine Anpassungsdatei (z. B. config.php)? Benutzen Sie den folgenden Code für pmwiki-2-1-beta21 oder neuer: ## Hole den Gruppen- und den Seitennamen $pagename = ResolvePageName($pagename); $page = PageVar($pagename, '$FullName'); $group = PageVar($pagename, '$Group'); $name = PageVar($pagename, '$Name'); Beachten Sie die Wichtigkeit der Reihenfolge der Anpassungen in config.php weiter oben, um Probleme mit Zwischengespeichertem zu vermeiden. Wenn Sie den wortgetreuen Seiten- oder Gruppennamen (vom Seitenaufruf des Browsers) sehr früh in config.php brauchen, ist
in Übereinstimmung mit diesem Posting. Kann ich etwas aus meinem wikilib.d/-Verzeichnis löschen? Die Dateien mit den Namen Site.* und SiteAdmin.* enthalten Teile des Interfaces und der Konfiguration und sie sollten nicht entfernt werden. Die anderen Dateien namens PmWiki* oder z. B. PmWikiDe* enthalten die Dokumentation und können entfernt werden. Wie passe ich meine eigene Fehler-404-Seite für nicht vorhandene Seiten an? Um den Text der Nachricht zu ändern, bearbeiten Sie die Seite Site.PageNotFound. Wenn Sie Ihre Site auf eine deutsche Oberfläche umgestellt haben (→ Internationalisierungen), wird die Seite PmWikiDe.PageNotFound statt dessen eingeblendet. Sie sollten dann also diese Seite bearbeiten. Ist die Reihenfolge der Einträge in der config.php-Datei wichtig? Gibt es gewisse Dinge, die vor oder hinter anderen in dieser Datei kommen müssen? Ja, siehe Reihenfolge der Anpassungen in config.php. Individuelle Einstellungen pro GruppeWie kann ich CSS-Stile auf bestimmte Gruppen oder Seiten anwenden? Erzeugen Sie einfach eine pub/css/Group.css- oder pub/css/Group.Page.css-Datei, die die angepassten Stildefinitionen für diese Gruppe oder Seite enthält. Warum sollten Passwörter nicht in Gruppen- oder Seitenanpassungsdateien gesetzt werden? Der Grund für diesen Ratschlag ist, dass Gruppenanpassungsdateien nur für die angezeigte Seite geladen wird. Wenn also
einfügen. Weil nun die GruppeA.php-Datei nicht geladen wird (er hat ja die Seite Main.WikiSandbox → local/Main.php aufgerufen), wird kein Lesepasswort gesetzt. Das gleiche gilt natürlich entsprechend für Seitenapassungsdateien. Ist diese Abarbeitungsreihenfolge nicht befremdlich? Warum wird die Seitenkonfiguration nicht am Schluss geladen (also nach der globalen und der Gruppenkonfiguration)? Was wir oft wollen, ist einer Gruppe von Seiten bestimmte Fähigkeiten zu geben, aber diese Fähigkeiten für eine bestimmte Seite zu unterbinden, als seien die nie eingerichtet worden. Wenn die Gruppenkonfigurationsdatei zuerst bearbeitet wird, wird es sehr mühsam/weitschweifig für die Seitenkonfigurationsdatei, die Effekte der vorigen Datei ungeschehen zu machen. Deshalb laden wir die Seiten- vor der Gruppendatei. Wenn eine Seitenkonfiguration darauf angewiesen ist, dass die Gruppenkonfiguration zuerst geladen wird, kann sie dem Rezept oben folgen (indem sie PHPs 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. SkinvorlagenWie passe ich die CSS-Stile für mein PmWiki-Layout an. Sehen Sie unter Skins nach, wie Sie das Standardwikiskin verändern können. Siehe auch unter Skins, wo weitere vorgefertigte Skins zu finden sind, die man benutzen kann, um das Aussehen der eigenen Site seinem eigenen Geschmack anzupassen. Sie können auch eine Datei local.css im pub/css-Verzeichnis erstellen, um die CSS-Selektoren dort hinzuzufügen (diese Datei wird automatisch eingebunden, wenn sie existiert). Oder Sie fügen Stile direkt in Ihrer lokalen Anpassungsdatei hinzu, indem Sie etwas Folgendes schreiben: $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 Kann man den Titel der Startseite ("HomePage") einfach von der Startseite entfernen/verbergen? Ja, man kann in der Wikiseite den Titel auf Ist es möglich, die Search-Bar in dem Standardskin von PmWiki zu verbergen? Ja, siehe bitte unter Cookbook:HideSearchBar. Web-FeedsWie füge ich dem Feed-Body Text von der Seite hinzu (ganze Seite oder die ersten X Zeichen)? (Und bitte: KEIN markup) function MarkupExcerpt($pagename) { $page = RetrieveAuthPage($pagename, 'read', false); return substr(@$page['text'], 0, 200); } $FmtPV['$MarkupExcerpt'] = 'MarkupExcerpt($pn)'; $FeedFmt['rss']['item']['description'] = '$MarkupExcerpt'; Heißt das, wenn ich die Zeit im RSS-Titel und "summary" im RSS-Body einfügen will, muss ich $FeedFmt['rss']['item']['description'] = '$LastSummary'; $FeedFmt['rss']['item']['title'] = '{$Group} / {$Title} @ $ItemISOTime';
Wie nutze ich das RSS-<enclosure>-Tag für Podcasting? Für Podcasting von mp3-Dateien hängen Sie einfach eine mp3-Datei an die Seite an, und zwar mit dem gleichen Namen wie die Seite (z. B. für eine Seite namens Podcast.Episode4 würden Sie eine Datei namens "Episode4.mp3" an die Seite anhängen). Die Datei wird automatisch durch ?action=rss aufgenommen und als eine Anlage behandelt. Der Satz an möglichen 'enclosures' (Anlagen) ist vom $RSSEnclosureFmt-Array vorgegeben, demnach erlaubt $RSSEnclosureFmt = array('{$Name}.mp3', '{$Name}.wma', '{$Name}.ogg');
Podcasting in mp3-, wma- und ogg-Formaten. Wie füge ich eine Zusammenfassung ("summary") zum Titel in einem RRS-Feed hinzu (d. h. mit Fügen Sie diese Zeile in Ihre local/config.php-Datei ein: $FeedFmt['rss']['item']['title'] = '{$Group} / {$Title} : $LastModifiedSummary';
Wie füge ich die Beschreibung ("description") zum Titel und die "summary" zum Body hinzu? Fügen Sie diese Zeilen in Ihre local/config.php-Datei ein: $FeedFmt['rss']['item']['title'] = '{$Group} / {$Title} : {$Description}';
$FeedFmt['rss']['item']['description'] = '$LastModifiedSummary';
Bemerkungen:
Einige meiner passwortgeschützten Seiten erscheinen nicht im Feed... wie umgehe ich das? Pms Antwort auf eine ähnliche Frage in der Newsgroup: Beim letzten Mal, als ich das überprüft habe, hatten RSS und andere Syndication-Protokolle kein wohl etabliertes Interface oder Mechanismen für die Durchführung von Zugriffkontrollen (d. h. Authentifikation). So weit ich weiß, ist das noch immer der Fall. PmWikis Web-Feed-Fähigkeiten ist auf Seitenlisten aufgebaut, so ist es gut möglich, das die Die "Kehrseite" zum Setzen der Variablen Sie könnten if ($action == 'rss') $EnablePageListProtect = 0;
Das schränkt die Möglichkeit, geschützte Seiten zu sehen, auf die RSS-Feeds ein. Normale Seitenlisten und Suchergebnisse sehen diese Seiten nicht. Letztlich ist es auch möglich, das Web-Feed so zu konfigurieren, dass es die Authentifikations-Informationen direkt aus dem URL bezieht, wie in .../Site/AllRecentChanges?action=rss&authpw=secret Der große Nachteil ist, dass das Passwort im Klartext mit jedem RSS-Aufruf durch das Netz wandert und endet darin, dass es in Apaches Access-Logs gespeichert wird. Wie fügt man Feed-Bilder hinzu? Fügen Sie diese Zeilen in Ihre local/config.php-Datei ein (das Beispiel ist für $FeedFmt['rss']['feed']['image'] = " <title>Logo title</title> <link>https://example.com/</link> <url>https://example.com/images/logo.gif</url> <width>120</width> <height>60</height>"; Vergessen Sie nicht, NICHT mit einem "<" zu beginnen (sondern mit einem Leerzeichen), da es sonst kein <image>-Tag darumherum gäbe... siehe hier.
Wie füge ich RRS-News-Feeds in eine PmWiki-Seite ein? Wie kann ich Standard-Feed-Optionen in einer Konfigurationsdatei setzen anstatt dass ich sie jedesmal in den URL setze? Wenn Sie zum Beispiel if ($action == 'rss') SDVA($_REQUEST, array( 'group' => 'News', 'order' => '-time', 'count' => 10)); Gibt es Wege, wie Besucher leicht ein Web-Feed abonnieren können? In einigen Browser (Mozilla Firefox) können Besucher ein orangenes RSS-Icon in der Adresszeile sehen und abonnieren den Feed, indem sie darauf klicken. Um RSS-Icons zu aktivieren, fügen Sie diese Zeilen in Ihre local/config.php-Datei ein: $HTMLHeaderFmt['feedlinks'] = '<link rel="alternate" type="application/rss+xml" title="$WikiTitle" href="$ScriptUrl?n=Site.AllRecentChanges&action=rss" /> <link rel="alternate" type="application/atom+xml" title="$WikiTitle" href="$ScriptUrl?n=Site.AllRecentChanges&action=atom" />'; Sie können auch einen solchen Verweis zum Beispiel in ihre SideBar setzen: Kann ich ein RSS-Feed für einzelne Seiten-Versionen erzeugen? See Cookbook:PageFeed. Wie erzeuge ich eine Feed-Seite ähnlich wie RecentChanges oder AllRecentChanges, die aber nur bestimmte Gruppen oder Seiten enthält? Siehe Cookbook:CustomRecentChanges. In Kürze: Sie deklarieren eine if (PageVar($pagename, '$Group')!='ForbiddenGroup') { $RecentChangesFmt['Site.MyFeedPage'] = '* [[{$FullName}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]'; } Wie kann ich mein RSS-Feed updaten, um jede Änderung an einer Seite zu zeigen und nicht nur neu erzeugte Seiten? Fügen Sie einen einzigartigen GUID-Verweis für jede Änderung in Ihre local/config.php-Datei ein (siehe PITS-Eintrag): $FeedFmt['rss']['item']['guid'] = '{$PageUrl}?guid=$ItemISOTime'; Alternativ können Sie die Option für Änderungsüberwachungen erzeugen, indem sie einen Qualifier für RSS-Links hinzufügen. Das erlaubt den Besuchern zwischen Standard-neue Seiten-RSS-Feeds und neue Änderungen-RSS-Feeds zu wählen (in PmWiki ist diese Option aktiviert): ## For new pages updates: https://example.com/wiki/HomePage?action=rss ## For edits updates: https://example.com/wiki/HomePage?action=rss&edits=1 if(@$_REQUEST['edits'] && $action == 'rss') $FeedFmt['rss']['item']['guid'] = '{$PageUrl}?guid=$ItemISOTime'; WikifarmenWie kommt es, dass ich meine Autorisierung behalte, wenn ich in ein anderes Wiki innerhalb der Farm wechsle? PmWiki nutzt PHP-Sessions um Autentifikations- und Autorisierungsinformationen zu behalten und per Standard richtet PHP die Dinge so ein, dass alle Interaktionen mit dem gleichen Server als Teil der gleichen Sitzung (Session) angesehen werden. Ein einfacher Weg, das zu bereinigen, ist sicherzustellen, dass jedes Wiki einen eigenen Cookienamen für seine Sessionidentitität benutzt. Nahe des Anfangs einer local/config.php-Datei eines Wikis, bevor "authuser" oder irgend ein anderes Rezept aufgerufen wird, fügen Sie eine Zeile wie die folgende ein: session_name('XYZSESSID');
Sie können irgend einen alphanumerischen Namen für XYSESSID einsetzen, für ein Wiki "cs559-1" würden Sie vielleicht dies wählen: session_name('CS559SESSID');
Das wird die Sitzungen unabhängig voneinander halten. ProblemlösungenWie kann ich Fehler verfolgen und wissen, ob sie vom PmWiki-Kern oder von einer lokalen Konfiguration oder von AddOns/Rezepten herrührt. Die PHP-Programmiersprache hat unlängst einige Funktionen entfernt oder missbilligt, die PmWiki in der Vergangenheit häufig in AddOns/Rezepten/Skins eingesetzt hat. Der PmWiki-Kern stützt sich nicht mehr auf diese Funktionen, aber einige AddOns tun es weiterhin – hier wird gezeigt, wie Sie sie identifizieren. Die PmWiki-Architektur erlaubt AddOns (Rezepte, Skins) und lokalen Konfigurationen Aktionen anzumelden, die PmWiki zu einem späteren Zeitpunkt ausführen soll. So kommt es, dass die PHP-Warnung eine Zeile in der pmwiki.php-Datei anzeigt, auch wenn diese von einem Rezept verursacht wird. Es wird empfohlen, die jüngsten Versionen von PmWiki und all Ihrer Rezepte zu benutzen – bekannte Probleme könnten schon bereinigt worden sein. Nehmen wir an, der Fehler taucht bei den jüngsten Versionen auf. (1) Zuerst deaktivieren Sie alle AddOns und lokale Konfigurationen (config.php, farmconfig.php, Group.php) – kommentieren Sie sie aus – und testen Ihr Wiki. Wenn die Warnungen bleiben, benachrichtigen Sie uns so schnell wie möglich mit den Informationen, wie der Fehler reproduziert werden kann und wie Ihre Installation (PHP-Version) aussieht. Wenn der Fehler nicht mehr auftaucht, gehen Sie über zu (2). (2) Aktivieren Sie eine lokale Konfiguration oder ein AddOn und testen Sie ihr Wiki, um zu sehen, ob der Fehler auftaucht. (3) Wenn der Fehler nicht auftaucht, ist die Ursache des Fehlers wohl woanders. Wenn Sie weitere AddOns aktivieren könnten, gehen Sie zurück zu (2). (4) Wenn der Fehler aufgetaucht ist, wird er womöglich durch das letzte AddOn oder die letzte Konfiguration verursacht, die Sie aktiviert haben. Durchsuchen Sie die Dokumentation und das Kochbuch nach jüngeren Versionen oder kontaktieren Sie den Autor, der sich um die Wartung und Pflege des Addons kümmert, oder hinterlassen Sie eine Nachricht in der "talk page". Wenn das nicht funktioniert, kontaktieren Sie uns in unserem Problemverfolgungssystem (PITS). Entwickler finden Dokumentationen dazu, wie sie ältere AddOns updaten können, unter Eigene Auszeichnungen und Funktionen. (5) Deaktivieren Sie das fehlerhafte AddOn wieder und wenn es weiter AddOns gibt, die Sie aktivieren möchten, gehen Sie zu zurück (2). PmWiki hat eine freundliche und reagierende Gemeinschaft und wir könnten in der Lage sein, rasch Lösungen bereitzustellen. Mein Wiki zeigt die Warnung "Deprecated: Function create_function() is deprecated" an. PHP Version 7.2 missbilligte eine Funktion, die PmWiki für Markupdefinitionen und Musterersetzungen benutzt. Es wird empfohlen, PmWiki auf die jüngste Version zu aktualisieren und alle Addons und Skins aus den Kochbüchern? aufzufrischen. Addons in der Kategorie PHP 7.2 werden als kompatibel mit PHP 7.2 angesehen. Wenn Sie ein gewisses Addon brauchen, das noch nicht aufgefrischt wurde, kontaktieren Sie uns. Um Ihre eigenen Addons aufzufrischen, müssen Sie womöglich Ihre Aufrufe von Markup() erneuern, siehe die Seiten Eigene Auszeichnungen, Funktionen und Angepasste Seitenlistenreihenfolge. Das Rezept PccfToPcfOverride kann eine vorübergehende Lösung liefern, bis Sie all Ihren Add-Ons ein Update verpasst haben. Beachten Sie, dass PmWiki selbst diese Funktion nicht nutzt, aber (ältere) AddOns könnten Instruktionen anmelden, die erst später abgearbeitet werden sollen. So kommt es, dass die Warnung eine Zeile in pmwiki.php aufzeigt, selbst wenn sie durch eine lokale Konfiguration oder ein AddOn ausgelöst wurde. Wie Sie herausfinden können, welches Addon die Warnung hervorbringt, finden Sie in dem ersten Abschnitt. Mein Wiki zeigt eine Warnung an: "Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead". Das wird von einer Änderung in PHP Version 5.5 für die preg_replace()-Funktion verursacht. PmWiki beruht seit Version 2.2.56 nicht länger auf dem überholten Feature (es wird empfohlen auf die jüngste Version aufzufrischen), aber viele Rezepte tun es noch. Beachten Sie, dass PmWiki selbst diese Funktion nicht nutzt, aber (ältere) AddOns könnten Instruktionen anmelden, die erst später abgearbeitet werden sollen. So kommt es, dass die Warnung eine Zeile in pmwiki.php aufzeigt, selbst wenn sie durch eine lokale Konfiguration oder ein AddOn ausgelöst wurde. Rezepte und Oberflächen (Skins) werden derzeit aufgefrischt auf PHP 5.5. Sehen Sie nach, ob der Autor eine jüngere Version im Kochbuch veröffentlicht hat. Wenn Sie Ihr PmWiki und Ihre Rezepte aufgefrischt haben und die Warnung noch immer erscheint, finden Sie so heraus, welches Rezept die Warnung verursacht: Für die PmWiki-Version 2.2.71 oder jüngere Versionen schalten Sie in der config.php-Datei das Diagnosewerkzeug ein: Wenn die Bedenken Sie, dass viele Provider erlauben, verschiedene Versionen von PHP einzusetzen. Sehen in der Dokumentation ihres Hosters nach, um zu erfahren, wie eine PHP-Version vor 5.5 eingestellt werden kann. Schließlich: es ist möglich, die Warnungen zu unterdrücken. Setzen Sie dazu diese Zeile an den Anfang Ihrer config.php: Siehe Kategorien PHP 5.5, PHP 7.2, PHP 7.4. Mein Wiki Zeigt Warnungen an: "PHP Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format". Möglicherweise haben Sie Konfigurationseinstellungen, die in älteren PHP-Versionen funktionierten. Hier wird gezeigt, wie Sie sie aufspüren und wie Sie versuchen können, sie zu berichtigen. In Ihrer (farm)config.php-Datei oder anderen lokalen Dateien oder in Cookbook-Dateien können Sie jeden Aufruf von Außerdem sollten Sie, wenn Sie Passwörter mit einem Stern (*) gesperrt haben, diese Sterne durch Die Einige Ihrer Seitendateien könnten immer noch die alte Sternsperrung haben. Dateien, die in der Vergangenheit mit der Sternsperrung ausgeliefert wurden, sind Site.GroupAttributes, SiteAdmin.GroupAttributes, Site.AuthUser und/oder PmWiki.GroupAttributes in den Verzeichnissen wikilib.d und/oder wiki.d. Sie müssten Sie in einem Texteditor bearbeiten und jegliche Zeilen unter den folgenden ersetzen: Bearbeiten Sie die Datei und ersetzen Sie den Stern (*) durch das Wort Nach einem PHP-Upgrade sind einige meiner Seiten völlig leer, einige haben leere oder fehlende Abschnitte, aber die Sidebar und die Aktionslinks sind sichtbar. Manchmal wird das verursacht durch unzureichende Dateirechte auf dem Server. Der PHP-Prozess braucht Schreib-/Lese-Rechte (rw) für alle Dateien im wiki.d- und im uploads-Verzeichnis und Leserechte (r) für die Dateien im Wikilib.d-Verzeichnis sowie das Recht, in ein Verzeichnis zu wechseln (x) für diese Verzeichnisse. Ziehen Sie die Dokumentation Ihres Providers zurate, um mehr zu erfahren. Außerdem kann das durch eine Änderung in PHP 5.4 verursacht sein, die die Funktion htmlspecialchars() berührt. Die einfachste vorübergehende Abhilfe wäre, in Ihrer default_charset = "windows-1252" Oder manchmal funktioniert dies in local/config.php: ini_set("default_charset", "windows-1252"); Eine dauerhaftere Abhilfe wäre, Ihre PmWiki-Installation auf eine jüngere PmWiki-Version upzugraden, ebenso ihre Rezepte – und in Ihren eigenen Rezepten ersetzen Sie alle Aufrufe von Eine leere Seite kommt von der Tatsache, dass in PHP 5.4 die Standardkodierung von einer 8-bit-Kodierung zu einer validierten UTF-8-Kodierung mit variabler Byteanzahl umgeschaltet wurde und dass ein ungültiger UTF-8-String zurückgewiesen wird. Wenn Ihr Wiki eine 8-Bit-Kodierung benutzt, ist es so gut wie sicher, dass das kein gültiges UTF-8 ist. Schlimmer, selbst wenn Sie UTF-8 nutzen, könnten manche Browser ungültige Bits übertragen. Deshalb gibt die PHSC()-Funktion immer vor, dass sie eine 8-bit-Kodierung übersetzt, in der alle Bits gültig sind. Sehr lange Seiten mit tausenden von Zeilen könnten leer erscheinen nach dem Hinzufügen einiger zusätzlicher Zeilen. Das können vorformatierter Text, Tabellen, Text innerhalb bedingter Auszeichnungen oder Text in einer eigenen Auszeichnung sein. Das kann verursacht sein von den PHP-Beschränkungen, wie weit man beim Suchen nach Übereinstimmungen in regulären Ausdrücken voraussehen und zurück gehen kann. Sie könnten die sehr lange Seite in mehrere Seiten oder die sehr lange bedingte oder eigene Auszeichnung in separate Abschnitte/Blöcke zerlegen oder Sie könnten die PHP-Begrenzungen erhöhen, indem Sie das Folgende zur local/config.php-Datei hinzufügen: Warum sehe ich befremdliche Fehler nach einem Upgrade? Versichern Sie sich, dass alle Dateien erneuert wurden, insbesondere Diese Frage taucht manchmal auf, wenn ein Administrator nicht dem Rat gefolgt ist, der auf den Seiten zur Installation und zu ersten Einstellungen gewöhnlich wenig hervorgehoben ist, und die Datei pmwiki.php umbenannt hat anstatt ein index.php-Wrapper-Skript zu schreiben. Wenn Sie pmwiki.php in index.php umbenannt haben, hat das Upgrade Ihre index.php-Datei nicht erneuert. Löschen Sie die alte Version (index.php) und erzeugen Sie ein index.php-Wrapper-Skript, dann kann das nicht wieder vorkommen. Manchmal versagt ein FTP- oder ein anderes Kopierprogramm dabei, alle Dateien ordentlich zu übertragen. Eine Möglichkeit, das zu überprüfen, ist der Vergleich der Dateigrößen. Vergewissern Sie sich, dass auch die Dateien im wikilib.d/-Verzeichnis erneuert worden sind. Manchmal ist es eine gute Idee, das wikilib.d/-Verzeichnis vor dem Upgrade zu löschen. (Lokale Kopien der Dateien werden in wiki.d/ und nicht in wikilib.d/ gespeichert.) Vergewissern Sie sich, dass die Dateirechte richtig gesetzt sind. Die offiziellen Dateien haben einen eingeschränkten Satz von Rechten, die vielleicht nicht für Ihre Site passen. Wenn Sie ein angepasstes Muster für Ich bekomme plötzlich Nachrichten wie " Etwas (oder jemand) hat die Rechte an der wiki.d/.flock-Datei oder dem wiki.d/-Verzeichnis verändert, sodass der Webserver nicht mehr in der Lage ist, die "Lock"-Datei zu schreiben. Die normale Lösung ist, die .flock-Datei einfach aus dem wiki.d-Verzeichnis zu löschen — PmWiki wird dann eine neue Datei anlegen. Überprüfen Sie aber auch die Rechte am Verzeichnis wiki.d/ selbst. (Man kann die Rechte am wiki.d/-Verzeichnis mit FileZilla (open-source FTP-Programm) leicht prüfen und ändern, indem man auf die Datei mit der rechten Maustaste klickt → File attributes (Dateirechte)). Meine Verweise in der Sidebar scheinen auf nicht existierende Seiten zu zeigen, obwohl ich genau weiß, dass ich sie angelegt habe. Wo sind die Seiten? Verweise in der Sidebar müssen mit einer Wikigruppe qualifiziert sein, damit sie ordentlich funktionieren (benutzen Sie [[Gruppe/Seite]] anstatt [[Seite]]. Warum sehe ich die Nachricht " Wenn das der erste oder einzige angezeigte Fehler ist, ist das gewöhnlich ein Zeichen dafür, dass vor dem Wenn Sie die Datei speichern, sollte der Zeichensatz entweder cp1252/Windows1252 oder UTF-8 ohne BOM (Byte Order Mark) sein. notepad++ ist ein Editor, der das leistet. Wenn Sie die Dateien übertragen, stellen Sie in Ihrem FTP-Programm die Übertragung im Textmodus ein oder, wenn das nicht hilft, im Binärmodus. Wenn die Warnung nach anderen Warnungen oder Fehlermeldungen erscheint, lösen Sie zuerst die anderen Probleme und die Warnung dürfte verschwinden. Wie bekomme ich eine PHP-Warnung über Sie sehen eine Fehlermeldung wie diese: Warning: session_write_close() [function.session-write-close]: open(/some/filesystem/path/to/a/directory/sess_[...]) failed: No such file or directory (2) in /your/filesystem/path/to/pmwiki.php on line NNN PmWiki benutzt manchmal PHPs session-handling-Funktionen zum Verfolgen der Sitzung. Damit die Verfolgung der Sitzung funktioniert, müssen Informationen in einem Verzeichnis auf dem Server gespeichert werden. Das Verzeichnis muss existieren und die Webserver-Software muss Schreibrechte für dieses Verzeichnis haben. Für diese Beispiel sei die Webserversoftware so konfiguriert, dass es die Daten in das Verzeichnis /ein/dateisystem/pfad/zu/einem/verzeichnis/
schreibt, aber das Verzeichnis existiert nicht. Die Lösung ist, wenigstens eine der folgenden Alternativen auszuführen:
Warum fordert mich PmWiki mehrfach zur Eingabe eines Passwortes auf, das ich schon längst eingegeben habe? Das kann wie aus dem Nichts passieren, wenn Ihr Provider/Hoster ein Upgrade auf PHP 5.3 vorgenommen hat und Sie ein älteres PmWiki benutzen. Eine jüngere PmWiki-Ausgabe wird das Problem lösen. Alternativ kann das ein Zeichen dafür sein, dass der Browser keine Cookies akzeptiert oder dass PHPs Sitzungsbehandlungsfunktionen auf dem Server nicht sauber konfiguriert sind. Wenn der Browser Cookies akzeptiert, versuchen Sie Sehen Sie auch bei der Frage Ich muss mich zweimal einloggen weiter unten nach. Ich habe config.php bearbeitet, aber wenn ich auf meine Wikiseiten sehe, sehe ich nur" Sie haben einen Fehler in dem PHP-Code gemacht, den Sie in die config.php eingefügt haben. Der häufigste Fehler, der zu einem T_VARIABLE-Fehler führt, ist ein vergessenes Semikolon am Ende einer hinzugefügten Zeile. Der Dateiname und die Zeilennummer zeigen, wo sie nach dem Fehler suchen müssten. Suchen und Seitenlisten hörten auf zu funktionieren, nach dem ich ein Upgrade gemacht habe — Fehler werden nicht gemeldet, aber Verweise auf andere Seiten erscheinen nicht (oder erscheinen nicht so wie sie sollten) — was ist da los? Gehen Sie sicher, dass auch alle Dateien aus dem wikilib.d/-Verzeichnis ersetzt wurden. Insbesondere hört sich das so an, als fehlte die Site.PageListTemplates-Seite (wenn keine Verweise auftauchen) oder als sei es eine ältere Version (wenn die Verweise nicht erscheinen wie sie sollten). Stellen Sie auch sicher, dass Leserechte (attr) für die Seiten Site.PageListTemplates und Site.Search gesetzt sind. Einige meiner Einträge (posts) kommen mit "403 Forbidden"-Fehlern, "Not Acceptable" oder "Internal Server Error" zurück. Ihr Server hat möglicherweise mod_security aktiviert. Das mod_security-"Feature" scannt alle hereinkommenden Einträge auf verbotene Wörter oder Phrasen, die anzeigen, dass jemand versucht, das System zu hacken. Wenn nur eines davon auftaucht, gibt Apache den "403 Forbidden"- oder "406 Not Acceptable"-Fehler zurück. Gewöhnlich sind es Phrasen wie "curl", "wget", "file(" und "system(", die tendenziell mod_security anstoßen, obwohl es noch viele weitere gibt (abhängig von der Konfiguration, Prozentzeichen, HTML-Tags, internationalen Zeichen). Da mod_security die Seitenanforderung (request) unterbricht und die "forbidden"-Nachricht zurücksendet, bevor PmWiki je eine Chance hatte zu starten, ist es kein Fehler in PmWiki, und es gibt wenig, was PmWiki dagegen tun kann. Stattdessen muss man die Webserverkonfiguration ändern, um mod_security zu deaktivieren oder man konfiguriert mod_security so um, dass es die verbotenen Wörter erlaubt. In einige Sites ist es möglich, mod_security zu deaktivieren, indem Ich erhalte folgende Nachricht, wenn ich versuche ein Bild hochzuladen. Was kann ich tun?
Ihr Server ist mit dem aktivierten PHP-Safe-Mode konfiguriert. Konfigurieren Sie Ihr Wiki so, dass es ein site-weiten Upload-Präfix nutzt, erzeugen Sie dann das upload/-Verzeichnis manuell und setzen Sie die Rechte auf 777 (anstatt PmWiki das Verzeichnis anlegen zu lassen). Ich sehe neuerdings "Division by zero error in pmwiki.php..." auf meiner Site. Was ist da los? Es ist ein Fehler, der mit Tabellen-Auszeichnungen und nur bei Versionen von PHP >= 4.4.6 oder >= 5.2.0 auftaucht. Oft scheint er "aus dem Nichts" aufzutauchen, weil der Serveradministrator ein stilles Upgrade von PHP vorgenommen hat. Versuchen Sie ein Upgrade auf eine spätere PmWiki-Version, um den Fehler zu beseitigen oder versuchen Sie, das Folgende in local/config.php einzutragen:
Ich muss mich zweimal (2-mal) einloggen. –oder– Mein Passwort wird nicht verlangt, obwohl das eigentlich so sein sollte. –oder– Ich habe mein Passwort geändert, aber es ist immer noch das alte aktiv. –oder– Mein config.php-Passwort überschreibt nicht mein farmconfig.php-Passwort. Das kann passieren, wenn (farm)config.php oder ein eingefügtes Rezept die Funktion CondAuth() oder RetrieveAuthPage(), PageTextVar(), PageVar() und mögliche andere Funktionen direkt aufruft, bevor (das nötige) AuthUser eingefügt wurde. Die Reihenfolge in config.php ist sehr ausschlaggebend. Beim Bearbeiten einer vorhandenen Seite verursacht das "Save" ein Nicht-Antworten des Servers (nicht eine leere Seite, gar keine Antwort, ein endloser Versuch, eine Verbindung aufzubauen). Um davon wegzukommen, ist es nötig, eine andere Seite aufzurufen (z. B. durch einen Klick auf deren Link im Menü). Und Horror!, die ...?action=edit ist blockiert, es wird unmöglich, eine Seite zu bearbeiten. Wenn das Speichern einer bearbeiteten Seite eingeleitet wird, wird eine (versteckte) Datei namens Ich erhalte den Fehler "Data Mismatch - Locking FAILED!" Das ist wahrscheinlich kein PmWiki-Fehler. PmWiki kann wegen eines zugrundeliegenden Dateisystemproblems keine Sperrdatei erzeugen. Zum Beispiel ist die 'disk quota' ausgeschöpft (z. B. durch eine Fehlerlogdatei oder durch hochgeladene Dateien), oder es gibt Probleme mit den Schreibrechten im Dateisystem. Beantwortete FragenWarum verwenden wir kein Forum statt dieser "AQ" Seite? Weil die Foren (BBS) großartig für Diskussionen geeignet sind, aber manchmal dürftig, um Ergebnisse zu entwickeln undfestzuhalten. Warum soll man die Antwort nicht auf eine Seite schreiben, die zur Frage gehört? Sollst Du. Aber wenn Du nicht so recht weißt, wohin mit der Information, schreibe sie hierhin. Diese Seite stellt wenigstens einen Platz zur Verfügung, bis die Antwort an die richtige Stelle verschoben wird. In der Zwischenzeit kann man die Antwort wenigstens hier finden. BenutzerautorisierungKann ich Autorisierungsgruppenzugehö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 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 PmWikiDe.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 ( für 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 Autorisierung 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 Autorisierungsrechte. 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'] = pmcrypt('secret'); $DefaultPasswords['admin'] = 'id:carol'; Ein Benutzername und ein Passwort werden dann beide 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 registrieren können über AuthUser? Sie können in zwei Kochbüchern nach Rezepten sehen, die dieses Feature anbieten: in HtpasswdForm und UserAdmin. 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. Passwörter verwaltenEs 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 pmcrypt()-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 passwd-formatierte Dateien (wie .htpasswd) für die Authentifizierung? Siehe AuthUser, Cookbook:HtpasswdForm oder Cookbook:UserAuth2. 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 Konfigurationsdateien 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
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-( Legen Sie einfach eine neue Seite an (Site.AttrForm?), und fügen Sie die folgende Zeile in config.php ein:
Beachten Sie, dass das nur den Text über den Eingabefeldern ändert und nicht die Eingabefelder selbst – die Eingabefelder 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. 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
Anmerkungen zum AufbauWarum nutzt PmWiki keine hierarchischen / verschachtelten Gruppen? Die Frage bricht herunter auf die Frage, wie man mit Seitenverweisen zwischen verschachtelten Seiten umgehen könnte. Wenn jemand einen offensichtlichen, intuitiven Weg findet, wie Autoren Verweise setzen könnten, werden verschachtelte Gruppen plausibel. Siehe Anmerkungen zum Aufbau und Hierarchische Gruppen. Warum haben PmWikis Skripten kein schließendes ?> Tag? Allen PmWiki-Skripten fehlt jetzt ein schließendes ?> Tag. Das Tag ist nicht erforderlich und der Wegfall vermeidet Probleme mit nicht wahrgenommenen Leerzeichen oder leeren Zeilen am Dateiende. Außerdem könnten einige FTP-Programme das/die Zeilenendezeichen in der Datei verändern, was ebenso zu Problemen führen kann. Siehe auch die Abgrenzung von Anweisungen-Seite im PHP-Handbuch. Unterstützt PmWiki WYSIWYG-Bearbeiten (oder etwas wie den FCKEditor}? Kurze Antwort: PmWiki unterstützt GUI-Schaltflächen für die gängigen Formatierungen, hat aber andererseits keinen WYSIWYG-Editor. Die Gründe dafür stehen in WYSIWYG.
Übersetzung von PmWiki.FAQ, Originalseite auf PmWikiDe.FAQ — Backlinks
|