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>
- Einsatz von PHP in webEdition
- <we:block> und <we:listview>: Alternierende CSS-Klassen mit <we:ifPosition>
- <we:block> und <we:listview>: Den Inhalt eines Blocks in einer Listview ausgeben
- <we:block>: Nummerieren der Wiederholungen mit <we:position>
- Attribute in HTML-Tags ausspielen
- Auf interne Variablen des aktuellen webEdition-Dokuments zugreifen
- Datenbank-Funktionen
- E-Mail-Benachrichtigung von 404-Fehlern mit webEdition
- Externe JS-Plugins und andere Bibliotheken komfortabel in webEdition importieren
- Fehlerseite für limitierte Logins Multidomain-fähig machen
- Google Sitemap in webEdition erstellen
- Große Dateien – wohin damit?
- Innerhalb einer listview type="search" die ID eines Objektes anzeigen
- Liste der Tastaturkürzel
- Massenoperationen für webEdition Objekte
- Mit webEdition automatisiert Thumbnails erzeugen
- Mit webEdition-Thumbnails responsive Background-Images gestalten
- Pflichtfelder in Dokumenten
- PHP-Klassen und PHP-Libraries einfügen
- Referenzen für PHP, JavaScript und CSS in die webEdition-Sidebar laden
- SEO-optimierte Image-News-Slider mit webEditon und bxSlider
- SEO-URLs, so bekommt ihr sie „klein“
- Tipps und Rezepte
- Vorlagen-Quelltext aus DB anzeigen
- we:comment mehr als nur Kommentare
- webEdition IDs in CSS und JS Dateien einbinden
- webEdition Kategorien
- webEdition Tags statt PHP-Code
- Wie funktionieren eigentlich webEdition Objekte?
- Wie kann ich als Entwickler die Code-Qualität von webEdition-Projekten einschätzen?