Desklets erstellen

Unter Umständen kann es sinnvoll sein, bestimmte Seitentypen mit dem Desktop zu verknüpfen. Dafür stehen auf dem Desktop Desklets zur Verfügung. Die sind nichts anderes als Zellen, die Informationen anzeigen.

Um eine neue Zelle zu erstellen, werden 2 Dateien benötigt:

  • site / Mandant / Seitentyp / admin / desktop.php 
  • site / Mandant / Seitentyp / admin / desktop.html
wb_incandescent
Alternativ können Desklets auch global für alle Mandanten in site/_global/admin/desktop/ definiert werden. Hier benötigen Sie dann Dateien wie z.B. meinDesklet.php und meinDesklet.html.

In der dektop.html wird das Template der Zelle definiert. Die dektop.php-Datei bindet die Zelle ins das System ein.

Beispiel-Desklet: Seitenstatistik

Um den Aufbau und die Verwendung eines Desklets näher zu erläutern, sollen im Beispiel verschiedene Statistiken eines Mandanten angezeigt werden.

Das Template (desktop.html)

<table cellpadding="0" cellspacing="0" width="100%">    <tr>       <td width="100%">          {t}aktive Seiten{/t}       </td>       <td>          {$aktive_seiten}         </td>    </tr>    <tr>       <td>          {t}inaktive Seiten{/t}       </td>       <td>          {$inaktive_seiten}         </td>    </tr>    <tr>       <td>          {t}gelöschte Seiten{/t}       </td>       <td>          {$geloeschte_seiten}         </td>    </tr> </table>

Die Template-Datei ist im Aufbau recht einfach gehalten: In einer Tabelle werden aktive, inaktive und gelöschte Seiten untereinander angezeigt. Die einzelnen Werte sind mit entsprechenden Platzhaltern versehen, die noch befüllt werden.

Das Skript (desktop.php)

<?php /** * Beispiel-Desklet * Seitenstatistiken ermitteln und als Deklet anzeigen */ /** * Seiten ermitteln und an Smarty übergeben */    // Anzahl aktiver Seiten    $alle_seiten = $site->getPages(array(),array('auth_or' => '1=1'));    $smarty->assign('aktive_seiten',$alle_seiten->numRecords());    // Anzahl inaktiver Seiten    $alle_seiten = $site->getPages(array('where' => 'inactive = 1'),array('auth_or' => '1=1'));    $smarty->assign('inaktive_seiten',$alle_seiten->numRecords());    // Anzahl gelöschter Seiten    $alle_seiten = $site->getPages(array('where' => 'deleted = 1'),array('auth_or' => '1=1','deleted' => 1));    $smarty->assign('geloeschte_seiten',$alle_seiten->numRecords()); /** * Desklet vorbereiten */    $cell = array();    $cell[0]['name'] = 'Mandant-Informationen';   // Titel    $cell[0]['id'] = 'mandant_infos';      // id-Bezeichnung    $cell[0]['icon'] = "../admin_skin/egotec/desktop/stats.gif";   // Icon    // Desklet Inhalt aus der desktop.html einbinden    if(in_array($site->name.'_'.$cell[0]['id'], $active_cells))   // Nur anzeigen wenn aktiv    {       $cell[0]['body'] = $smarty->fetch($GLOBALS['egotec_conf']['site_dir'].$GLOBALS['site']->name.'/page/admin/desktop.html');    } else    {       $cell[0]['body'] = '';    }    // Fertige Zelle hinzufügen    $GLOBALS['cells'][] = $cell; ?>

Das Skript ermittelt zunächst über die getPages-Funktion des Site-Objekt die gewünschten Seiten-Mengen. Diese werden nach jeder Abfrage jeweils als Smarty-Platzhalter zur Verfügung gestellt.

Im zweiten Schritt werden Elemente wie Titel und Icon des Desklets bestimmt. Über die Smarty->fetch Methode wird das Template (body.html) in das body-Element der Zelle eingebunden und angezeigt.

Zuletzt wird die fertige Zelle über $GLOBALS['cells'][] = $cell; dem System bekannt gegeben.

Desklet anzeigen

Sobald das neue Desklet über "Ansicht->Mandanten-Informationen" aktiviert wurde, erscheint dieses auf dem Desktop-Bereich.

wb_incandescent
Nach dem Erstellen des neuen Desklets ist ein erneuter Login nötig, damit das Desklet in dem Ansicht-Menü erscheint.