Aktuelle Änderungen - Suchen:

PmWiki (deutsch) für die Liste aller Seiten


Englisch:

FAQ

 s au engl PmWikiAnweisung

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 Dokumentationsindex.

Problemlösungen

Wie kann ich Fehler verfolgen und wissen, ob sie vom PmWiki-Kern oder von einer lokalen Konfiguration oder von AddOns/Rezepten herrühren?

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 Sie 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.

Nach einem PmWiki-Upgrade erscheinen Warnungen "Token invalid or missing" und die Änderungen werden nicht gespeichert.

Einige lokale Anpassungen könnten ein Update erfordern, bitte sehen Sie hier nach Upgrades#pmtoken.

Nach Upgrades der Website, des Hostings oder des Browsers funktionieren einige Skin-Stile/-Farben und möglicherweise lokale Stile, Rezepte und eingebettete Bilder nicht mehr.

Wenn Sie in Ihrer lokalen Konfiguration die Variablen $PubDirUrl oder $FarmPubDirUrl mit dem http://-Schema definiert haben, ersetzen Sie es durch https://. Auf sicheren Websites laden die jüngsten Browser keine Inhalte von unsicheren URLs.

Nach einem PHP-Upgrade sind einige meiner Regeln deaktiviert worden und ein Tooltip sagt mir (in Englisch) "Markup rule ... is obsolete and has been disabled. See pmwiki.org/Troubleshooting".

Die überholte Markup-Regel sollte in dem Tooltiptitel erscheinen und sollte es einfach machen zu identifizieren, welche eigene Konfiguration oder welches Addon/Rezept diese Meldung verursacht hat. Wenn das nicht offensichtlich ist, folgen Sie den Schritten in dem ersten Abschnitt. Entwickler können die Dokumentation, wie man alte Addons verbessert, in Eigene Auszeichnungen und Funktionen finden.

Mein Wiki zeigt die Warnung an: "Deprecated: Function create_function() is deprecated".

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:
$EnableDiag = 1;
Besuchen Sie dann Ihr Wiki mit der Aktion 'ruleset', zum Beispiel https://www.pmwiki.org/wiki/PmWiki/PmWiki?action=ruleset oder folgen Sie einem Verweis wie
[[Main.HomePage?action=ruleset]]. Diese Seite listet alle Markup-Regeln auf. Jene, die potentiell mit PHP 5.5 unverträglich sind, werden mit dem Dateinamen, der Zeilennummer und dem Suchmuster, das diese Warnung verursacht hat, gekennzeichnet.

Wenn die ?action=ruleset-Seite keine so gekennzeichneten Regeln aufführt, kann es sei, dass entweder die Rezepte die preg_replace()-Funktion direkt aufrufen oder sie definieren Suchen&Ersetzen-Muster in unverträglicher Art und Weise. In solchen Fällen sollte Ihre Warnung den Dateinamen und die Zeilennummer enthalten und wenn nicht, konsultieren Sie den ersten Abschnitt, um dem Fehler auf die Spur zu kommen.

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:
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
Das sollte aber nur eine vorübergehende Lösung sein, die nur solange bestehen bleiben sollte, bis Ihre Rezepte repariert worden sind.

Siehe Kategorien

.

Mein Wiki zeigt Warnungen an: "PHP Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format" oder "Uncaught ArgumentCountError: crypt() expects exactly 2 arguments, 1 given".

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 crypt() durch pmcrypt() ersetzen, z. B.:
$DefaultPasswords['edit'] = crypt("my_password"); # DEPRECATED/MISSBILLIGT
$DefaultPasswords['edit'] = pmcrypt("my_password"); # OK
$DefaultPasswords['edit'] = array(pmcrypt("pass1"), pmcrypt("pass2")); # OK

Außerdem sollten Sie, wenn Sie Passwörter mit einem Stern (*) gesperrt haben, diese Sterne durch @lock ersetzen:
$DefaultPasswords['edit'] = '*'; # DEPRECATED/MISSBILLIGT
$DefaultPasswords['edit'] = '@lock'; # OK (und kein pmcrypt)

