Action: Custom Homepage

Compatible with: R6.0
Current version: 0.3
Credits: AhA

1. Idee

Unterschiedliche Startseite für unregistrierte Besucher und angemeldete Benutzer
Unregistrierte Besucher und angemeldete Benutzer meines Wikis sollen auf Startseiten mit grundsätzlich unterschiedlichem Inhalt geführt werden.

2. Umsetzung

2.1. Benötigte Ressourcen

Actions:

  1. include -> nowarning=1 – der Hinweis "Du bist nicht berechtigt, diese Seite zu lesen" wird nicht angezeigt
  2. includeup -> Die bereits vorhandene Action include wurde so abgeändert, daß automatisch der Inhalt der persönlichen Startseite eines angemeldeten Benutzers angezeigt wird -> deshalb der Name: includeup = includeu(ser)p(age)
  3. userpage -> Diese kleine Action ermöglicht es, dass angemeldete Benutzer auf der Startseite mit ihrem Benutzernamen begrüßt werden können.

Drei Wiki-Seiten:

  1. Die (bereits vorhandene) Startseite des Wikis
  2. Eine Seite mit dem Inhalt für unregistrierte Besucher des Wikis, wir können sie zum Beispiel Visitors nennen
  3. Eine Seite mit dem Inhalt für angemeldete Benutzer des Wikis, wir können sie zum Beispiel Members nennen

2.2. Seitenanpassungen

2.2.1. Seite "Startseite"

Die (bereits vorhandene) Startseite des Wikis erhält folgenden Inhalt:
Kopiervorlage

{{include page="Members" nomark=1 nowarning=1}}
{{include page="Visitors" nomark=1 nowarning=1}}

Hier als Screenshot:


Berechtigungen:


Lesen: * (alle)
Schreiben: admins (nur Administratoren)
Kommentare: nach Bedarf

2.2.2. Seite "Visitors"

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


2.2.3. Seite "Members"

Auf dieser Seite bauen wir eine namentliche Begrüßung des angemeldeten Benutzers ein (Action {{userpage}}). 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 {{userpage}}, willkommen im «Beispielwiki»-Benutzerbereich==

====Nützliche Seiten:====
  * Meine Startseite: {{userpage}}
  * ((MeineSeiten Alle meine bisher erstellten Seiten))
  * ((LetzteÄnderungen Letzte Änderungen))
----
====Aktuelle Version meiner Startseite [Benutzername: {{userpage}}]==
{{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 heißt "Registrierte" und nicht "Members"):


Über Feedback freue ich mich! Danke

3. Code der zusätzlich benötigten Actions

Die Argumente für die Aktionen können nach belieben angepasst werden.

3.1. Action: includeup

{{includeup}}


/action/includeup.php


<?php
if (!defined('IN_WACKO'))
{
    exit;
}

$page '/' $this->db->users_page '/' $this->get_user_name();
echo 
$this->action('include', ['page' => $page'nomark' => 1]);

3.2. Action: usepager

{{userpage}}


/action/userpage.php


<?php

if (!defined('IN_WACKO'))
{
    exit;
}

if (
$this->get_user())
{
    
$page '/' $this->db->users_page '/' $this->get_user_name();
    echo 
$this->link($page''$this->get_user_name());
}