Page 1 of 1

KB Archiv DE: Board3 Portal 2.0.0 - Modul Dokumentation

Posted: 21. January 2017 18:05
by Kevin
Bearbeiten einer Modul Datei

Von oben bis unten werde ich hier erklären wie man die Modul Datei abändern kann.

Du kannst die Datei portal/modules/portal_default.php als Basis für dein Modul verwenden.

Als Erstes solltest du den Kopf der Datei verändern um klarzustellen um welches Modul es sich hier handelt:

Code: Select all

/**
*
* @package Board3 Portal v2 - Gallery Block
* @copyright (c) Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
Natürlich kannst du dein Copyright hinzufügen, allerdings darfst du gemäß der GNU GPL v2 nicht das Copyright von Board3 entfernen.

Außerdem solltest du auch diese Zeile abändern:

Code: Select all

/**
* @package Modulname
*/
Füge einfach deinen Modulnamen ein, z.B.:

Code: Select all

/**
* @package Gallery Block
*/
Du kannst auch einfach Board3 Portal v2 in der Kopfzeile lassen und nur diese Zeile abängern.

Danach musst du jetzt den Klassennamen gemäß deinem Modulnamen abändern. Falls der Dateiname deines Moduls portal_gallery.php ist, musst du ihn wie so abändern:

Code: Select all

class portal_gallery_module
Nun musst du angeben, in welchen Spalten dein Modul installiert und verschoben werden kann:

Code: Select all

    /**
    * Allowed columns: Just sum up your options (Exp: left + right = 10)
    * top        1
    * left        2
    * center    4
    * right        8
    * bottom    16
    */
    var $columns = 31;
Das Ganze noch einmal in Deutsch:

Code: Select all

    /**
    * Erlaubte Spalten: Addiere einfach deine Optionen (Bsp.: links + rechts = 10)
    * oben        1
    * links        2
    * mitte    4
    * rechts        8
    * unten    16
    */
Das dürfte selbsterklärend sein.

Setze die Sprachvariable die später der Titel deines Moduls sein soll. Die Sprachvariable muss dann in der Sprachdatei deines Moduls definiert werden:

Code: Select all

    /**
    * Default modulename
    */
    var $name = 'PORTAL_GALLERY';
Falls dein Block auch in den seitlichen Spalten erlaubt ist, solltest du ein Modulbild definieren:

Code: Select all

    /**
    * Default module-image:
    * file must be in "{T_THEME_PATH}/images/portal/"
    */
    var $image_src = 'portal_gallery.png';
Danach definierst du den Dateinamen der Sprachdatei deines Blocks (ohne .php):

Code: Select all

    /**
    * module-language file
    * file must be in "language/{$user->lang}/mods/portal/"
    */
    var $language = 'portal_gallery_module';
Die Dateien müssen immer in language/"Benutzersprache"/mods/portal/ vorhanden sein.

Falls du eine eigene Template im ACP verwenden willst, kannst du sie hier definieren:

Code: Select all

    /**
    * custom acp template
    * file must be in "adm/style/portal/"
    */
    var $custom_acp_tpl = '';
Beispiele für diese Dateien findest du im adm/style/portal/ Ordnern.

Durch aktivieren von $hide_name kannst du verhindern, dass der Benutzer den Titel des Blocks ändern kann:

Code: Select all

	/**
	* hide module name in ACP configuration page
	*/
	public $hide_name = false;
Die folgenden Funktionen definieren den PHP Code, der auf der Portalseite ausgeführt wird. Die Funktion get_template_center definiert den PHP Code für die obere, mittlere und untere Spalte, währen die Funktion get_template_side den Code für die Seitenspalten definiert.

Am Ende der Funktionen wird der Dateiname der HTML Datei zurückgegeben, die geladen werden soll:

Code: Select all

        return 'modulename_center.html';
Falls nichts zurückgegeben wird, wird auch nicht versucht die Datei einzubinden.

Mit der Funktion get_template_acp() können die Optionen für den Admin-Bereich definiert werden:

Code: Select all

    function get_template_acp($module_id)
    {
        return array(
            'title'    => 'ACP_PORTAL_BOTS_SETTINGS',
            'vars'    => array(
                'legend1'                            => 'ACP_PORTAL_BOTS_SETTINGS',
                'board3_last_visited_bots_number_' . $module_id    => array('lang' => 'PORTAL_LAST_VISITED_BOTS_NUMBER' ,    'validate' => 'int',        'type' => 'text:3:3',         'explain' => true),
            )
        );
    }
