global $phpbb_admin_path; anders einbinden.

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

global $phpbb_admin_path; anders einbinden.

Beitrag von chris1278 »

So ich bin gerade dabei meine extensions auf controller basis umzustellen.

Ich benutze auch die ein oder andere Verlinkung innerhalb des ACP´s und seis nur um zu den Berechtigungen zu verlinken.

Ich lade sonst immer den admin_path mittel globaler vasriable.

Code: Alles auswählen

global $phpbb_admin_path;
Ich weis wie ich den root_path in der Datei service.yml anmelde:

Code: Alles auswählen

- '%core.root_path%'
Das Problem ist was mus da für den Admin Pfad hin. Oder ist es nur möglich diesen Global zu laden.

Ich hab jetzt in dem Admin Controller in der Display function des Moduls wo diese Verlinkung genutzt wird erstmal das mittels global geladden. Dann funktioniert das auch.

Ich würde aber gern sofern möglich dies ohne die global variable tun. Falls da jemand etwas helfen kann. Oder wenn mir jemand eine extension sagen kann wo man admin path mittels service.yml einbindet dann wäre ich sehr dankbar.

Aber vieleicht ist es ja so das man dies eben nur so kann.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7874
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von Kirk »

Hi
Man kann es schon anders setzen, such mal in den phpBB Dateien nach $this->phpbb_admin_path.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von chris1278 »

Wenn ich das richtig sehe kann man die Variable $phpbb_admin_root nicht als core Element in der service.yml laden. Wenn ich das richtig verstehe wird diese variable in Verbindung mit der core.phpbb_root gebildet und kann nur über global als eigene variable eingebunden werden.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7874
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von Kirk »

Du müsstest es korrekt definieren: https://github.com/phpbb/phpbb/blob/6ca ... r.php#L124
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von chris1278 »

Ja hab ich gefunden, aber man kann eben nicht asmin Pfad in Service.yml definieren da es anscheinend kein solches Code event gibt wie beim root_path.
Benutzeravatar
3Di
Mitglied
Beiträge: 106
Registriert: 12.03.2010 14:33
Wohnort: Milano 🇮🇹 Frankfurt 🇩🇪
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von 3Di »

Sie können die Konstante PHPBB_ADMIN_PATH nutzen.

Oder verwenden Sie die richtige Konfiguration, zum Beispiel in .yml arguments:

Code: Alles auswählen

    - '@path_helper'
Dann lösen Sie in PHP Constructor den Weg mit

$this->admin_path = $path_helper->get_phpbb_root_path() . $path_helper->get_adm_relative_path();

https://github.com/phpbb/phpbb/blob/6ca ... #L156-L166

https://github.com/phpbb/phpbb/blob/6ca ... er.php#L19
:ugeek: phpBB Studio 🎁 Spende - Ich bin für die Ukraine! 🇺🇦

Private Nachricht nur für bezahlte Arbeiten.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von chris1278 »

Ok ich habs jetzt ohne global hinbekommen. Danke 3di der tip mit der konstante war passend.

Habs jetzt so gelöst:

im Construct dies hier:

Code: Alles auswählen

$this->phpbb_admin_path 	= "{{ PHPBB_ADMIN_PATH }}";
geht natürlich nur wenn ich den root_path in der service.yml mit lade. ohne den - '%core.root_path%' funktioniert die Konstante an der Stelle wo sie eingesetzt wird nicht. Werde mich aber auch mit dem path helper mal auseinandersetzen.
Benutzeravatar
3Di
Mitglied
Beiträge: 106
Registriert: 12.03.2010 14:33
Wohnort: Milano 🇮🇹 Frankfurt 🇩🇪
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von 3Di »

Ich habe vergessen, hinzuzufügen, dass die Verwendung von Konstanten jetzt verwerflich ist, jemand, der Teil eines Validierungsteams ist, sollte diese Dinge wissen. Verwenden Sie die zweite Option, sie ist einfach, elegant und angemessen. :wink:
:ugeek: phpBB Studio 🎁 Spende - Ich bin für die Ukraine! 🇺🇦

Private Nachricht nur für bezahlte Arbeiten.
Benutzeravatar
3Di
Mitglied
Beiträge: 106
Registriert: 12.03.2010 14:33
Wohnort: Milano 🇮🇹 Frankfurt 🇩🇪
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von 3Di »

chris1278 hat geschrieben: 22.01.2022 20:58 $this->phpbb_admin_path = "{{ PHPBB_ADMIN_PATH }}";
Nicht getestet:
$this->phpbb_admin_path = PHPBB_ADMIN_PATH; ?
:ugeek: phpBB Studio 🎁 Spende - Ich bin für die Ukraine! 🇺🇦

Private Nachricht nur für bezahlte Arbeiten.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: global $phpbb_admin_path; anders einbinden.

Beitrag von chris1278 »

Ok ich hab das jetzt so eingebunden ohne die service.yml

Code: Alles auswählen

$path_helper 				= $phpbb_container->get('path_helper');
$this->admin_path 			= $path_helper->get_phpbb_root_path() . $path_helper->get_adm_relative_path();
Mit dem Ersten lade ich im Container den Path_helper und definiere damit die Variable. so ist das auch in der skeleton extension eingebunden. dann funktioniert das was in der zweiten zeile steht perfekt.
Antworten

Zurück zu „Extension Bastelstube“