Die $DefaultPasswords-Variablen haben gewöhnlich Schlüsselwörter wie 'edit', 'attr', 'read', 'upload, 'publish'.

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:
passwdedit=*
passwdattr=*
passwdread=*
passwdpublish=*
passwdupload=*

Bearbeiten Sie die Datei und ersetzen Sie den Stern (*) durch das Wort @lock in jeder der existierenden Zeilen. Fügen Sie diese Zeilen nicht hinzu, wenn Sie noch nicht existieren, und verändern Sie keine Zeilen, die nach dem Gleichheitszeichen ('=') etwas anderes enthalten als den Stern. Speichern Sie die Seite, laden Sie sie wieder hoch in Ihr Wiki und die Warnungen sollten verschwinden. (Wenn Sie eine Wiki-Farm betreiben, könnten Sie diese Dateien in mehreren wiki.d-Verzeichnissen haben.)

Mein Wiki zeigt Warnungen an: "Compilation failed: invalid range in character class".

Ein Zeichenklassenbereich (character class range) ist etwas in eckigen Klammern wie [A-Z]. Eine ungültige Zeichenklasse könnte so aussehen: [Z-A], wo das "Z"-Zeichen nicht vor dem "A"-Zeichen kommen sollte. Es ist vielleicht nicht so offensichtlich, aber es wäre innerhalb von eckigen Klammern mit einem Bindestrich zwischen den falschen Zeichen.

Wenn Sie tatsächlich eher einen Bindestrich (ein Minus) finden wollen anstelle eines Zeichenbereichs, müssten sie ihn (es) an den Anfang oder das Ende stellen:
[-AZ] oder [AZ-]

Um den Fehler aufzuspüren, siehe die erste Frage auf dieser Seite. Prüfen Sie außerdem die Variablen $GroupPattern, $NamePattern, $MakePageNamePatterns, $ROSPatterns und andere lokal konfigurierten Kern-Variablen, die in ihrem Namen "Pattern" oder "Patterns" enthalten.

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 php.ini oder in .user.ini die default_charset-Direktive auf einen 8-bit-Zeichensatz zu setzen, z. B. cp1252:

       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 htmlspecialchars() durch PHSC(), eine PmWiki-Hilfsfunktion für solche Fälle.

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:
@ini_set('pcre.backtrack_limit', 10000000);

Warum sehe ich befremdliche Fehler nach einem Upgrade?

Versichern Sie sich, dass alle Dateien erneuert wurden, insbesondere pmwiki.php und alle Dateien im scripts/-Verzeichnis.

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 von 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 $GroupPattern benutzen, sorgen Sie dafür, dass es Site ($SiteGroup) und seit PmWiki 2,2 auch SiteAdmin ($SiteAdminGroup) enthält. Ansonsten könnte die Eingliederung (des Upgrades) versagen (z. B. fehlende SiteAdmin-Gruppe für PmWiki 2.2 und später) und/oder Login funktioniert nicht.
Zusätzlich sollte auch Main ($DefaultGroup) hinzugefügt werden.

Ich bekomme plötzlich Nachrichten wie "Warning: fopen(wiki.d/.flock): failed to open stream: Permission denied..." und "Cannot acquire lockfile" ... Was ist verkehrt?

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]].
Und schreiben Sie SideBar mit einem großen 'B'.

Warum sehe ich die Nachricht "PHP Warning: Cannot modify header information - headers already sent ..." oben auf meiner Seite.

Wenn die Warnung nach anderen Warnungen oder Fehlermeldungen erscheint, lösen Sie zuerst die anderen Probleme und die Warnung dürfte verschwinden.

Wenn das der erste oder einzige angezeigte Fehler ist, ist das gewöhnlich ein Zeichen dafür, dass vor dem <?php oder hinter dem ?> in einer Anpassungs-Datei wie config.php zusätzliche Leerzeichen oder leere Zeilen vorhanden sind. Überprüfen Sie die Dateien noch einmal und versichern Sie sich, dass es keine zusätzliche Zeichen, Leerzeichen oder leere Zeilen vor dem einleitenden <?php gibt. Es ist oft am einfachsten und am sichersten, alle schließenden ?> einfach zu löschen und wegzulassen.

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.

