ACP Module

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.
Antworten
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

ACP Module

Beitrag von D@ve »

Moin,
ich möchte in meiner Migration unter dem Reiter Extensions eine Gruppe mit Namen "Board-Konfigration" anlegen und darunter mein Modul. Die Gruppe soll genauso heißen wie die gleichnamige Gruppe unter "General", sprich die Sprachvariable BOARD_CONFIG benutzen.

Leider funktioniert das nicht, bzw. ich hab das System mit diesen verschachtelten Arrays noch nicht ganz verstanden (hab das immer nur kopiert)

Code: Alles auswählen

    public function update_data()
    {
        global $user;
        $user->add_lang_ext('dave/seourls', 'common');
        return array(
            array('config.add', array('seourls_convert_umlauts', '1')),
            
            // Add ACP module
            array('module.add', array('acp', 'ACP_CAT_DOT_MODS', 'BOARD_CONFIG' )),

            array('module.add', array(
                'acp', 'BOARD_CONFIG', array(
                    'module_basename'    => '\dave\seourls\acp\seourls_module',
                    'modes'                => array('settings'),
                ),
            )),        
        );
    }     
Wenn ich das ausführe erscheint das Modul so wie ich es mir vorstelle ist aber "not accessable". Gleichzeitig erscheint es aber auch im Reiter "General" und dort unter "Board Configuration". Ist das ein Bug oder habe ich da was falsch gemacht?

Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: ACP Module

Beitrag von Elsensee »

D@ve hat geschrieben:Leider funktioniert das nicht, bzw. ich hab das System mit diesen verschachtelten Arrays noch nicht ganz verstanden (hab das immer nur kopiert)
Was passiert, wenn phpBB dieses Array findet:

Code: Alles auswählen

array('config.add', array('seourls_convert_umlauts', '1')),
Es sucht im Ordner phpBB/phpbb/db/migration/tool nach der Klasse config und in dieser Klasse nach der Funktion add(), die dann mit den Parametern 'seourls_convert_umlauts' und '1' aufgerufen wird.

Die Migration sieht richtig aus - zumindest kann ich dort keinen Fehler erkennen und du hast es ja auch genauso gemacht, wie das phpBB-Team in der Migration zur Teamsecurity Extension. :wink:
Ich nehme also an, dass der Fehler mehr in Richtung Modul liegt; genauer gesagt in der acp/seourls_info.php.
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Re: ACP Module

Beitrag von D@ve »

Naja wenn ich statt 'BOARD_CONFIG' einfach 'TEST123' nehme - sprich eine nicht existierende Kategorie, funktioniert es...

Von daher tippe ich auf einen Bug. Oder gibt es eine Konvention, dass man keine bereits existierenden Kategorienamen benutzen darf?

Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Re: ACP Module

Beitrag von D@ve »

Achja...
sucht im Ordner phpBB/phpbb/db/migration/tool nach der Klasse config und in dieser Klasse nach der Funktion add(), die dann mit den Parametern
Gibt es da eigentlich irgendwo eine Doku zu den ganzen Methoden die ich in den Migrationen aufrufen kann?
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: ACP Module

Beitrag von nickvergessen »

kein Support per PN
Benutzeravatar
Wolfsblvt
Mitglied
Beiträge: 29
Registriert: 26.10.2014 22:15

Re: ACP Module

Beitrag von Wolfsblvt »

Elsensee hat geschrieben:Was passiert, wenn phpBB dieses Array findet:

Code: Alles auswählen

array('config.add', array('seourls_convert_umlauts', '1')), 
Es sucht im Ordner phpBB/phpbb/db/migration/tool nach der Klasse config und in dieser Klasse nach der Funktion add(), die dann mit den Parametern 'seourls_convert_umlauts' und '1' aufgerufen wird.
Das ist eine sehr gute Info, so etwas habe ich auch schon gebraucht.
Das ist etwas, was nirgendswo dokumentiert ist, richtig? Den Artikel im Wiki und die Unter-Seiten habe ich auch alle schon gesehen und gelesen. Migration-Files kriege ich auch vollständig und problemlos hin, aber richtig verstanden habe ich trotzdem nicht, was im Hintergrund passiert. Der Satz im Zitat oben hilft mir schonmal weiter als der gesamte Wiki-Artikel :D

Was ich aber immer noch nicht verstanden habe, ist, ob Migration-Files nun automatisch aufräumen. Wenn ich im update_data() eine Config-Variable hinzufüge, wird sie automatisch beim Entfernen entfernt, oder muss ich sie auch im revert_data() eintragen?
Lesser, greater, middling, it's all the same. Proportions are negotiated, boundaries blurred.
I'm not a pious hermit, I haven't done only good in my life. But if I'm to choose between one evil and another,
then I prefer not to choose at all.
― Andrzej Sapkowski, The Last Wish
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: ACP Module

Beitrag von Elsensee »

