Page tree
Skip to end of metadata
Go to start of metadata

Die Timeline und die zugehörige Klasse addon_timeline steht Ihnen ab Version 4.7 zur Verfügung.

Zum Einbinden der Timeline nutzen Sie das Tag <timeline> im XML-Template.

1. Aufrufreihenfolge

2. Abstrakte Methoden

2.1. get_actions

Syntax:

array get_actions()

Beschreibung:

Erlaubt es Aktionen zu definieren, die durch die Timeline genutzt werden.

Beispiel:

function get_actions()
{
  return array(
    'meineDoppelklickAktion' => addon_util_action::get_ajax_action(
      'ajax_class',
      array('event' => '{event}')
    )
  );
}

2.2. get_data

Syntax:

array get_data()

Beschreibung:

Stellt die Daten für die Timeline bereit. Benutzen Sie zum erstellen einzelner Einträge die Hilfsmethode create_item().

Beispiel:

function get_data()
{
  return array(
    self::create_item(1, mktime(0, 0, 0, 4, 1, 2013), mktime(0, 0, 0, 4, 18, 2013), 'Eintrag 1', '', 1),
    self::create_item(2, mktime(0, 0, 0, 4, 2, 2013), mktime(0, 0, 0, 4, 10, 2013), 'Eintrag 2', '', 2),
    self::create_item(4, mktime(0, 0, 0, 4, 6, 2013), mktime(0, 0, 0, 4, 14, 2013), 'Eintrag 3', '', 2),
    self::create_item(3, mktime(0, 0, 0, 4, 3, 2013), mktime(0, 0, 0, 4, 12, 2013), 'Eintrag 4', '', 2)
  );
}

2.3. get_events

Syntax:

array get_events()

Beschreibung:

Gibt ein assoziatives Array bestehend aus dem Event-Bezeichner als Schlüssel und dem Aktions-Bezeichner als Wert zurück. Die Aktionen werden in get_actions beschrieben. Zur Verfügung stehen die folgenden Events, die durch Klassenkonstanten zu verwenden sind:

  • EVENT_CHECK_SECTION - Wird ausgelöst, wenn der Nutzer eine Sektion anhakt.

  • EVENT_DOUBLE_CLICK_ITEM - Wird ausgelöst, wenn der Nutzer einen Doppelklick auf einen Eintrag macht.

Beispiel:

function get_events() : array
{
  return array(
    self::EVENT_DOUBLE_CLICK_ITEM => 'meineDoppelklickAktion'
  );
}

2.4. get_interval

Syntax:

int get_interval()

Beschreibung:

Gibt das Intervall an, in dem die Einheit, die mit get_unit() angegeben wird, genutzt wird.

Beispiel:

function get_interval()
{
  return 2; // Jeder zweite Tag oder jede zweite Stunde, abhängig von der Einheit
}

2.5. get_sections

Syntax:

array get_sections()

Beschreibung:

Gibt die Sektionen für die Übersicht zurück. Diese können mit Hilfe der Methode create_section() erstellt werden. Sektionen können weitere Kindsektionen enthalten, die durch den Nutzer ein- bzw. ausgeklappt werden können.

Beispiel:

function get_sections()
{
  return array(
    self::create_section(1, 'Sektion 1'),
    self::create_section(2, 'Untersektion 1', 1),
    self::create_section(3, 'Sektion 2')
  );
}

2.6. get_start

Syntax:

int get_start()

Beschreibung:

Gibt den Startzeitpunkt der Timeline zurück.

Beispiel:

function get_start()
{
  return mktime(0, 0, 0, 3, 20, 2013);
}

2.7. get_unit

Syntax:

string get_unit()

Beschreibung:

Gibt die Zeiteinheit an, die in der Timeline verwendet werden soll. Es stehen die folgenden Einheiten als Klassenkonstanten zur Verfügung:

  • UNIT_MINUTE - Minuten

  • UNIT_HOUR - Stunden

  • UNIT_DAY - Tage

  • UNIT_WEEK - Wochen

  • UNIT_MONTH - Monate

  • UNIT_YEAR - Jahre

Beispiel:

function get_start()
{
  return self::UNIT_DAY; // Für eine Ansicht bestehend aus Tagen
}

3. Optionale Methoden

3.1. get_length

Syntax:

int|string get_length()

Beschreibung:

Erlaubt es, die Anzahl der darzustellenden Spalten zu steuern. Wenn ein höherer Wert angegeben wird, sind mehr Spalten (ein längerer Zeitraum) zu sehen. Alternativ besteht die Möglichkeit, den Wert "auto" als String zurückzugeben. In diesem Fall wird die Anzahl der Spalten automatisch auf Basis der Breite des Containers, in welchem sich die Timeline befindet, berechnet. 

Achtung: Bei der Angabe von sehr hohen Werten kann es zu Leistungseinbrüchen im Web-Browser des Anwenders kommen. Außerdem leidet die Übersichtlichkeit bei hohen Werten massiv. Wählen Sie stattdessen lieber eine gröbere Einheit.

Beispiel:

function get_marked_start()
{
  return mktime(0, 0, 0, 4, 1, 2013);
}

3.2. get_marked_start

Syntax:

int|null get_marked_start()

Beschreibung:

Gibt den Startzeitpunkt für eine spezielle Markierung in der Timeline zurück. Diese arbeitet mit der Methode get_marked_stop() zusammen. Es ist möglich, null zurückzugeben. In diesem Fall wird keine Markierung angezeigt.

