KB Archiv DE: Board3 Portal 2.0.0 - Modul Dokumentation
Posted: 21. January 2017 18:05
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:
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:
Füge einfach deinen Modulnamen ein, z.B.:
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:
Nun musst du angeben, in welchen Spalten dein Modul installiert und verschoben werden kann:
Das Ganze noch einmal in Deutsch:
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:
Falls dein Block auch in den seitlichen Spalten erlaubt ist, solltest du ein Modulbild definieren:
Danach definierst du den Dateinamen der Sprachdatei deines Blocks (ohne .php):
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:
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:
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:
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:
'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:
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:
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:
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
*
*/
Außerdem solltest du auch diese Zeile abändern:
Code: Select all
/**
* @package Modulname
*/
Code: Select all
/**
* @package Gallery Block
*/
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
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;
Code: Select all
/**
* Erlaubte Spalten: Addiere einfach deine Optionen (Bsp.: links + rechts = 10)
* oben 1
* links 2
* mitte 4
* rechts 8
* unten 16
*/
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';
Code: Select all
/**
* Default module-image:
* file must be in "{T_THEME_PATH}/images/portal/"
*/
var $image_src = 'portal_gallery.png';
Code: Select all
/**
* module-language file
* file must be in "language/{$user->lang}/mods/portal/"
*/
var $language = 'portal_gallery_module';
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 = '';
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;
Am Ende der Funktionen wird der Dateiname der HTML Datei zurückgegeben, die geladen werden soll:
Code: Select all
return 'modulename_center.html';
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),
)
);
}
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:
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;
}
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);
}