Wikigruppen
Zusammengehörende Seiten sind in PmWiki in Gruppen organisiert. Dieses Feature wurde zu PmWiki hinzugefügt, um es Autoren zu ermöglichen, für sich selbst eigene Gruppen mit speziellem Inhalt zu erzeugen, ohne dazu auf den Wiki-Adminstrator angewiesen zu sein (oder selbst Administrator werden zu müssen). Siehe Pms Nachricht auf der Mailingliste pmwiki-users.
Einfache Verweise zeigen auf Wikiseiten innerhalb der selben Gruppe. Um einen Verweis auf eine zu einer anderen Gruppe gehörende Seite zu erzeugen, wird die Gruppe und der Seitenname mit einem Punkt oder Schrägstrich miteinander verbunden. Um z.B. auf die Seite "WikiSandbox" in der Gruppe "Main" zu verlinken:
*[[Main.WikiSandbox]] *[[Main/WikiSandbox]] *[[(Main.Wiki)Sandbox]] *[[Main.WikiSandbox | Beschreibung]] *[[Main.WikiSandbox | +]] |
Um auf die Standard-HomePage einer anderen Gruppe zu verweisen (siehe unten), kann der Seitenname weggelassen werden:
*[[Main.]] *[[Main/]] |
Neue Gruppen anlegen
Eine neue Gruppe zu erzeugen ist genauso einfach wie das Anlegen neuer Seiten: Man fügt einfach in einer schon bestehenden Seite einen Verweis auf eine (im Augenblick noch nicht existierende) Seite in der neu zu bildenden Gruppe hinzu und klickt anschließend auf das angezeigte '?' hinter dem Verweis. Standardmäßig müssen Gruppennamen mit einem Buchstaben beginnen (kann vom Administrator geändert werden, indem er
$GroupPattern = '[[:upper:]\\d][\\w]*(?:-\\w+)*';
zu config.php
hinzufügt).
Um beispielsweise die Standard-Gruppenseite einer neuen Gruppe "Foo" anzulegen, muss ein Verweise [[Foo/]] (oder [[Foo.]]) angelegt werden. Soll eine Seite Bar in der Gruppe Foo angelegt werden, muss der folgende Verweis lauten: [[Foo/Bar]].
Standardgruppen der PmWiki-Distribution
- Main: Die Standardgruppe. In vielen Wikis enthalten sie die von den Autoren hinzugefügten Inhalte. Main.HomePage und Main.WikiSandbox werden vorinstalliert.
- PmWiki: Eine schreibgeschützte Gruppe, die die PmWiki-Dokumentation enthält.
- Site: Enthält verschiedene von PmWiki verwendete Hilfs- und Konfigurationsseiten, u.a.:
SideBar, Search, Preferences, Templates
undAllRecentChanges
. - SiteAdmin: Enthält verschiedene passwort-geschützte von PmWiki verwendete Administrations- und Konfigurationseiten von PmWiki , u.a.:
ApprovedUrls
undBlocklist
.
Die Suche nach "fmt=group" zeigt alle Gruppen des Wikis an. Alle Seiten erhält man mit "GruppenName/".
Spezialseiten in einer Gruppe
Standardmäßig zeigt die Seite RecentChanges nur die zuletzt veränderten Seiten einer Gruppe an. Die Seite Site.AllRecentChanges zeigt alle Seitenänderungen in allen Gruppen an, gibt also einen Überblick aller Arbeiten am Wiki.
Weiterhin kann jede Gruppe eigene GroupHeader- und GroupFooter-Seiten besitzen, in denen sich Text und Formatierungsanweisungen definieren lassen, die automatisch am Beginn oder am Ende jeder Seite dieser Gruppe eingefügt werden. Mit der GroupAttributes-Seite können für alle Seiten der entsprechenden Gruppe gemeinsame Berechtigungen (Lese- und Schreibpasswörter) festgelegt werden.
Darüber hinaus kann jede Seite individuelle Lese- und Schreib-Passwörter besitzen, die Vorrang vor den Gruppenpasswörtern haben (siehe Passwörter).
Schließlich kann der Administrator des Wikis die lokalen Anpassungen auf der Basis von Gruppen vornehmen (siehe Anpassung für einzelne Gruppen).
Standardseite in der Gruppe
Die Standardstartseite einer Gruppe (hier in den Beispielen Foo) ist eine Seite, die einen der folgenden Namen haben kann:
- den gleichen Namen wie die Gruppe (Foo/Foo) oder
- den Namen HomePage (Foo/HomePage) oder
- den Namen, den der Administrator mit der Variable {$DefaultName} in der Konfigurationsdatei ([farm]config.php) festgelegt hat.
Für die vorliegende Installation von PmWiki hat {$DefaultName} den Wert HomePage und insofern wäre die Standardseite einer Gruppe Foo Foo/HomePage.
Sie können nützlicherweise die Standardsuchreihenfolge für einen eingegebenen Seitennamen ändern, indem Sie die Variable
in $PagePathFmt
config.php
setzen, z. B.
$PagePathFmt
= array('$Group.$1', '$1.$DefaultName
', '$1.$1', '$DefaultGroup
.$1', 'Profiles.$1');
worin "$1" der eingegebenen Name der Seite ist.
Wenn Sie die Variable $DefaultName
setzen, um eine Startseite für Ihre Gruppe zu erzeugen, müssen Sie auch $PagePathFmt
definieren (siehe oben), um eine konsistente Funktionalität zu gewährleisten. Die einfachste Setzung wäre diese:
$PagePathFmt
= array('$Group.$1', '$1.$DefaultName
');
Beachten Sie, dass Reihenfolge der Definitionen dieser Variablen ($DefaultName
and $PagePathFmt
) wichtig ist - sie muss vor einem Aufruf von ResolvePageName() geschehen und kann (deshalb) nicht in einem Seiten- oder Gruppen-Anpassungsskript stehen.
Wie oben erwähnt, können Autoren beim Verweisen auf die Standardseite einer Gruppe den Seitennamen weglassen und einfach den Gruppennamen gefolgt von einem Schrägstrich ([[Foo/]]) verwenden.
Beachten Sie, dass beim Verweisen auf die Standardseite der abschließende Schrägstrich erforderlich ist, damit der Verweis auch unzweifelhaft auf die angegebene Gruppe verweist. Wenn der Schrägstrich weggelassen wird, kann der Verweis auch als Verweis auf eine existierende (oder neue) Seite in der aktuellen Gruppe interpretiert werden (nämlich wenn die neue Gruppe oder ihre Standardseite nicht existieren).
Untergruppen? Unterseiten?
Nein, es existieren keine Unterseiten. Den Grund dafür hat Pm in Hierarchische Gruppen? beschrieben; kurz gesagt: es gibt keine gute Verweissyntax für Unterseiten. Falls ein Verweis in der Form [[A.B.C]]
verwendet wird, so interpretiert dies PmWiki nicht als Seite "B.C" in der Gruppe "A", sondern als Seite "C" in der Gruppe "AB", die sich von einer Gruppe "A" unterscheidet. Wikiadministratoren finden in den Kochbuch-Rezepten Cookbook:SubgroupMarkup und Cookbook:IncludeWithEdit Hinweise für die Entwicklung von Untergruppen und Unterseiten (nur auf Englisch verfügbar).
Das Anlegen neuer Gruppen verhindern
Möglichkeit 1: Zuerst wird in /local/config.php
das Bearbeiten für das gesamte Wiki gesperrt:
$DefaultPasswords
['edit'] = crypt('daspasswort');
Danach wird auf der Seite GroupAttributes jeder Gruppe, in der Bearbeitung erlaubt sein soll, das Bearbeitenpasswort auf "nopass" (NO Passwort) gesetzt. Die Lösung erhöht ganz allgemein die Sicherheit im Wiki.
Falls später eine neue Gruppe erzeugt werden soll, so legt sie einfach der Administrator mit seinem Passwort an und erlaubt in GroupAttributes das Editieren.
Möglichkeit 2: Es wird davon ausgegangen, dass alle Wikigruppen auch eine Seite RecentChanges besitzen. Wird:
$rc = FmtPageName('$Group.RecentChanges', $pagename); if (!PageExists($rc)) $DefaultPasswords['edit'] = $DefaultPasswords['admin'];
in der /local/config
eingetragen, so verlangt das Anlegen einer neuen Seite entweder, dass die RecentChanges für die Gruppe schon existiert oder es wird nach dem Administratorpasswort gefragt.
Das funktioniert auch mit der Standardseite der Gruppe:
$rc = FmtPageName('$Group.$DefaultName', $pagename); if (!PageExists($rc)) $DefaultPasswords['edit'] = $DefaultPasswords['admin'];
Möglichkeit 3: Es wird die $GroupPattern
Variable von PmWiki verwendet. Um das Wiki auf die Gruppen "PmWiki", "Main", "Profiles" und "Beispiel" einzuschränken wird in /local/config.php
$GroupPattern
= '(?:PmWiki|Main|Profiles|Beispiel)';
eingetragen. Damit werden nur die erwähnten Gruppen als gültige Wikigruppen betrachtet. Weitere Gruppennamen werden einfach mittels vertikalem Strich angefügt.
Weitere Lösungen finden Sie in Cookbook:Limit Wiki Groups und Cookbook:New Group Warning (englisch).
<< Wiki-Struktur | Dokumentations-Index | Kopfbereich (und Fußbereich) der Gruppe >>
Wir kann ich die Anzeige der "Main"-Gruppe in URLs vermeiden?
Siehe Cookbook:Get Rid Of Main.
Warum funktioniert [[St. Augustin]] nicht als Verweis? (Es zeigt überhaupt nichts an.)
Weil der Verweis einen Punkt enthält, 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 Anweisung (:title St. Augustin:), 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 und im cookbook-Verzeichnis ein.
Sie sollten 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.
Übersetzung von PmWiki.WikiGroup, Originalseite auf PmWikiDe.WikiGroup — Rückverweise
Zuletzt geändert: | PmWikiDe.WikiGroup | am 06.07.2016 |
PmWiki.WikiGroup | am 30.08.2019 |