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:

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)

QuelltextSmarty Code:
  1. <table cellpadding="0" cellspacing="0" width="100%">
  2.     <tr class="desktop_tr_1">
  3.         <td width="100%">
  4.             {t}aktive Seiten{/t}
  5.         </td>
  6.         <td>
  7.             {$aktive_seiten}&nbsp;&nbsp;
  8.         </td>
  9.     </tr>
  10.     <tr class="desktop_tr_2">
  11.         <td>
  12.             {t}inaktive Seiten{/t}
  13.         </td>
  14.         <td>
  15.             {$inaktive_seiten}&nbsp;&nbsp;
  16.         </td>
  17.     </tr>
  18.     <tr class="desktop_tr_1">
  19.         <td>
  20.             {t}gelöschte Seiten{/t}
  21.         </td>
  22.         <td>
  23.             {$geloeschte_seiten}&nbsp;&nbsp;
  24.         </td>
  25.     </tr>
  26. </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)

QuelltextPHP Code:
  1. <?php

  2. /**
  3. * Beispiel-Desklet
  4. * Seitenstatistiken ermitteln und als Deklet anzeigen
  5. */

  6. /**
  7. * Seiten ermitteln und an Smarty übergeben
  8. */
  9.     // Anzahl aktiver Seiten
  10.     $alle_seiten = $site->getPages(array(),array('auth_or' => '1=1'));
  11.     $smarty->assign('aktive_seiten',$alle_seiten->numRecords());

  12.     // Anzahl inaktiver Seiten
  13.     $alle_seiten = $site->getPages(array('where' => 'inactive = 1'),array('auth_or' => '1=1'));
  14.     $smarty->assign('inaktive_seiten',$alle_seiten->numRecords());

  15.     // Anzahl gelöschter Seiten
  16.     $alle_seiten = $site->getPages(array('where' => 'deleted = 1'),array('auth_or' => '1=1','deleted' => 1));
  17.     $smarty->assign('geloeschte_seiten',$alle_seiten->numRecords());

  18. /**
  19. * Desklet vorbereiten
  20. */
  21.     $cell = array();
  22.     $cell[0]['name'] = 'Mandant-Informationen';    // Titel
  23.     $cell[0]['id'] = 'mandant_infos';        // id-Bezeichnung
  24.     $cell[0]['icon'] = "../admin_skin/egotec/desktop/stats.gif";    // Icon

  25.     // Desklet Inhalt aus der desktop.html einbinden
  26.     if(in_array($site->name.'_'.$cell[0]['id'], $active_cells))    // Nur anzeigen wenn aktiv
  27.     {
  28.         $cell[0]['body'] = $smarty->fetch($GLOBALS['egotec_conf']['site_dir'].$GLOBALS['site']->name.'/page/admin/desktop.html');
  29.     } else
  30.     {
  31.         $cell[0]['body'] = '';
  32.     }

  33.     // Fertige Zelle hinzufügen
  34.     $GLOBALS['cells'][] = $cell;

  35. ?>

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.

desklet_statistik 

 

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

Tel: +49 (0)6261 / 6743-0
Fax: +49 (0)6261 / 6743-29
E-Mail: info@egotec.com
EGOTEC GmbH
Hauptstraße 130
D-74821 Mosbach
Erstellt mit EGOTEC® Internet: www.egotec.com © EGOTEC GmbH