Freut mich, dass ich weiterhelfen konnte. :)
Wolfsblvt hat geschrieben: ich aber immer noch nicht verstanden habe, ist, ob Migration-Files nun automatisch aufräumen. Wenn ich im update_data() eine Config-Variable hinzufüge, wird sie automatisch beim Entfernen entfernt, oder muss ich sie auch im revert_data() eintragen?
In der Funktion revert_data() müssen nur custom Methoden eingetragen werden. Alles andere wird automatisch von phpBB erledigt.

Interessant ist auch beispielsweise diese update_data():

Code: Alles auswählen

public function update_data()
{
    return array(
        array('config.add', array('blah', 0)),
        array('custom', array(array($this, 'custom_update'))),
    );
}
Die revert_data()-Funktion müsste dann bloß so aussehen:

Code: Alles auswählen

public function revert_data()
{
    return array(
        array('custom', array(array($this, 'custom_revert'))),
    );
}
Das andere wird von phpBB bereits so zurückgesetzt. :D 8)
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Re: ACP Module

Beitrag von D@ve »

Das ist etwas, was nirgendswo dokumentiert ist, richtig? Den Artikel im Wiki und die Unter-Seiten habe ich auch alle schon gesehen und gelesen. Migration-Files kriege ich auch vollständig und problemlos hin, aber richtig verstanden habe ich trotzdem nicht, was im Hintergrund passiert.
So geht's mir auch... ich würde mir da einfach mehr gute HowTos wünschen, die einzeln erklären was da passiert und wie man das praktisch am besten umsetzt. Leider hört man immer SEHR oft Satz "Schaut Euch die bestehenden Extensions an, da lernt ihr am besten".
Leider funktioniert das zumindest bei mir nicht. Ich brauche für alles seeeehr lange. Doku durchsuchen (um oft nix zu finden), Wiki durchsuchen, irgendwelche Mods bestaunen, die oft sehr kompliziert sind. Und dann sich per Trial und Error langsam an die Lösung rantasten. Irgendwie sehr zäh.... :(
Was ich aber immer noch nicht verstanden habe, ist, ob Migration-Files nun automatisch aufräumen.
So wie ich verstanden habe, wird das, was in update_data() ausgeführt wird, automatisch gelöscht. Wenn man aber z.B. das Schema ändert, muss man das selber wieder rückgängig machen.
Wenn ich im update_data() eine Config-Variable hinzufüge, wird sie automatisch beim Entfernen entfernt
Ja, wenn der User auf "delete data" klickt. Aber ich habe da auch immer wieder Probleme. Denn ich glaube der Cache wird dabei nicht gelöscht.

Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Wolfsblvt
Mitglied
Beiträge: 29
Registriert: 26.10.2014 22:15

Re: ACP Module

Beitrag von Wolfsblvt »

Elsensee hat geschrieben:Das andere wird von phpBB bereits so zurückgesetzt. :D 8)
Okay, das ist mal ne klare Ansage. Also werden auch ACP-Module entfernt und Permissions gelöscht?
Was, wenn man in update_data() eine Config-Variable löscht, wird die automatisch wieder hinzugefügt?

Und es schadet vermutlich nicht, alles trotzdem im revert_data() zu beschreiben, einfach aus Übersichtlichkeitsgründen?
Lesser, greater, middling, it's all the same. Proportions are negotiated, boundaries blurred.
I'm not a pious hermit, I haven't done only good in my life. But if I'm to choose between one evil and another,
then I prefer not to choose at all.
― Andrzej Sapkowski, The Last Wish
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: ACP Module

Beitrag von Elsensee »

D@ve hat geschrieben:So wie ich verstanden habe, wird das, was in update_data() ausgeführt wird, automatisch gelöscht. Wenn man aber z.B. das Schema ändert, muss man das selber wieder rückgängig machen.
Stimmt, ja. Das Schema muss man immer selbstständig rückgängig machen.
D@ve hat geschrieben:Ja, wenn der User auf "delete data" klickt. Aber ich habe da auch immer wieder Probleme. Denn ich glaube der Cache wird dabei nicht gelöscht.
Doch, der Cache wird gelöscht, wenn eine Extension aktiviert, deaktiviert oder ihre Daten gelöscht werden. :)
Wolfsblvt hat geschrieben:Okay, das ist mal ne klare Ansage. Also werden auch ACP-Module entfernt und Permissions gelöscht?
Was, wenn man in update_data() eine Config-Variable löscht, wird die automatisch wieder hinzugefügt?

Und es schadet vermutlich nicht, alles trotzdem im revert_data() zu beschreiben, einfach aus Übersichtlichkeitsgründen?
ACP-Module werden entfernt, Permissions gelöscht und Config-Variablen werden hinzugefügt, allerdings mit leerem Wert, denn.. naja.. woher soll man auch wissen, was der vorherige Wert war. :lol:
Kann man in der revert_data() auch noch mal alles beschreiben, sollte eigentlich nicht zu Fehlern kommen. Und wenn man beim Update eine Config gelöscht hat, kann es nützlich sein, in der revert_data() einen Wert dafür anzugeben. :wink: Aber wie gesagt, es ist nicht erforderlich. :wink:
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Antworten

Zurück zu „Extension Bastelstube“