Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03634.jsonl.gz/2551

PHP Code im Content Bereich verwenden
Um PHP Code notieren zu können muss im Custom Code Element mit den von PHP bekannten Syntax gearbeitet werden, sprich PHP Befehle müssen innerhalb der PHP Zeichen stehen.
<?php
//Custom PHP Code
echo $something;
?>
Daten abfragen
Um an andere Variablen zu kommen kann innerhalb des Content Bereichs des Custom Code Elements wie folgt vorgegangen werden. Zunächst wollen wir mal auf eine Variable / das Ergebnis einer anderen Funktion zugreifen:
<?php
$my_articles = $this->get("read_data_function");
?>
Damit my_var auch etwas enthält muss auf derselben Event Seite wo unsere Custom Funktion aufgerufen wird natürlich zuerst die Funktion aufgerufen werden, welche unsere read_data_function aufruft.
Daten ausgeben
Jetzt können / müssen wir auch was mit den Daten anfangen die uns da gegeben werden...
Gehen wir mal davon aus das unsere "Hilfs"-Funktion eine simple read_data Funktion ist welche uns ein Array aller Joomla! Artikel liefert. Mit Hilfe unseres Custom Code Elements können wir nun eine, unserem Gusto entsprechende, Ausgabe erstellen.
<?php
$my_articles = $this->get("read_data_function");
foreach($my_articles as $article){
echo '<h2>'.articles['Data']['title'].'</h2>';
}
?>
Da es sich bei den Return Daten unserer Funktion um ein "Array of Array's" handelt müssen wir noch in das SubArray Data wechseln hierin befinden sich dann alle relevanten Daten.
Damit oben gezeigter Code auch funktioniert und die Funktion direkt etwas ausgibt darf die Option "Var only result?" nicht aktiv sein:
Daten weitergeben
Um Daten (egal ob es eine einzelne Text-Variable oder ein ganzes Array ist) nach einer verarbeitung aus dieser Funktion an eine andere Funktion oder eine View zu übergeben kann folgende Syntax verwendet werden:
$this->data['my_var'] = $my_php_var; // Variable dann via {data:my_var} verfügbar
$this->set('my_var',$my_php_var);
// Variable dann via {var:my_var}
// oder $this->get('my_var','default') verfügbar
// aber nicht im Debug mittels {debug:} ersichtlich
Alternativ kann natürlich auch mittels der Option "Var only result?" die Ausgabe an einen anderen Ort hin gesteuert werden. Hier muss dann einfach beachtet werden das alles was via echo oder print ausgegeben wird in die Variable mit dem Namen der jeweiligen Funktion gespeichert wird. Wenn die Custom Code Aktion also custom_code heisst ist die Variable via: {var:custom_code} in einem Formularfeld oder in einem Event abrufbar.
Weitere alternative Ansätze haben in meinen Tests mit ChronoConnectivity 6 nicht funktioniert...
Sinn / Nutzen
Sollen Resultate von einer anderen Funktion (z.B. read_data) nochmals auf Serverseite gefiltert oder Array's umformatiert werden kann dies mittels Custom Code Element erledigt werden. Die Custom Code Funktion arbeitet auf Serverseite - Elemente werden also VOR dem Rendering der Seite generiert / angepasst und können somit via HTML / JS weiter verwendet werden.
Wednesday, 05 September 2018
Posted in Functions