Seite 1 von 2

Eigene Module erstellen

Verfasst: 24.05.2009 15:41
von andybabe
Ich habe ein kleines Problem beim Erstellen von Modulen. Ich habe folgende 2 Anleitungen verwendet:

http://wiki.phpbb.com/Creating_modules

http://wiki.phpbb.com/Mcp/info

Allerdings will das nicht so wirklich funktionieren. Warum? Die Dateien habe ich erstellt und hoch geladen. Allerdings kann ich nicht darauf zugreifen. Im ACP erscheint gar nichts.

Hier noch jeweils der Inhalt der Dateien:

mcp_gmmts.php (mcp)

Code: Alles auswählen

class mcp_gmmts
{
    function main($id, $mode)
    {
        $this->page_title = 'mcp_GMMTS';
        $this->tpl_name = 'mcp_gmmts';
    }
}
mcp_gmmts.php (mcp/info)

Code: Alles auswählen

class mcp_gmmts
{
    function module()
    {
        return array(
            'filename'    => 'mcp_gmmts',
            'title'        => 'GMMTS',
            'version'    => '1.0.0',
            'modes'        => array(
                'mode1'        => array('title' => 'MCP_PAGE_MODE_ONE_TITLE', 'auth' => 'acl_m_,$id', 'cat' => array('MCP_PAGE_TITLE')),
                'mode2'        => array('title' => 'MCP_PAGE_MODE_TWO_TITLE', 'auth' => 'acl_m_,$id', 'cat' => array('MCP_PAGE_TITLE')),
            ),
        );
    }

    function install()
    {
    }

    function uninstall()
    {
    }
}
Habe ich etwas falsch gemacht oder vergessen?

Falls sich jemand denkt, was mit der Template Datei ist --> Die ist auch erstellt. Aber die muss ich hier ja nicht posten oder? Weil verändert habe ich sie nicht.

Re: Eigene Module erstellen

Verfasst: 24.05.2009 17:04
von Gumfuzi
Hallo,

versuche mal in der Datei
mcp_gmmts.php (mcp/info)

die Class umzubenennen:

von:
class mcp_gmmts

auf:
class mcp_gmmts_info

Re: Eigene Module erstellen

Verfasst: 24.05.2009 17:31
von andybabe
Ah, stimmt. Muss wohl beim Anpassen passiert sein.

Re: Eigene Module erstellen

Verfasst: 24.05.2009 17:34
von Gumfuzi
d.h. alles ok nun?

Re: Eigene Module erstellen

Verfasst: 24.05.2009 17:48
von andybabe
Also das funktioniert schon einmal, ja ^^ jetzt stellt sich aber eine weitere Frage:

Da ist das Array modes. Wie arbeite ich damit? Ich weiß, dass ich damit im ACP unterschiedliche Modulteile auswählen kann. Jetzt kann ich also dann mode1 aufrufen und mode2 und wie bestimme ich den jeweiligen Inhalt?

Ach und mittlerweile heißt es alles ucp und nicht mcp, da es ein Modul für User sein soll. Habe es auch angepasst. Hier das Aktuelle:

Code: Alles auswählen

class ucp_gmmts_info
{
    function module()
    {
        return array(
            'filename'    => 'ucp_gmmts',
            'title'        => 'GMMTS',
            'version'    => '1.0.0',
            'modes'        => array(
                'games'        => array('Games' => 'Games', 'auth' => 'acl_u_,$id', 'cat' => array('MCP_PAGE_TITLE')),
                'movies'        => array('Movies' => 'Movies', 'auth' => 'acl_u_,$id', 'cat' => array('MCP_PAGE_TITLE')),
            ),
        );
    }

    function install()
    {
    }

    function uninstall()
    {
    }
}

Code: Alles auswählen

class ucp_gmmts
{
    function main($id, $mode)
    {
        $this->page_title = 'Artikel und Berichte';
        $this->tpl_name = 'ucp_gmmts';
    }
}

Re: Eigene Module erstellen

Verfasst: 24.05.2009 18:04
von Gumfuzi
Du meinst, wie man den Mode aufruft bzw. entsprechend des "mode" einen bestimmten Code ausführt?

in der Klasse ucp_gmmts_info definierst Du die verschiedenen Modi (inkl. Seitentitel, nötige Berechtigung, etc.), analog dazu schreibst Du in die Klasse ucp_gmmts den entsprechenden Code rein, den Du via "switch" steuern kannst.

Bevor ich hier lange rumschreibe, siehst Du Dir am besten mal die Dateien an:
includes/acp/acp_board.php
includes/acp/info/acp_board.php

Dort kannst Du das Prinzip erkennen mit dem "switch", dem "case" sowie der definition der _info-Klasse.

Re: Eigene Module erstellen

Verfasst: 24.05.2009 18:10
von andybabe
Ok, das habe ich auch gerade herausgefunden. Was ich aber da noch nicht so kapiere, wie ich das dann an die Ausgabe schicke. Was ich herausfand ist, dass man da mit der Variable $template spielen muss. Nur was genau muss da passieren, damit dann dementsprechend etwas im Template passiert? Da kann ich ja dann bestimmte Dinge mit {} aufrufen. Gibt es da evtl. auch ein Tutorial, welches ich noch nicht entdeckt habe?

Re: Eigene Module erstellen

Verfasst: 24.05.2009 18:20
von Gumfuzi
Hallo,

es gibt hier ein Tut, wo u.a. auch das mit der Templateübergabe erklärt wird:
http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten
(beachte den Unterschied zw. normalen und Block-Variablen)

Re: Eigene Module erstellen

Verfasst: 24.05.2009 18:22
von andybabe
Also kann ich einfach hergehen, schauen was da mit der $template Variable gemacht wurde, das nehmen, einbauen und anpassen?

Re: Eigene Module erstellen

Verfasst: 24.05.2009 18:35
von Gumfuzi
ja, aber noch an Deine Bedürfnisse anpassen.

Lies Dir den Code dort einfach mal durch inkl. den Hinweisen (im Code), da steht immer für was der Codeabschnitt genau ist.