(edit)
Hide minor edits - Show changes to markup
(:redirect 'http://docs.studip.de/develop/Entwickler/HowToOutputSeminarDates':)
'turnus_data' => Array( 'metadate_id' 'idx' // deprecated 'day' 'start_hour' 'start_minute' 'end_hour' 'end_minute'
'turnus_data' => Array( //jeweils CycleData::toArray() + 'first_date' 'metadate_id' 'seminar_id' 'start_time' //Format hh::mm:ss 'end_time' //Format hh::mm:ss 'weekday' //Montag=1 (wie day) 'description' //wie desc 'sws' //Semesterwochenstunden Dozent 'cycle' //Turnus 0=wöchentlich, 1=zweiwöchentlich,3=dreiwöchentlich 'week_offset' //Startwoche im Semester, 0=1. Semesterwoche 'sorter' 'mkdate' 'chdate' // 'start_hour' //hh 'start_minute' //mm 'end_hour' //hh 'end_minute' //mm 'day'
'room' // deprecated 'resource_id' // deprecated
'art' 'start_woche' // Zahl der Wochen ab Semesterbeginn, wann die Veranstaltung anfängt (0-x) 'turnus' // 0: wöchentlich, 1: zwei-wöchentlich
'first_date' => Array('termin_id', //Erster Einzeltermin dieser Serie … )
echo $seminar->getDatesTemplate('dates/seminar_location.php');
echo $seminar->getDatesTemplate('dates/seminar_html_location.php');
Beispiel dates_html.php: (:source lang=php linenum:)[@ <? if (!isset($link)) $link = true ?> <?= $date->toString() ?> <? if ($date->getResourceId()) : ?>
dates_html.php
<?= _(", Ort:") ?> <?= implode(', ', getFormattedRooms(array($date->getResourceId() => '1'), $link)); ?>
<? endif ?>
Beispiel date_html.php: (:source lang=php:)[@ <?php if (!isset($link)) $link = true; echo $date->toString(); if ($date->getResourceId()) :
date_html.php
echo ', '. _("Ort:") .' '; echo implode(', ', getFormattedRooms(array($date->getResourceId() => '1'), $link));
endif ?>
Je nach Kürzel werden Nutzerdaten innerhalb der Templates wie folgt bearbeitet:
keine Parameter vorhanden
date_export.php
seminar_predominant.php
seminar_predominant_html.php seminar_xml.php
Dieses Feature gibt es seit Stud.IP Version 2.0
link - boolean true: default, Links zu den belegten Räumen anzeigen false: Nur den Raumnamen ohne Verlinkung anzeigen show - int Hier legt man fest, wieviele Räume/Freitexteintragungen bei Terminserien angezeigt werden, bevor "und x weitere" angezeigt wird.
'raum' // freie Ortsanagbe zu diesem Termine
'raum' // freie Ortsangabe zu diesem Termine
'raum' // deprecated
show_room - boolean true: default, Räume der Terminserien anzeigen false: keine Räume bei den Terminserien anzeigen
link - boolean true: default, Links zu den belegten Räumen anzeigen false: Nur den Raumnamen ohne Verlinkung anzeigen show_room - boolean true: default, Räume der Terminserien anzeigen false: keine Räume bei den Terminserien anzeigen link_to_dates - boolean true: Fügt einen Link zum Ablaufplan ein false: default
@]
An manche Templates kann man Parameter übergeben, um die Ausgabe zu beinflussen. Nachfolgend sind alle Parameter der Standardtemplates aufgelistet.
link - boolean true: default, Links zu den belegten Räumen anzeigen false: Nur den Raumnamen ohne Verlinkung anzeigen
Möchte man nun eine Termindarstellung für ein Seminare oder einen Einzeltermin haben, so benötigt man entsprechend eine Instanz von Seminar bzw. SingleDate.
Beide Klassen bieten 4 Objektmethoden, 3 um sich häufig benötigte Darstellungen geben zu lassen, eine um ein selbst definiertes Template zu übergeben.
Möchte man nun eine Termindarstellung für ein Seminar oder einen Einzeltermin haben, so benötigt man entsprechend eine Instanz von Seminar bzw. SingleDate.
Beide Klassen bieten vier Objektmethoden, drei um sich häufig benötigte Darstellungen geben zu lassen, eine um ein selbst definiertes Template zu übergeben.
Die Standardtemplates für die Darstellung liegen in templates/dates:
templates/dates
Um sich Veranstaltungstermine anzeigen zu lassen, benötigt man lediglich eine Instanz der Seminar-Klasse und ruft dort die entpsrechende Methode auf.
Um sich Veranstaltungstermine anzeigen zu lassen, benötigt man lediglich eine Instanz der Seminar-Klasse und ruft dort die entsprechende Methode auf.
$seminar = Seminar::getInstance(seminar_id);
$seminar = Seminar::getInstance(seminar_id); $singleDate = new SingleDate(termin_id);
$singleDate = new SingleDate(termin_id);
'turnus_data' = Array(
'turnus_data' => Array(
Hier kann man im Template auf die Variable $date zugreifenm welche eine Instanz der SingleDate-Klasse beinhaltet.\\
$date
Hier kann man im Template auf die Variable $date zugreifen, welche eine Instanz der SingleDate-Klasse beinhaltet.\\
'metadate_id' => $val->getMetaDateID(), 'termin_id' => $val->getTerminID(), 'date_typ' => $val->getDateType(), 'start_time' => $val->getStartTime(), 'end_time' => $val->getEndTime(), 'mkdate' => $val->getMkDate(), 'chdate' => $val->getMkDate(), 'ex_termin' => $val->isExTermin(), 'range_id' => $val->getRangeID(), 'author_id' => $val->getAuthorID(), 'resource_id' => $val->getResourceID(), 'raum' => $val->getFreeRoomText(), 'typ' => $val->getDateType(), 'tostring' => $val->toString()
'metadate_id' 'termin_id' 'date_typ' 'start_time' 'end_time' 'mkdate' 'chdate' 'ex_termin' 'range_id' 'author_id' 'resource_id' 'raum' // deprecated 'typ' 'tostring'
Ein eigenes Template für die Formatierung zu erstellen ist nicht weiter schwierig.
Ein eigenes Template für die Formatierung zu erstellen ist nicht weiter schwierig. Das neue Template legt man am Besten nach templates/dates
Im Template hat man Zugriff auf die Variable $dates, welche die reglmäßigen Terminserien sowie die unregelmäßigen Einzeltermine enthält.Dieses Array wird von Seminar::getUndecoratedData geliefert, der Aufbau ist wie folgt:
$dates
Array( 'regular' => Array( 'turnus_data' = Array( 'metadate_id' 'idx' // deprecated 'day' 'start_hour' 'start_minute' 'end_hour' 'end_minute' 'desc' // Beschreibung dieser Terminserie 'room' // deprecated 'resource_id' // deprecated 'assigned_rooms' => Array( // Räume, die den Einzelterminen dieser Terminserie zugeordnet sidn resource_id => Anzahl Einzeltermine mit diesem Raum, ... ), 'freetext_rooms' => Array( // Freitextangaben der Einzeltermine dieser Terminserie text => Anzahl Einzeltermine mit dieser Freitextangabe, ... ), 'tostring' // der Rückgabewert von CycleData::toString() 'tostring_short' // der Rückgabewert von CycleData::toString(true) ), 'art' 'start_woche' // Zahl der Wochen ab Semesterbeginn, wann die Veranstaltung anfängt (0-x) 'turnus' // 0: wöchentlich, 1: zwei-wöchentlich ), 'irregular' => 'metadate_id' => $val->getMetaDateID(), 'termin_id' => $val->getTerminID(), 'date_typ' => $val->getDateType(), 'start_time' => $val->getStartTime(), 'end_time' => $val->getEndTime(), 'mkdate' => $val->getMkDate(), 'chdate' => $val->getMkDate(), 'ex_termin' => $val->isExTermin(), 'range_id' => $val->getRangeID(), 'author_id' => $val->getAuthorID(), 'resource_id' => $val->getResourceID(), 'raum' => $val->getFreeRoomText(), 'typ' => $val->getDateType(), 'tostring' => $val->toString() );
Eine vollständige Liste aller Parameter der Standardtemplates befindet sich weiter unten.
Ein eigenes Template für die Formatierung zu erstellen ist nicht weiter schwierig
Hier kann man im Template auf die Variable $date zugreifenm welche eine Instanz der SingleDate-Klasse beinhaltet.Dementsprechend sind darüber auch alle Instanzmethoden verfügbar.
Beispiel dates_html.php:
<? if (!isset($link)) $link = true ?> <?= $date->toString() ?> <? if ($date->getResourceId()) : ?> <?= _(", Ort:") ?> <?= implode(', ', getFormattedRooms(array($date->getResourceId() => '1'), $link)); ?> <? endif ?>
$seminar = Seminar::getInstance(''seminar_id''); echo $seminar->getDatesHTML(); echo $seminar->getDatesExport(); echo $seminar->getDatesXML(); echo $seminar->getDatesTemplate('dates/seminar_location.php');
Es besteht außerdem die Möglichkeit, dem Template Parameter mitzuliefern. Im folgenden Beispiel wird die Verlinkung des Raumes abgeschaltet.
echo $seminar->getDatesHTML(array('link' => false));
Gleiches gilt für Einzeltermine - Instanzobjekt erzeugen, passende Methode aufrufen.
$seminar = Seminar::getInstance(''seminar_id''); $singleDate = new SingleDate(''termin_id''); echo $singleDate->getDatesHTML(); echo $singleDate->getDatesExport(); echo $singleDate->getDatesXML(); echo $seminar->getDatesTemplate('dates/date_html.php');
[@ date_html.php date_xml.php
seminar_predominant.php @]
Die Standardtemplates für die Darstellung liegen in templates/dates: seminar_export_location.php seminar_export.php seminar_html_location.php seminar_html.php seminar_predominant.php
(:toc:)
Für die Darstellung von Veranstaltungsterminen werden die Daten aus Seminar::getUndecoratedData an ein Template übergeben, welches dann die Darstellung dieser Daten übernimmt.
Source: Basis-Wiki-Hilfe | Last change: April 01, 2011, at 11:12 PM, tthelen | Local view: Basis-Hilfe