Allgemeine Variablen und Funktionen

Wichtige Variablen und Funktionen, welche auf einer Vorlage zur Verfügung stehen:

we_base_WE::getWeDoc() (ehemals $GLOBALS['we_doc'])

Liefert die Instanz des Hauptdokuments und ist auf Vorlagen immer verfügbar.
Wichtig: $GLOBALS['we_doc'] ist seit Version 9.0.0 deprecated und sollte nicht mehr verwendet werden!

Das gelieferte  PHP-Objekt stellt viele Eigenschaften und Informationen des aktuellen webEdition-Dokuments beziehungsweise der aktuellen Vorlage zur Verfügung.

Beispiele

<?php
    // Beispiel 1 - Gesamtes we_doc-Objekt ausgeben
    p_r(we_base_WE::getWeDoc());

    // Beispiel 2 - Zugriff auf einzelne Felder des we_doc-Objekts
    echo we_base_WE::getWeDoc()->getElementS('Title');
?>


Wichtiger Hinweis zur (ehemaligen) Funktion getElement():

Da der PHP-Core von webEdition seit Version 9.0.0 komplett typisiert ist, dürfen auch Funktionen nur noch eindeutige Rückgabe-Typen besitzen. Die "generische" Funktion getElement(), die auf allen Dokumenten und Objekten zur Verfügug stand, wurde deshalb durch neue, typsichere Fuktionen abgelöst, ebenso setElement():

  • getElementB(string $name, bool $default = false): bool
  • function getElementI(string $name, int $default = 0, bool $defaultOnEmpty = false): int
  • getElementS(string $name, string $default = '', bool $defaultOnEmpty = false): string

Der Default wird gesetzt, wenn das Element auf dem Dokument/Objekt nicht vorhanden ist. Ist $defaultOnEmpty = true, wird der Default auch ausgegeben, wenn das Element zwar vorhanden ist, aber bei empty() zu false true auswertet. Wichtig: Ist ein Feld nicht befüllt, ist auh auf dem instanzierten Dokument/Objekt das Element nicht vorhanden.

Analog dazu wurde auch setElement() typisiert:

  • setElementB(string $name, bool $data, string $type = 'txt'): void
  • setElementI(string $name, int $data, string $type = 'txt'): void
  • setElementS(string $name, string $data, string $type = 'txt'): void

 

 

we_tag_listview::$current (ehemals $GLOBALS['lv'])

Dieses Objekt stellt viele Eigenschaften und Informationen innerhalb einer Listview (<we:listview>) und einer Objekt-Detailansicht (<we:object>) zu Verfügung - auch eventuell aufgetretene Fehler. Wichtig: es handelt sich dabei um das Listview-Objekt, nicht um das aktuell auszugebende Dokuement/Objekt. Letzteres wird unter der privaten Eigenschaft Record referenziert, und ist mit der Fuktion getRecord() greifbar. Wichtig: Bei dem Record handelt es sich um ein assoziatives Array mit wichtigen Werten des Dokuments/Objekts, nicht um die Referenz auf das Dokuments selber.

Beispiele

<we:listview name="Liste">
    <we:repeat>
        <?php
        // Ausgabe des $lv Objekts
        p_r($GLOBALS['lv']);

        // Ausgabe der ID des in der LV aktuellen Dokuments/Objekts 
        echo we_tag_listview::$current->getRecord()['we_id'];
        ?>
    </we:repeat>
</we:listview>


Wichtiger Hiweis: Wo immer möglich, sollte mit we-Tags gearbeitet werden statt auf interne Funktionen zuzugreifen. Sollte dies wirklich nicht gehen, ist ein Hinweis in der Bugbase auf ein womöglich fehlendes Tag manchmal der nachhaltigere Weg, das Problem zu lösen.

 

we_tag(string $name, array $attribs[, $content="")

Mit dieser Funktion kann man die Ausgabe von fast jedem webEdition Tag erhalten: Sie entspricht  dem Tag in seiner geparsten Form als PHP-Funktion.

$name = Tag-Name
$attribs = Tag-Attribute in Form eines assoziativen Arrays
$content = Tag-Content, optional, der Kode der gegebenfalls zwischen dem öffnenden und schließenden Tag steht

Beispiel 1 - Gibt einen we:Tag als String zurück:

<?php echo we_tag("input", array("type"=>"text", "name"=>"Title")); ?>
ist equivalent zu:
<we:input type="text" name="Title" />

Beispiel 2 - Formatiert die Überschrift in Kleinbuchstaben:
<we:ifEditmode>
    <we:input type="text" name="Title" spellcheck="true"/>
<we:else comment="Vorschau oder Frontend"/>
    <?php
    // PHP-Code zum Manipulieren der Überschrift
    $headline = we_tag('input',array('name' => 'Title'));
    $lowerHeadline = strtolower($headline);
    ?>
</we:ifEditmode>

 

powered by webEdition CMS