Skip to end of metadata
Go to start of metadata

@plugins = LoxBerry::System::get_plugins(BOOL withcomments, BOOL force, $filename);

 Die Funktion get_plugins liest die Pluginliste des LoxBerry und liefert einen Array zurück, der auch direkt in HTML::Template verwendet werden kann. 

Die Funktion ist primär für LoxBerry Core-Entwickler gedacht. 

Innerhalb eines Plugins wäre es denkbar, zu prüfen, ob beispielsweise ein bestimmtes, anderes Plugin installiert ist.

Der zurückgegebene Array kann direkt in HTML::Template benutzt werden. 

Wird die Funktion mit Comments ausgeführt:

Zur Identifikation ob eine Zeile ein Kommentar oder ein Plugin ist:

  • Kommentar: PLUGINDB_COMMENT ist gesetzt, und/oder
  • Plugin: PLUGINDB_NO ist gesetzt





Ist der erste Parameter = 1, werden die Kommentare der Plugindatenbank im Array mitgeliefert. Wird die Funktion von einem Plugin genutzt, kann der Parameter immer ignoriert werden.



Ist der zweite Parameter = 1, wird ein mehrmaliger Aufruf immer wieder von der Disk lesen (normalerweise würde die DB nach dem ersten Aufruf gecached). In einem Plugin kann dieser Parameter immer igonriert werden.



Diese Funktion ist für LoxBerry-Core Entwickler gedacht. Wird als dritter Parameter ein Dateiname mitgegeben, wird die angegebene Datei als Plugindatenbank geöffnet. Standardwert (bei Weglassen des Parameters) ist die Original-Plugindatenbank $lbsdatadir/plugindatabase.dat.


 This table describes the keys to read from plugin database, and the log level of the LB module functions LoxBerry::System::get_plugins and LoxBerry::System::plugindata (Perl), and LBSystem::get_plugins and LBSystem::plugindata (PHP).The parameters of each plugin can be read with the following keys:

Hash-Variable pro Array-ZeileInhaltDB-Spalte
PLUGINDB_NOPlugin Number 
PLUGINDB_MD5_CHECKSUMThe MD5 Hash generated of Author and E-Mail0
PLUGINDB_AUTHOR_NAMEThe Plugin author name1
PLUGINDB_AUTHOR_EMAILThe authors email address2
PLUGINDB_VERSIONThe version of the plugin3
PLUGINDB_NAMEThe short name of your plugin4
PLUGINDB_FOLDERThe installation folder of your plugin. Usually it is equal to NAME, but on uniqueness problems, it will be different5
PLUGINDB_TITLEThe common title of your plugin6
PLUGINDB_INTERFACEThis is the interface version of the plugin interface (currently 1.0 or 2.0)7

0 ... Plugin does not provide automatic updates

1 ... Updates disabled

2 ... Notify about Updates

3 ... Automatic Updates to release versions

4 ... Automatic Updates to prerelease versions

PLUGINDB_RELEASECFGURL to the plugin's Release Config file. This file contains the new version and the download url for the ZIP archive for new releases. Used in conjunction with AutoUpdate (see above)9
PLUGINDB_PRERELEASECFGURL to the plugin's Pre-Release Config file. This file contains the new version and the download url for the ZIP archive for new prereleases. Used in conjunction with AutoUpdate (see above)10

Log Level 0-7 (Tabelle siehe unten)

If set to -1, this indicates PLUGINDB_LOGLEVELS_ENABLED = 0


0 ... Plugin does not use the loglevel setting from the user in plugin management

1 ... Plugin uses the loglevel setting from plugin management

PLUGINDB_ICONURIThis is the calulated http URI of the plugin icon (e.g. for <img>). This is not a local filesystem path, but a webserver path 
PLUGINDB_COMMENTOnly set if the line is a comment from plugindb 


Log Levels

The Log Levels are leant on the syslog log levels:

LevelNameShortcutUse when
0EmergencyLOGEMERGE... your LoxBerry burns
1AlertLOGALERT... if the critical information also needs to be pushed to the user
2CriticalLOGCRIT... when user intervention is needed to continue operation
3Error → Default valueLOGERR... when an error occurs but
4WarningLOGWARN... when something is strange but does not stop operation
5NoticeLOGOK... is to inform the user that something went ok
6InformationalLOGINF... additional infos to any status
7DebugLOGDEB... for heavy debugging that a user normally don't need.

If a user select Level 3 (Error), he get's all messages from severity 0 to severity 3. If the user selects 5, he will get everything from 0 to 5.


use LoxBerry::System;
use LoxBerry::Web;
my @plugins = LoxBerry::System::get_plugins();

# Or, with comments
# my @plugins = LoxBerry::System::get_plugins(1);
print STDERR "Plugins:\n";
foreach my $plugin (@plugins) {
	if ($plugin->{PLUGINDB_COMMENT}) {
		print STDERR "$plugin->{PLUGINDB_COMMENT}\n";
	print STDERR "$plugin->{PLUGINDB_NO} $plugin->{PLUGINDB_TITLE} $plugin->{PLUGINDB_VERSION}\n";

$htmltemplate->param('PLUGINS' => \@plugins);

# Access a single element
print STDERR "Single element: " . $plugins[0]->{PLUGINDB_COMMENT} . "\n";
# Keep in mind, that if comments are loaded, the index also gives you comments. 
# In that case, array index is not equal plugin number


Verwendung mit HTML::Template

			<div style="display: flex">
				<div style="width: 100px"><img src="<TMPL_VAR PLUGINDB_ICONURI>"></div>
				<div style="min-width: 50px"><TMPL_VAR PLUGINDB_NO></div>
				<div style="min-width: 200px"><TMPL_VAR PLUGINDB_TITLE></div>
				<div style="min-width: 200px"><TMPL_VAR PLUGINDB_FOLDER></div>
				<div style="min-width: 100px"><TMPL_VAR PLUGINDB_VERSION></div>

Wenn die Comments geladen sind, kann mit <TMPL_IF PLUGINDB_NO> sichergestellt werden, dass nur Plugins ausgegeben werden.

  • No labels