Eigene Prozeduren in eigene php auslagern

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Eigene Prozeduren in eigene php auslagern

Beitrag 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.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag 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.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag von karstenkurt »

Aha. Mal schauen:)
Bild
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag 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?
Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag 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);
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag 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
Zuletzt geändert von karstenkurt am Do 01.Dez, 2005 21:54, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du musst DEINEN Part damit ersetzen!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag 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!
Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann nimm include_once...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag von karstenkurt »

Nun wird kein Fehler mehr geliefert, aber der Ausdruck

$lang['datetime']['January'] wird nicht ausgewertet. Liefert immer "" zurück;(
Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Häng doch mal Deine Datei an...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag von karstenkurt »

na klar. Hab eigentlich alles durch die eigentlcihen Werte ausgetauscht.
Dateianhänge
functions_test.zip
(1.26 KiB) 330-mal heruntergeladen
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag 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
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag von karstenkurt »

Super, danke. Jetzt gehts.
Bild
Antworten