HTML-Ausgaben erzeugen

< Datenbankzugriffe | Entwicklungs-HOWTO | HowToIcons >

1. Flexi-Templates

Stud,IP verwendet zur Ausgabe von HTML Templates, genauer gesagt eine Eigenentwicklung namens Flexi-Templates.
Beispiele und Verwendung

Der einzige Unterschied ist, dass es in Stud.IP schon eine TemplateFactory instanziiert ist, die man einfach verwenden kann.

  1. $template = $GLOBALS['template_factory']->open('shared/searchbox.php');
  2. echo $template->render();

2. Templates und Klassen für Alle(s)

2.1  Meldungen

Um in Stud.IP Meldungen anzuzeigen, verwendet man die Klasse MessageBox.

Hier ein einfaches Beispiel:

  1. // Beispiel für eine einfache Info-Nachricht
  2. echo MessageBox::info('Nachricht');

Möchte man die Meldung nicht sofort, sondern erst zusammen mit dem Seiten-Layout ausgeben, sollte man die Ausgabe an die PageLayout-Klasse delegieren:

  1. // Beispiel für eine einfache Info-Nachricht
  2. $info = MessageBox::info('Nachricht');
  3. PageLayout::postMessage($info);

Alle Details und weitere Typen von MessageBoxen findet man in der Dokumentation.

2.2  Suchbox

Das Template searchbox bietet eine einheitliche Suchmaske für alle Seiten, auf denen gesucht werden soll. Das Template ist recht minimalistisch in kann in eine HTML-Form gebettet werden.

Verwendung im Template

  1. <form action="<?=URLHelper::getLink()?>" method=post>
  2.     <?= $this->render_partial('shared/searchbox'); ?>
  3. </form>
  4. <?
  5. $searchterm = Request::get('searchterm');

2.3  Paginierung

Das Template pagechooser ist für Seiten, die eine Paginierung haben sollen. Man gibt dem Template die Anzahl an Elementen, Elemente pro Seite, die aktuelle ausgewählte und einen Link mit Formatauszeichnung wo die Seitenzahl sein soll mit, dann erhält man oben gezeigten Seitenwähler.

Seit Stud.IP 2.1 befindet sich ein globaler Wert in der Datenbank. Dieser ist mit get_config('ENTRIES_PER_PAGE') nutzbar. Der Standard-Wert ist 20.

  1. <?= $this->render_partial("shared/pagechooser",
  2.   array(
  3.     "perPage" => get_config('ENTRIES_PER_PAGE'),
  4.     "num_postings" => $numberOfPersons,
  5.     "page"=>$page,
  6.     "pagelink" => "score.php?page=%s"));
  7. ?>

2.4  Modaler Dialog

Manchmal ist es notwendig bei sehr wichtigen Rückfragen einen modalen Dialog statt einer normalen MessageBox zu verwenden.

Beispiel:

  1. $question = sprintf(_('Möchten Sie wirklich den User **%s** löschen ?'), $username);
  2. echo createQuestion( $question,
  3.   array(
  4.     "studipticket" => get_ticket(),
  5.     'u_kill_id' => $u_id
  6.   ),
  7.   array(
  8.     'details' => $username
  9.   )
  10. );
  11.  

3.  HTML5

Stud.IP verwendet den HTML5-Doctype:

<!DOCTYPE html>

3.1  <br> oder <br/>?

Das br-Element darf keinen Inhalt haben. Solche Elemente werden void-Elemente genannt. Daher darf man nicht "<br></br>" schreiben. Stattdessen muss der schließende Tag weggelassen werden, da der Parser diese automatisch schließt.

In XHTML ist das Schließen von Tags notwendig. Für void-Elemente wird dort die "empty element syntax" verwendet: "<br />".

HTML5-Autoren können diese Syntax ebenfalls verwenden. Es bleibt daher jedem selbst überlassen, ob er <br> oder <br /> schreiben möchte.

Dasselbe gilt für alle void-Elemente:

  • area
  • base
  • br
  • col
  • command
  • embed
  • hr
  • img
  • input
  • keygen
  • link
  • meta
  • param
  • source
  • wbr

Links zum Thema:

0 Kommentare (zeigen/schreiben)

Letzte Änderung am 02.05.2011 13:37 Uhr von eludwig.

Hilfe?!

Hier finden Sie Entwickler-Dokumentation für Stud.IP.

Hilfe zur Bedienung und Administration von Stud.IP finden Sie im Dokumentations-Portal.

(c) Stud.IP e.V. und die Autoren der Stud.IP-Dokumentation.
Dieser Text ist unter der Lizenz "Creative commons Attribution/Share Alike" verfügbar.