Unregistrierte Besucher und angemeldete Benutzer meines Wikis sollen auf Startseiten mit grundsätzlich unterschiedlichem Inhalt geführt werden.
Zwei modifizierte Versionen der Action include:
Drei Wiki-Seiten:
Die (bereits vorhandene) Startseite des Wikis erhält folgenden Inhalt:
Kopiervorlage
| {{includestartseite page="Members" nomark="1"}} {{includestartseite page="Visitors" nomark="1"}} |
Hier als Screenshot:

Berechtigungen:
Lesen:
* (alle)
Schreiben:
admins (nur Administratoren)
Kommentare:
nach Bedarf
Die neu erstellte Seite Visitors füllen wir mit allgemeinen Informationen zu Inhalt, Sinn und Zweck unseres Wikis.
Entscheidend ist die Vergabe der Berechtigungen:
Lesen:
* (alle ...)
!$ (... ausser den Registrierten)
admins (... leseberechtigt soll sicher auch der Administrator sein)
Schreiben: admins (nur Administratoren)
Kommentare: nach Bedarf
Hier ein Screenshot (im Beispiel heisst die Seite UnRegistrierte" und nicht Visitors)

Auf dieser Seite bauen wir eine namentliche Begrüssung des angemeldeten Benutzers ein (Action {{user}}). Vielleicht fügen wir noch die wichtigsten Links hinzu. Am Ende bauen wir die Action {{includeup}} ein, nun erscheint der Inhalt der persönlichen Startseite des Benützers.
Beispielinhalt (Kopiervorlage)
====Hallo {{user}}, willkommen im «Beispielwiki»-Benutzerbereich== ======Nützliche Seiten:==== * Meine Startseite: {{user}} * ((MeineSeiten Alle meine bisher erstellten Seiten)) * ((LetzteAenderungen Letzte Änderungen)) ---- ======Aktuelle Version meiner Startseite [Benutzername: {{user}}]== {{includeup}} |
Hier erneut als Screenshot:

Berechtigungen:
Lesen:
$ (nur angemeldete Benutzer)
Schreiben:
admins (nur Administratoren)
Kommentare:
nach Bedarf
Auch hier zum Schluss ein Screenshot (die Seite heisst Registrierte und nicht Members):

Über Feedback freue ich mich! Danke
{{includestartseite}}
/actions/includestartseite.php
<?php
$vars[0] = $this->UnwrapLink($vars[0]);
if ($_SESSION["linktracking"] && $track)
$this->TrackLinkTo($vars[0]);
if (in_array($vars[0],$this->context)) return;
if ($vars[0] == $this->tag) return;
if (! $this->HasAccess("read",$vars[0])){
if ($nowarning!=1) echo "";
}else{
if (!$inc_page = $this->LoadPage($vars[0], $_GET["time"])){
echo "<em> ".$this->GetResourceValue("SourcePageDoesntExist")."(".$this->Link("/".$vars[0]).")</em>";
}else{
if ($inc_page["body_r"]) $strings = $inc_page["body_r"];
else $strings = $this->Format($inc_page["body"], "wacko");
$strings = preg_replace("/\°\°toc[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/\°\°tableofcontents[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/\°\°p[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/\°\°showparagraphs[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/\°\°redirect[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/.*\°\°a name=\"?$first_anchor\"?\°\°(.*)\°\°a name=\"?$last_anchor\"?\°\°.*$/is","\$1",$strings);
if (($nomark!=1) && ($nomark!=2 || $this->HasAccess("write", $vars[0])))
print "<div class=\"include\">"."<div class=\"name\">".$this->Link("/".$vars[0])." :: ".
"<a href=\"".$this->Href("edit", $vars[0])."\">".$this->GetResourceValue("EditIcon")."</a></div>";
$this->context[++$this->current_context] = $vars[0];
print $this->Format($strings, "post_wacko");
$this->current_context--;
if (($nomark!=1) && ($nomark!=2 || $this->HasAccess("write", $vars[0])))
print "<div class=\"name\">".$this->Link("/".$vars[0])." :: ".
"<a href=\"".$this->Href("edit", $vars[0])."\">".$this->GetResourceValue("EditIcon")."</a></div></div>";
};
}
?>
{{includeup}}
/actions/includeup.php
<?php
$vars[0] = $this->GetUserName();
$nomark=1;
if ($_SESSION["linktracking"] && $track)
$this->TrackLinkTo($vars[0]);
if (in_array($vars[0],$this->context)) return;
if ($vars[0] == $this->tag) return;
if (! $this->HasAccess("read",$vars[0])){
if ($nowarning!=1) echo $this->GetResourceValue("NoAccessToSourcePage");
}else{
if (!$inc_page = $this->LoadPage($vars[0], $_GET["time"])){
echo "<em>Du hast deine Startseite noch nicht eingerichtet. Klicke auf das Fragezeichen neben deinem Benutzernamen, um dies nachzuholen: </em><strong>".$this->Link("/".$vars[0])."</strong>";
}else{
if ($inc_page["body_r"]) $strings = $inc_page["body_r"];
else $strings = $this->Format($inc_page["body"], "wacko");
$strings = preg_replace("/\°\°toc[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/\°\°tableofcontents[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/\°\°p[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/\°\°showparagraphs[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/\°\°redirect[^\°]*\°\°/i","",$strings);
$strings = preg_replace("/.*\°\°a name=\"?$first_anchor\"?\°\°(.*)\°\°a name=\"?$last_anchor\"?\°\°.*$/is","\$1",$strings);
if (($nomark!=1) && ($nomark!=2 || $this->HasAccess("write", $vars[0])))
print "<div class=\"include\">"."<div class=\"name\">".$this->Link("/".$vars[0])." :: ".
"<a href=\"".$this->Href("edit", $vars[0])."\">".$this->GetResourceValue("EditIcon")."</a></div>";
$this->context[++$this->current_context] = $vars[0];
print $this->Format($strings, "post_wacko");
$this->current_context--;
if (($nomark!=1) && ($nomark!=2 || $this->HasAccess("write", $vars[0])))
print "<div class=\"name\">".$this->Link("/".$vars[0])." :: ".
"<a href=\"".$this->Href("edit", $vars[0])."\">".$this->GetResourceValue("EditIcon")."</a></div></div>";
};
}
?>
{{user}}
/actions/user.php
<?php
if ($this->GetUser()) { echo $this->Link($this->GetUserName());}
?>
