Seite 1 von 1
Eigene Prozeduren in eigene php auslagern
Verfasst: Fr 07.Okt, 2005 21:59
von karstenkurt
Hallo,
wie kann ich eigene Prozeduren in einer eigenen php aufrufen?
Was muss ich dabei alles beachten?
Will eine Prozedur ausgliedern, welche aus der Auswahl aus einer Dropdownliste eine Anzahl von Punkten eermittelt.
Da ich diese aber mehrfach aufrufe, dachte ich mir, ausgliedern. Und nun nicht in die function.php, sondern in eine eigene.
Verfasst: Sa 08.Okt, 2005 00:13
von oxpus
Dann muss die eigene Datei mit include(...); eingebunden werden, bevor die enthaltene Funktion aufgerufen wird.
Wie das eben auch mit der functions.php gemacht wird.
Verfasst: Sa 08.Okt, 2005 00:18
von karstenkurt
Aha. Mal schauen:)
Verfasst: Do 01.Dez, 2005 20:11
von karstenkurt
Möchte aus der selbst erstellten php-Datei auf die Language-Variablen zugreifen.
Ein include in dieser Art funktioniert aber leider nicht:
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'language/lang_german/lang_main.'.$phpEx);
Wie geht es denn sonst?
Verfasst: Do 01.Dez, 2005 21:47
von oxpus
Wenn du diesen Block an den Anfang Deiner Datei stellst, ist es direkt mit phpBB verbunden und hat dann auch die lang_main.php zur Verfügung:
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
Verfasst: Do 01.Dez, 2005 21:52
von karstenkurt
Wenn ich die common.php einbinde, erscheint die Fehlermeldung:
Code: Alles auswählen
Fatal error: Cannot redeclare secstring() (previously declared in D:\xampp\xampp\xampp\htdocs\xxxx\ctracker\ctracker.php:28) in D:\xampp\xampp\xampp\htdocs\xxxx\ctracker\ctracker.php on line 28
Verfasst: Do 01.Dez, 2005 21:57
von oxpus
Du musst DEINEN Part damit ersetzen!
Verfasst: Do 01.Dez, 2005 22:15
von karstenkurt
Hab ich ja getan!
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
^
Nem ich das mit dem common. raus, gibt es keinen Fehler!
Verfasst: Fr 02.Dez, 2005 00:05
von oxpus
Dann nimm include_once...
Verfasst: Fr 02.Dez, 2005 00:11
von karstenkurt
Nun wird kein Fehler mehr geliefert, aber der Ausdruck
$lang['datetime']['January'] wird nicht ausgewertet. Liefert immer "" zurück;(
Verfasst: Fr 02.Dez, 2005 00:47
von oxpus
Häng doch mal Deine Datei an...
Verfasst: Fr 02.Dez, 2005 00:53
von karstenkurt
na klar. Hab eigentlich alles durch die eigentlcihen Werte ausgetauscht.
Verfasst: Fr 02.Dez, 2005 11:49
von oxpus
Ahrg!
Die Datei wird doch bereits irgendwo includiert!
Dann darf die natürlich NICHT an phpBB angebunden werden.
Sofern Dir Sprachvariablen fehlen, müssen die in den Funktionen einfach globalisiert werden.
Also z. B.:
Code: Alles auswählen
#
#-----[ FIND ]-----
#
function get_Monat($value)
{
#
#-----[ AFTER, ADD ]-----
#
global $lang;
Dafür ist dieser Befehl eben gedacht.
Kleiner Exkurs zu globalen/nicht globalen Variablen:
http://www.oxpus.de/viewtopic.php?p=49541#49541
Verfasst: Fr 02.Dez, 2005 11:55
von karstenkurt
Super, danke. Jetzt gehts.