Beispiel:

function get_marked_start()
{
  return mktime(0, 0, 0, 4, 1, 2013);
}

3.3. get_marked_stop

Syntax:

int|null get_marked_stop()

Beschreibung:

Gibt den Endzeitpunkt für eine spezielle Markierung in der Timeline zurück. Diese arbeitet mit der Methode get_marked_start() zusammen. Es ist möglich, null zurückzugeben, in diesem Fall wird keine Markierung angezeigt.

Beispiel:

function get_marked_stop()
{
  return mktime(0, 0, 0, 4, 1, 2013);
}

3.4. get_query

Syntax:

array get_query()

Beschreibung:

Ermöglicht es Ihnen, zusätzliche Parameter beim Aufruf der Timeline zu übergeben und auszuwerten.

Beispiel:

function get_query()
{
  return array(
    'meineGridId' => 'meinGrid'
  );
}

3.5. get_selection_mode

Syntax:

string get_selection_mode()

Beschreibung:

Bestimmt, in welcher Weise der Nutzer Sektionen über Checkboxen selektieren darf. Hierfür werden die folgenden drei Klassenkonstanten bereitgestellt:

  • SELECTION_MODE_NONE - (Default) Erlaubt keine Selektion

  • SELECTION_MODE_SINGLE - Erlaubt es dem Nutzer, genau eine Sektion zu selektieren

  • SELECTION_MODE_MULTIPLE - Erlaubt es dem Nutzer, mehrere Sektionen zu selektieren

Beispiel:

function get_selection_mode()
{
  return self::SELECTION_MODE_SINGLE;
}

3.6. get_tooltip

Syntax:

string get_tooltip(string $type, string|int $id)

Beschreibung:

Gibt den Tooltip für einen Eintrag zurück. Die Methode wird aufgerufen, wenn der Nutzer sich mit dem Cursor über einem Eintrag befindet. Momentan gibt es als Typen nur 'event' (Eintrag). Zusätzlich wird die ID des Eintrags mitgeliefert. Wenn Sie nicht wollen, dass ein Tooltip für einen spezifischen Eintrag angezeigt wird, geben Sie einen leeren String zurück. Wenn Sie gar keine Tooltips verwenden möchten, überschreiben Sie diese Methode nicht. Wenn bei einem Eintrag bereits ein Tooltip angegeben wurde, wird die Methode auch nicht aufgerufen.

Beispiel:

function get_tooltip($type, $id)
{
  // Überprüfen Sie stets den Typen!
  if ($type === 'event')
  {
    return $this->get_tooltip($id);
  }
   
  // Beachten Sie, dass Sie stets einen leeren String zurückgeben, wenn es kein Eintrag ist. 
  // Dies verhindert, dass bei zukünftigen Entwicklungen unsererseits plötzlich Tooltips bei Ihnen auftauchen.
  return '';
}

4. Hilfsmethoden

4.1. create_item

Syntax:

static array create_item( int|string $id, int $start, int $end, string $name = '', string $color = '', int|string $section_id = 0, $tooltip = null, array $additional = [] )

Beschreibung:

Erstellt einen Eintrag für die Timeline. Die Methode ist hilfreich, wenn Sie Einträge mit get_data() initial oder im nachhinein mithilfe eines AJAX-Requests hinzufügen wollen.

Parameter:

  • $id - Eine eindeutige Identifikation des Eintrags. Muss Datentyp Integer oder String sein.

  • $start - Der Startzeitpunkt des Eintrags.

  • $end - Der Endzeitpunkt des Eintrags.

  • $name - Der Bezeichner des Eintrags, der in der Timeline dargestellt wird.

  • $section_id - Die Sektion, in der sich ein Eintrag befindet.

  • $tooltip - Der Tooltip, der dem Nutzer bei diesem Eintrag angezeigt wird. Ist dieser null, wird automatisch versucht, die Methode get_tooltip() aufzurufen, sofern diese überschrieben wurde.

  • $additional - Ein Array von Nutzerdaten, welches Sie z.B. für Ihre eigene Verarbeitung benötigen.

Beispiel:

// Erstellen eines Eintrags in der Sektion mit ID 1
self::create_item(1, mktime(0, 0, 0, 4, 1, 2013), mktime(0, 0, 0, 4, 18, 2013), 'Eintrag 1', '', 1);
 
// Erstellen zweier Einträge in derselben Sektion
self::create_item(2, mktime(0, 0, 0, 4, 2, 2013), mktime(0, 0, 0, 4, 10, 2013), 'Eintrag 2', '', 2);
self::create_item(4, mktime(0, 0, 0, 4, 6, 2013), mktime(0, 0, 0, 4, 14, 2013), 'Eintrag 3', '', 2);

4.2. create_section

Syntax:

static array create_section( int|string $id, string $name = '', int|string $parent_id = null )

Beschreibung:

Erstellt eine Sektion für die Timeline.

Parameter:

  • $id - Eine eindeutige Identifikation der Sektion. Muss Datentyp Integer oder String sein.

  • $name - Der Bezeichner der Sektion, welcher in der Timeline dargestellt wird.

  • $parent_id - Eine optionale Elternsektion.

Beispiel:

// Erstellen einer Sektion
self::create_section(1, 'Sektion 1');
// Erstellung zweier Kindsektionen
self::create_section(2, 'Untersektion 1', 1);
self::create_section(3, 'Untersektion 2', 1);

5. Vererbte Methoden

  • No labels