Wie bekomme ich eine PHP-Warnung über function.session-write-close weg?

Wenn Sie eine Fehlermeldung wie diese sehen:

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:

  • Legen Sie das Verzeichnis an und vergewissern Sie sich, dass es vom Webserver beschrieben werden kann.
  • Setzen Sie einen session_save_path-Wert, der auf ein beschreibbares Verzeichnis zeigt, z. B. in config.php:
session_save_path('/home/someuser/tmp/sessions'); # unix-type OS
session_save_path('C:/server/tmp/sessions'); # Windows

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 $EnableDiag=1; in der local/config.php-Datei zu setzen, rufen sie PmWiki mit ?action=phpinfo auf und prüfen Sie, dass Sitzungen (sessions) aktiviert sind und dass der session.save_path einen brauchbaren Wert hat. Beachten Sie, dass mehrere PHP-Versionen unter Windows erwarten, dass ein session_save_path explizit gesetzt ist (das können Sie in der local/config.php-Datei machen). Versuchen Sie auch, session.auto_start in ihrer php.ini auf 1 zu setzen.

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"Parse error: parse error, unexpected T_VARIABLE in somefile on line number.".

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, "406 Not Acceptable", "418 I'm a teapot" oder "Internal Server Error" zurück. Das passiert mit einigen Einträgen, aber nicht mit allen.

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 SecFilterEngine off in einer .htaccess-Datei eingefügt wird.

Alternativ könnten Sie das Rezept Cookbook:EncodePost ausprobieren.

Ich erhalte folgende Nachricht, wenn ich versuche ein Bild hochzuladen. Was kann ich tun?

Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1929 is not allowed to access /home/onscolre/public_html/pmwikiuploads/Photos owned by uid 33 in /home/onscolre/public_html/pmwiki/scripts/upload.php on line 198

PmWiki can't process your request

?cannot move uploaded file to /home/onscolre/public_html/pmwikiuploads/Photos/FoundationPupilsIn1958.jpeg

We are sorry for any inconvenience.

Ihr Server ist mit dem aktivierten PHP-Safe-Mode konfiguriert (seit PHP 5.4.0 entfernt). 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 nur mit den 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 (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 (wenn nötig) AuthUser eingefügt wurde.

Die Reihenfolge in config.php ist sehr ausschlaggebend.

Beim Bearbeiten einer vorhandenen Seite verursacht das "Speichern" 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 .flock im wiki.d-Verzeichnis erzeugt. So lange diese Datei existiert, ist es unmöglich, eine (andere) Datei zu speichern. Die Datei .flock zeigt an, dass eine Speicherung nach einer Bearbeitung im Gange ist, und wird automatisch gelöscht, wenn die Bearbeitung erfolgreich mit "Speichern" abgeschlossen wird. Im Falle eines Crash bei der Speicherung wird diese Datei nicht vernichtet. Das Heilmittel ist, mit einem FTP-Programm, das auf das Anzeigen versteckter Dateien eingestellt ist, die .flock-Datei zu löschen. Und alles ist wieder gut. Dieses Verhalten wird typischerweise verursacht durch einen Fehler, der (direkt oder indirekt) eine Endlosschleife in einem Rezept verursacht, das durch das Speichern der bearbeiteten Seite ausgelöst wurde.

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.

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 können Sie dann dem am Seitenende befindlichen Verweis Dokumentationsindex 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 (:linebreaks:)-Direktive verwenden, um zu erreichen, dass getrennte Zeilen im Quelltext auch bei der Ausgabe als getrennte Zeilen behandelt werden, siehe auch Zeilenumbrüche. Ein Administrator kann aber auch die Zeile
$EnablePreserveLineBreaks = 1;
in die config.php-Datei einfügen, um den Erhalt von Zeilenumbrüchen zu erzwingen.

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 Dokumentationsindex und in der Übersicht der Auszeichnungen.

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 können Sie die neue Seite bearbeiten.

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 (:title Neue Seite:) nach Bedarf selbst definieren. Dies ist besonders nützlich, wenn Sie Sonderzeichen (und deutsche Umlaute gehören dazu) oder eine spezielle Großschreibung im Seitentitel verwenden wollen, die Sie für den Seitennamen nicht benutzen können oder wollen.

Verweise

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

Benutzen Sie den Wikistil %newwin% – so wie im folgenden Beispiel:

%newwin% https://example.com/

https://example.com/

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 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!]]