'title' definiert den Seitentitel. Mit 'legend1' wird der Titel der ersten Konfigurationsbox. 'legend2' definiert dann den Titel der 2. Box und so weiter.
Falls du eine config Variable (z.B. $config['board3_last_visited_bots_number_' . $module_id'] während $module_id automatisch definiert wird) hast, die durch dein Modul definiert wird, kannst du diese Option einfach unter 'legendx' einfügen'. In dem Array für die Optionen steht 'lang' für die Sprachvariable für diese Einstellung. Falls 'explain' auf ja gesetzt wird, muss es die Sprachvariable von 'lang' auch mit '_EXP' am Ende geben (Beschreibung). Es hilft wenn man sich auch mal die Portaldateien anschaut. 'int' sorgt dafür, dass die Variable als Integer weitergegeben wird, während 'string' die Variable als Text weitergibt. Eine komplette Liste gibt es in der PHP Dokumentation. 'type' definiert wie die Einstellung aussehen soll. 'text:3:3' erstellt eine Textbox mit der Länge 3 und der maximalen Eingabelänge von 3.

Der obige Code sieht so aus:
Image

Die Funktion install wird ausgeführt, wenn das Modul installiert wird. Dadurch kann man z.B. die config Variablen hinzufügen. Stelle sicher, dass deine config Variablen immer mit 'board3_' anfangen und einzigartig sind:

Code: Select all

    function install($module_id)
    {
        set_config('board3_last_visited_bots_number_' . $module_id, 1);
        return true;
    }
Funktion uninstall wird dann beim Deinstallieren des Moduls ausgeführt. Es ist wichtig, dass du auch wieder alles entfernst, was du mit der Funktion install hinzugefügt hast:

Code: Select all

    function uninstall($module_id)
    {
        global $db;

        $del_config = array(
            'board3_last_visited_bots_number_' . $module_id,
        );
        $sql = 'DELETE FROM ' . CONFIG_TABLE . '
            WHERE ' . $db->sql_in_set('config_name', $del_config);
        return $db->sql_query($sql);
    }

Erstellen einer Modul Zip-Datei

Posted: 21. January 2017 18:05
by Kevin
In Board3 Portal 2.0.0 haben wir eine Funktion hinzugefügt, die es dir ermöglicht ein Modul mit einem einzigen Klick hochzuladen. Vorbei sind die Tage in denen Module von Hand via FTP hochgeladen werden mussten.

Um sicherzustellen, dass die Modularchive auch mit Board3 Portal funktionieren, gibt es einige einfach Regeln.


Ordner- und Dateistruktur
Die Zip-Datei darf nur folgende 4 Ordner enthalten:
  • adm
  • language
  • portal
  • styles
Zusätzlich kannst du (und solltest du, falls dein MOD unter der GNU GPL v2 lizensiert ist) auch noch eine license.txt zu deiner ZIP-Datei hinzufügen. Die Lizenzdatei wird beim hochladen ignoriert.
Falls du einige der Ordner nicht benötigst, kannst du diese natürlich auch komplett weg lassen.

Dein Modul besteht normalerweise aus 3 Dateien (als Beispiel verwenden wir die Modul Klasse portal_beispiel):
  • language/en/mods/portal/portal_beispiel_module.php
  • portal/modules/portal_beispiel.php
  • styles/prosilver/template/portal/modules/portal_beispiel_side.html oder portal_beispiel_center.html

Inhalt des adm Ordners:
Dieser Ordner ist eigentlich nur für eigene Templates für die Admin-Bereich.This is mainly for custom acp templates. Diese solltest du in den adm/style/portal/ Ordner packen, ansonsten wird die HTML-Datei nicht mit Board3 Portal 2.0.0 funktionieren.


Inhalt des language Ordners:
In deinem language ordner kannst du für jede Sprache einen Ordner haben, z.B. de für Deutsch(Du)..


Inhalt des portal Ordners:
Innerhalb des portal Ordners solltest du deine Modul Datei im Ordner portal/modules/ unterbringen.


Inhalt des styles Ordners
Du kannst für jedes Style Dateien in diesen Ordner packen. Die prosilver Dateien in den prosilver Ordner, subsilver2 Dateien in den subsilver2 Ordner, usw.