Eigene Funktion einbauen
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Eigene Funktion einbauen
Hallo,
ich möchte eine eigene PHP-Funktion schreiben, die auf JEDER Seite meines phpBB Forums automatisch aufgerufen werden soll. Ich denke die Funktion selbst füge ich im Script includes/funktions.php ein. Wird eigentlich in der gleichen Datei dafür gesorgt, dass die Funktion aufgerufen wird, oder mache ich das auf einer anderen php-Seite? Wie schon geschrieben, die Funktion muss auf allen Seiten ausgeführt werden (egal ob man sich auf der index befindet, oder in einem Unterforum).
Und wo bzw. in welcher Datei muss ich die Variablen an das Template übergeben, damit mir die Variablen im Banner immer zur Verfügung stehen?
Ich hoffe ein Oberguru kann mir weiterhelfen, DANKE!!!!
ich möchte eine eigene PHP-Funktion schreiben, die auf JEDER Seite meines phpBB Forums automatisch aufgerufen werden soll. Ich denke die Funktion selbst füge ich im Script includes/funktions.php ein. Wird eigentlich in der gleichen Datei dafür gesorgt, dass die Funktion aufgerufen wird, oder mache ich das auf einer anderen php-Seite? Wie schon geschrieben, die Funktion muss auf allen Seiten ausgeführt werden (egal ob man sich auf der index befindet, oder in einem Unterforum).
Und wo bzw. in welcher Datei muss ich die Variablen an das Template übergeben, damit mir die Variablen im Banner immer zur Verfügung stehen?
Ich hoffe ein Oberguru kann mir weiterhelfen, DANKE!!!!
Verschoben von phpBB 3.0: Administration und Benutzung nach phpBB 3.0: Mod-Bastelstube am 04.01.2013 18:32 durch Crizzo
Re: Eigene Funktion einbauen
Ungurumäßig mal 
Im Template dann
includes/functions.php
behauptet 
Code: Alles auswählen
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
'COOLE_VARIABLE' => (isset($coole_variable)) ? $coole_variable : false,
{COOLE_VARIABLE}
Area51@4seven | Area51@4seven / Reloaded | Kein Support via PN
Club goin up, on a Tuesday...
Club goin up, on a Tuesday...
Re: Eigene Funktion einbauen
Danke für den Hinweis, die Sache mit der Variable-Übergabe ist jetzt klar. Doch wo wird meine selbst gebastelte Funktion aufgerufen? Alle Funktionen in der Datei includes/functions.php werden dort zwar definiert, doch aufgerufen werden sie dort nicht. Es muss daher noch eine Datei geben, die für die Ausführung zuständig ist.BNa hat geschrieben:Ungurumäßig malincludes/functions.php
behauptet
Im Template dannCode: Alles auswählen
// The following assigns all _common_ variables that may be used at any point in a template. $template->assign_vars(array( 'COOLE_VARIABLE' => (isset($coole_variable)) ? $coole_variable : false,
{COOLE_VARIABLE}
Re: Eigene Funktion einbauen
Klar, die Funktion wird definiert und auch aufgerufen in der Datei.
Das geschieht im Falle der includes/functions.php zwar nicht für jede Funktion, die dort definiert wurde aber für viele.
Zum Beispiel die function
Also Beispiel:
Finde
Davor füge ein
Finde
Dahinter füge ein
Im Template dann
Das geschieht im Falle der includes/functions.php zwar nicht für jede Funktion, die dort definiert wurde aber für viele.
Zum Beispiel die function
request_var(***)
. Wird dort definiert und auch reichlich aufgerufen 
Also Beispiel:
Finde
Code: Alles auswählen
/**
* Generate page header
*/
function page_header($page_title = '', $display_online_list = true, $item_id = 0, $item = 'forum')
{
Code: Alles auswählen
/**
* My cool function
*/
function my_cool()
{
global $user;
$user_id = ($user->data['user_id']) ? $user->data['user_id'] : false;
return $user_id;
}
Code: Alles auswählen
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
Code: Alles auswählen
'COOLE_VARIABLE' => (my_cool() !== false) ? my_cool() : false,
{COOLE_VARIABLE}
Area51@4seven | Area51@4seven / Reloaded | Kein Support via PN
Club goin up, on a Tuesday...
Club goin up, on a Tuesday...
Re: Eigene Funktion einbauen
Jetzt habe ich das Prinzip verstanden, die Funktion wird erst bei der Übergabe der Variable ausgeführt.
Diesen Code finde ich aber komisch:
Wenn ich den Code richtig interpretiere, wird die Funktion my_cool bei der Rückgabe TRUE zweimal ausgeführt:
-> führe my_cool aus
-> falls true zurückgeliefert wird, führe my_cool nochmal aus
-> falls false zurückgeliefert wird, verwende den wert false
Diesen Code finde ich aber komisch:
Code: Alles auswählen
'COOLE_VARIABLE' => (my_cool() !== false) ? my_cool() : false,
-> führe my_cool aus
-> falls true zurückgeliefert wird, führe my_cool nochmal aus
-> falls false zurückgeliefert wird, verwende den wert false
Re: Eigene Funktion einbauen
Nein, es findet nur ein Check statt. Ist aber eh nur als symbolisches Beispiel zu verstehen, damit es verstanden wird:
Der Code bedeutet:
Wenn
Code: Alles auswählen
'COOLE_VARIABLE' => (my_cool() !== false) ? my_cool() : false,
Wenn
my_cool()
nicht false ist ((my_cool() !== false)
), führe my_cool()
aus, ansonsten setze false
Zuletzt geändert von BNa am 05.01.2013 22:26, insgesamt 1-mal geändert.
Area51@4seven | Area51@4seven / Reloaded | Kein Support via PN
Club goin up, on a Tuesday...
Club goin up, on a Tuesday...
Re: Eigene Funktion einbauen
WennBNa hat geschrieben:Wennmy_cool()
nicht false ist ((my_cool() !== false)
), führemy_cool()
aus, ansonsten setzefalse
my_cool()
nicht false ist Um zu wissen ob die Funktion my_cool FALSE oder TRUE zurückgibt, muss diese zunächst ausgeführt werden. Oder habe ich irgendwo einen Denkfehler?
Re: Eigene Funktion einbauen
Ausgeführt ja, aber nicht doppelt ausgegeben. Darüber kann man gerne philosophieren. Jedenfalls hast Du nun ein Bild und kannst weiter über den Sinn und Unsinn von if else Switches sinnieren. Ich bedanke mich für meine Hilfe und verbleibe, viel Spaß beim weiteren programmieren. Abschliessend und um die Gedanken zu entwirren
'COOLE_VARIABLE' => my_cool(),
geht natürlich auch, da innerhalb der Funktion schon abgefragt wird. Einen schönen Abend noch.Area51@4seven | Area51@4seven / Reloaded | Kein Support via PN
Club goin up, on a Tuesday...
Club goin up, on a Tuesday...
Re: Eigene Funktion einbauen
Korrekt. Jenachdem was die Funktion macht, das hast du soweit ich sehen kann ja gar nicht weiter beschrieben, ist das also ungünstig. Du kannst das Ergebnis aber vorher einfach in eine Variable schreiben.dieter99 hat geschrieben:Wenn ich den Code richtig interpretiere, wird die Funktion my_cool bei der Rückgabe TRUE zweimal ausgeführt
Powered by Coffee
Re: Eigene Funktion einbauen
War ja ein Beispielcode und wie ich schon abschliessend sagte:
'COOLE_VARIABLE' => my_cool(),
reicht, da ja innerhalb der function()
schon abgefragt und in Zweifelsfalle false
ausgegeben wird. Je besser innerhalb einer Funktion empty
s oder isset
s ausgeschlossen werden, desto weniger braucht später abgefragt, sondern kann die Funktion im Grunde "als solches" ausgegeben werden. Von daher scheint das Verständnis des OP um die genannte Materie ja höher als vorgegeben. Wunderbar.Area51@4seven | Area51@4seven / Reloaded | Kein Support via PN
Club goin up, on a Tuesday...
Club goin up, on a Tuesday...