Die Auszeichnung [[mailto:me@example.com?cc=someoneelse@example.com&bcc=else@example.com&subject=Pre-set Subject&body=Pre-set body | display text]] =] lässt Sie noch weitere Parameter angeben wie den Nachrichtentext und weitere Empfänger (mag sein, dass das nicht mit allen Browsern und E-Mail-Programmen funktioniert).

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 link=Gruppe.Seite im Wiki-Suchfeld, um alle Seiten zu finden, die auf 'Gruppe.Seite' zeigen. Benutzen Sie 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

Beachten 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 (:pmform:) in die Seite eingefügt werden, werden gefunden.

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. [[Group1.Page Group2.Page|Page]]

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.

Wie kann ich einen Link erzeugen, der den Benutzer auffordert, eine Datei herunterzuladen anstatt sie zu öffnen.

Nutzen Sie in einer Seite ein WikiStyle %download%[[Attach:file.txt]]%% oder %download="differentfilename.txt"%[[Attach:file.txt]]%%, um einen anderen Dateinamen im Datei-Speichern-Dialog vorzuschlagen.

Vor PmWiki 2.5.9 sollten Sie dies zur config.php-Datei hinzufügen:

$WikiStyle['download']['download'] = '';
$WikiStyleAttr['download'] = 'a';

Bilder

Warum 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 Attach:Gruppenname/bild.png (jedenfalls solange, wie Anhänge gruppenweise gespeichert werden). Auf ein anderes Bild auf dem aktuellen Server verweist man mit Pfad:/pfad/zum/bild.png, wobei "Pfad:" durch den Servernamen wie "https://www.example.com" ersetzt wird.

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 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

# Erster Punkt
## Erster Unterpunkt
   || border=0 align=center
   || https://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 1''' || %width=50pct%https://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:)
https://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 1'''
(:cell:)
%width=50pct%https://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 2'''
(:tableend:)
## Zweiter Unterpunkt
(:table border=0 align=center padding-left:4em :)
(:cellnr:)
https://pmichaud.com/img/misc/pc.jpg"Paper clips" | '''Bild 1'''
(:cell:)
%width=50pct%https://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
   || https://pmichaud.com/img/misc/pc.jpg"Paper clips"[[<<]]'''Bild 1''' || %width=50pct%https://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-Datei ein:

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

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

%rfloat width=10pct% https://pmichaud.com/img/misc/bubble.jpg"rfloat width 10%" 
%width=10pct% https://pmichaud.com/img/misc/bubble.jpg"width 10%" [[<<]]
%lfloat height=20pct% https://pmichaud.com/img/misc/bubble.jpg"lfloat height 20%" 
%height=20pct% https://pmichaud.com/img/misc/bubble.jpg"height 20%" [[<<]]
%width=10pct rfloat% https://pmichaud.com/img/misc/bubble.jpg"width 10% rfloat" 
%height=20pct lfloat% https://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 es, dass ein Bild, das ich einfüge, innerhalb des <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 [==] an den Zeilenanfang wie in:

[==] https://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 die folgende Zeile in die /local/config.php-Datei 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.

Wie füge ich $ImgExtPattern einen Bildtyp so hinzu, dass dennoch alle zukünftigen Standard-Bildtypen enthalten sind, die in PmWiki hinzugefügt werden.

