Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   X-Mentor (Archiv) (https://boardunity.de/x-mentor-archiv-f51.html)
-   -   Vorgehen: Eigene Variable einbinden (https://boardunity.de/vorgehen-eigene-variable-einbinden-t2215.html)

jaques 02.08.2004 11:22

Vorgehen: Eigene Variable einbinden
 
Hi Leute,
erstmal ein großes Dankeschön an die Entwickler, X-Mentor ist klasse!
Dann hätte ich noch eine Frage: Wie kann ich eine eigene Variable definieren?
Also, nach dem Beispiel aus der Doku:
Code:

<p><b>{text}</b></p>
wird zu
Code:

<p><b>Lorem ipsum dolor sic amet</b></p>
Ich würde gerne eine Variable so wie {text} einführen, also z.B. {foo}, die den Rückgabewert meiner PHP Funktion foo() enthält.
Kann mir da jemand weiterhelfen?

Danke, Jaques

Patrick Gotthardt 02.08.2004 16:08

Eigentlich ganz einfach.
Du musst nur wissen, in welchem Template die Variable verfügbar seien soll, dann einfach mit in das Array packen, dass beim Aufruf der get-Methode der Template-Klasse als Parameter übergeben wird.

jaques 03.08.2004 14:44

Danke für deine Antwort DragonMaster! Leider hab ichs noch nicht so ganz geblickt :(
Also, wenn ich {foo} in article.tpl verwenden will, in welchen Array muss dann was reingeschrieben werden?

Danke, Jaques

Patrick Gotthardt 03.08.2004 15:33

./inc/system.class.php
Suche:
PHP-Code:

$result[0]['text']    = Bbcode::encode($result[0]['text'],$result[0]['format']); 

Füge darunter ein:
PHP-Code:

$result[0]['foo']     = foo(); 


jaques 03.08.2004 18:15

Klasse! Tausend Dank!
Nur noch eine Frage: Wie finde ich raus, in welchen include-Dateien ich die Änderung vornehmen muss, wenn ich die Variable auch in anderen Templates nutzen will?

Danke nochmal! Jaques!

EDIT:
Nochwas: Die Zeile, die ich suchen sollte, finde ich in system.class.php zweimal, in der Funktion article($id) und in doprint($id). Muss ich die Änderung in beiden Funktionen vornehmen?

Patrick Gotthardt 03.08.2004 18:42

Kommt darauf an, ob du die Variable auch in der Druckversion benötigst.

Es geht immer nur über die system.class.php-Datei, bzw. deren Methoden.

jaques 03.08.2004 19:15

Achso, habs geblickt. Aber wenn ich in header.tpl {foo} brauche, wie mach ich das dann, weil die Funktion header ja
PHP-Code:

return $GLOBALS['Template']->load('header'$array); 

zurückgibt und keinen Array $return?

Patrick Gotthardt 03.08.2004 20:29

Musst du nachsehen, wo $array initialisiert wird oder eine Zeile über diesem return folgendes einbauen:
PHP-Code:

$array['foo'] = foo(); 


dblum 10.08.2004 08:42

bei mir liefert das einen error!!

Notice: Undefined offset: 0 in system.class.php on line 431

Fatal error: Call to undefined function: bild() in system.class.php on line 98

die funktion:

function footer($array = array())
{
$id = isset($_GET['catid']) ? $_GET['catid'] : 0;
if($GLOBALS['Template']->fileexists("footer_".$id)){
$array['bild'] = bild();
return $GLOBALS['Template']->load('footer_'.$id, $array);
}
else {
$array['bild'] = bild();
return $GLOBALS['Template']->load('footer', $array);
}
}


function bild() {

echo "test";

}

Patrick Gotthardt 10.08.2004 12:33

Statt bild(); musst du $this->bild();
schreiben.

Und diese Funktion sollte einen Rückgabewert (return xyz;) haben, damit es eine Variable gibt.

saiki 18.08.2004 02:58

ich habe ein script jetzt in die system.class.php eingebunden:
Code:

function alter()
            {
        ob_start();
        include 'alter.php';
        $alter = ob_get_contents();
        ob_end_clean();
        return $alter;
                }

es liefert als return $alter. und diesen wert würde ich gerne im category_head als {wert} wiedergeben lassen, aber ich kriegs nicht hin :(
jemand nen vorschlag?

Patrick Gotthardt 18.08.2004 08:36

Da wo das Template category_head aufgerufen wird gibt es ein Array, dass wird als Parameter übergeben.
Dort musst du die Funktion $this->alter() als Wert und 'alter', bzw. den Variablennamen, als Schlüssel angeben.

Ich glaub das hab ich nu schon 100mal erklärt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25