SideBarMenu

Mit Stud.IP 3.1 wurden die Infoboxen durch die Sidebar und deren Widgets abgelöst.

1.  Zugriff auf die Sidebar

Eine Sidebar wird anhand von Widgets aufgebaut, welche kleine, voneinander unabhängige Bausteine der Seitenleiste darstellen. Eine Sidebar ist ein Singleton, sodass die einzige Instanz der Sidebar-Klasse nur über die statische Methode Get() erreicht werden kann:

<?php
$sidebar = Sidebar::Get();

1.1  Setzen des Titels der Sidebar

Dazu wird die Methode setTitle() verwendet:

<?php
Sidebar::Get()->setTitle('Hallo Sidebar!');

Der Titel kann mittels der Methode removeTitle() wieder entfernt werden.

1.2  Setzen eines Bildes für die Sidebar

Im oberen Bereich der Sidebar ist Platz für eine Grafik. Um festzulegen, welche Grafik erscheint, wird der Pfad zur Grafik im assets-Ordner der Methode setImage übergeben:

<?php
Sidebar::Get()->setImage('some/image');

Die Grafik kann mittels der Methode removeImage() wieder entfernt werden.

1.3  Hinzufügen von Widgets

Die Methode addWidget() der Klasse WidgetContainer, von der die Klasse Sidebar abgeleitet ist, kümmert sich um das Hinzufügen von Widgets. Ihr erster Parameter ist ein Objekt der Widget-Klasse, der optionale zweite Parameter gibt dem Widget einen Namen. Ist dieser nicht gesetzt, so wird der Klassenname des Widgets ohne das Wort Widget als Name benutzt.

<?php

$widget = new SearchWidget();
Sidebar::Get()->addWidget($widget, 'search1');

1.4  Hinzufügen eines Widgets an einer bestimmten Position

insertWidget() (ebenfalls aus der Klasse WidgetContainer) erlaubt es, ein Widget hinzuzufügen und dabei auch anhand des Namens eines anderen Widgets festzulegen, an welcher Position das Widget hinzugefügt werden soll. Der erste Parameter ist ein Objekt der Widget-Klasse, der zweite Parameter gibt an, vor welchem anderen Widget (identifiziert durch dessen Name) das neue Widget hinzugefügt werden soll. Der letzte Parameter ist wieder optional und legt den Namen des neuen Widgets fest.

<?php

$widget1 = new SearchWidget();
$widget2 = new SearchWidget();
Sidebar::Get()->addWidget($widget1, 'search1');
Sidebar::Get()->insertWidget($widget2, 'search1', 'search2'); //widget2 (mit Namen search2) wird vor widget1 (mit Namen search1) platziert.

2.  Erstellen einer Sidebar

Eine Sidebar kann entweder in einer Aktion eines Controllers erzeugt werden, oder aber in dessen Konstruktor, falls sie bei allen Aktionen sichtbar sein soll.

3.  JavaScript-Funktionen

Das Mitscrollen der Sidebar kann über JS gesteuert werden. Dazu gibt es folgende Funktion:

  • STUDIP.Sidebar.setSticky(bool is_sticky = true)

Vor Stud.IP 3.4 hieß diese Funktion stickySidebar().

Letzte Änderung am 11.07.2016 14:53 Uhr von strohm. ungültigen Satz entfernt