Sie können die Erweiterung an $ImgExtPattern folgendermaßen anhängen:

  $ImgExtPattern = "(?:$ImgExtPattern|\\.webp|\\.WEBP)";

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 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 https://example.com/dox/mydoc lautet, fügen Sie einen fingierten Querystring mit der gewünschten Dateiendung an (z. B. https://example.com/dox/mydoc?format=.docx). Wenn Querystrings nicht geeignet sind, sollte es ein Bezeichnerfragment tun, z. B. https://example.com/dox/mydoc#.docx.

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 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 (:title :)-Directive an das Ende der Seite setzen, nach allen Include-Direktiven, siehe auch $EnablePageTitlePriority.

Welchen Test mache ich, um zu sehen, ob die Seite ein Teil einer anderen Seite ist?

(:if ! name {PmWikiDe.IncludeOtherPages$FullName}:) 
%comment% Der Name dieser Seite ist nicht der Gleiche wie der Name der Seite, aus der dieser Text herausgezogen wurde.
->[[{PmWikiDe.IncludeOtherPages$FullName}#anchor | more ...]]
(:ifend:)

Der Name dieser Seite ist nicht der Gleiche wie der Name der Seite, aus der dieser Text herausgezogen wurde.

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äfixe

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:'] = 'https://pmwiki.org/wiki/$1';

Siehe auch $LinkFunctions

Wie kann ich einen Intermapverweis definieren, der sich auf Dateien des Servers 'root' bezieht?

Von der Seite https://example.org/index.php/Main/HomePage möchte ich einen relativen Verweis auf ein Verzeichnis auf der 'root'-Ebene der Site erzeugen. Der voll-qualifizierte URL ist https://example.org/commoninfo/infoaboutu.php. Ich möchte das machen, weil sich der Domainname ändern wird, was einen absoluten Verweis kaputt machen würde.

Benutzen Sie den vordefinierten Präfix "Path:" wie in Path:/commoninfo/infoaboutu.php.

Seitenspezifische Variablen

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

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

# füge Seitenvariable {$PageCreationDate} im Format yyyy-mm-dd hinzu
$FmtPV['$PageCreationDate'] = 'PSFT("[=%Y-%m-%d=]", $page["ctime"])';

Wenn Sie lieber das in der config.php-Datei definierte Zeitformat erhalten möchten, benutzen Sie:

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

Früher hat PmWiki kein "ctime"-Seiten-Attribut gespeichert. Einigen Kernseiten und alten Wikiseiten könnten diese Information fehlen. Siehe auch die Funktion PSFT().

Wie kann ich testen, ob ein Variable gesetzt ist und/oder nicht leer?

Benutzen Sie [=(:if ! equal "{$Variable}" "":) $Variable ist nicht leer. (:ifend:)=]. Beachten Sie, dass nicht definierte oder nicht existierende Variablen als leere Variablen erscheinen.

Wikigruppen

Wir 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 bzw. die Gruppe PmWikiDe) 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 (:pagelist group=GroupName list=all:) in eine Wikiseite ein oder geben Sie GroupName/ list=all in ein Suchfeld ein.

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 ein Passwort-Hash erzeugen, indem er das eingebaute Utility bei ?action=crypt benutzt, dann fügt er – mit dem erzeugten Hash – eine Zeile wie die folgende in die local/config.php-Datei ein:

$DefaultPasswords['edit'] = '$2y$10$7I4q6C4qb58OrA2EJGsL8.RVgtBpSehzCMbBtCJGc5cOpSvftEbIy';

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 PHP-Funktion crypt() 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-Datei 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 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.
Für Sicherheitsbelange über geteilte Sitzungspools siehe das Kapitel "Session injection" in Cookbook:SessionSecurityAdvice (englisch).
Ein einfacher Weg, das zu lösen, ist sicher zu gehen, dass jedes Wiki einen individuellen Cookienamen für seine Sitzungen 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 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 (:if auth edit:) verwenden. Siehe Bedingte Auszeichnung.

Kann ich (:if …:) benutzen, um Geheimnisse in einer Wikiseite zu verbergen?

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.

1 Zur Zeit (version 2.2.99) sind das: read (erlaubt das Einfügen), edit (zeigt den Quelltext), attr (erlaubt den Zugriff auf die Lese-/Schreibberechtigung), diff (zeigt alle Änderungen an), source (zeigt den Quelltext).

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: 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.

Installation

Kö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):

<?php include_once('pmwiki.php');

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 $PubDirUrl-Variable setzen (beispielsweise auf "https://example.com/pmwiki/pub" in der local/config.php-Datei.

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.

Aktualisierungen

Wie 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 (pmwiki-2.5.9).

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.

Wenn dann die neue Version offensichtlich genau so gut wie die alte Version funktioniert, ist ein Upgrade der alten Version sicher — und man weiß um die Änderungen, die an der Konfiguration und an den Seiten gemacht werden müssen. (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ä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-Rezept).

$UploadPrefixFmt = '/$FullName';  # seitenweise, in Gruppe.Name-Verzeichnissen
$UploadPrefixFmt = '/$Group/$Name'; # seitenweise, in Gruppenverzeichnissen mit Name-Unterverzeichnissen
$UploadPrefixFmt = '';   # für das ganze Wiki

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?

Ja, siehe $UploadNameChars

Wo wird die Liste der Anhänge gespeichert?

Sie wird ad hoc durch das

-Markup erstellt.

Wie kann ich Hotlinking meiner hochgeladenen Bilder verhindern?

Siehe Cookbook:Prevent Hotlinking

Das Herunterladen von binären Dateien wie Bilder oder ZIP-Archive mit $EnableDirectDownload=0; resultiert manchmal in beschädigten Dateien, warum?

Einige Rezepte oder lokale Konfigurationen können etwas vor der Datei ausgeben. Das kann passieren, wenn Sie PHP-Dateien mit einem abschließenden "?>"-Marker am Ende haben, mit einigen Text- oder Whitespace-Zeichen dahinter. Es wird empfohlen, diese schließenden Marker aus den lokalen und den Kochbuch-Dateien zu entfernen.
Alternativ könnte es einige PHP-Warnungen oder -Benachrichtigungen vor den Dateidaten geben. Auf Unix-ähnlichen Systemen können Sie in die Datei schauen mit dem Kommando less -f -L file.ext und die ersten Zeichen oder Zeilen ansehen. Auf Windows-Systemen kann dafür Notepad++ gute Dienste leisten. Siehe in Troubleshooting, wie Sie die Quelle der Fehler/Warnungen aufspüren können.

Wikifarmen

Wie 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.

Eigene Auszeichnungen

Wie 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 $HTMLHeaderFmt-Array benutzen.

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 (:if enabled HideDiscussion:)-Auszeichnung einzusetzen. Wenn Sie den aktuellen Wert von {$HideDiscussion} auf der Seite anzeigen wollen (für Testzwecke), müssen Sie auch die Zeile

$FmtPV['$HideDiscussion'] = '$GLOBALS["HideDiscussion"]';

hinzufügen.

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 "<links" sein, und Ihr Markup wird vor den Verweisen behandelt. Die zweite Option ist, die PRR()-Funktion in Ihrer Markup-Definition aufzurufen oder innerhalb Ihrer Markup-Funktion. In dem Falle beginnt PmWiki alle Markups von vorn, wenn Ihre Behandlung abgeschlossen ist.

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 Markup()-Aufrufs an:

$MarkupFrameBase['posteval']['myfooter'] = "\$out = onetimerule(\$out);";

Wikistile anpassen

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 $WikiStyle['vMenu']['background-color']='#ffffcc'; – anders als 'background' ist 'background-color' im $WikiStyleCSS-Array definiert, in welche nach gültigen Eigenschaften gesucht wird.

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.

Wie 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:

  %noul% [[Link]] %%

Anmerkungen zum Aufbau

Warum 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.

für die Liste aller Seiten


Übersetzung von PmWiki.FAQ,   Originalseite auf PmWikiDe.FAQ   —   Rückverweise

Zuletzt geändert:   PmWikiDe.FAQam 08.02.2021
 PmWiki.FAQam 10.09.2011
Bearbeiten - Versionen - Druckansicht - Aktuelle Änderungen - Suchen
Zuletzt geändert am 08.02.2021 12:46 Uhr