Seite 1 von 1

[solved] DB-Prefix in Plugin nutzen

Verfasst: Di 7. Jan 2014, 07:50
von rethus
wie nutze ich eigentlich das richtige DB-Prefix in einem Plugin.

Das DB-Prefix ist ja nicht zwingend "con_", da dies bei der Installation frei gewählt werden kann.
Das Plugin-DB-Prefix ist ja "default-PREFIX" + "pi_".

Nun würde mich interessieren:
  1. Sollte ich meine Tabelle bei $cfg["tab"] registrieren, wenn ja warum.
  2. Wie lese ich das default-PREFIX aus?

Re: DB-Prefix in Plugin nutzen

Verfasst: Di 7. Jan 2014, 15:38
von frederic.schneider_4fb
Guten Tag,

der Datenbanktabellen-Präfix setzt sich zusammen aus dem Inhalt von $cfg['sql']['sqlprefix'] und dem String "_pi". Standardmäßig lautet der Präfix: con_pi. Um in einer Plugin-SQL-Datei (plugin_install.sql, plugin_uninstall.sql usw.) den Präfix ansprechen zu können, musst Du !PREFIX! angeben. Der PluginManager lehnt im Übrigen SQL-Statements ab, die kein Vorkommen des Platzhalters !PREFIX! haben. Beispiel:

Code: Alles auswählen

CREATE TABLE IF NOT EXISTS !PREFIX!_linkwhitelist (`url` varchar(255) NOT NULL default 0, `lastview` int(11) NOT NULL default 0, PRIMARY KEY  (`url`))
Eine Datenbanktabelle kann folglich z. B. heißen: con_pi_linkwhitelist. Du kannst, aber musst nicht die Datenbanktabelle im Array $cfg['tab'] registrieren. Optimalerweise nimmst Du die Registrierung bei Plugins in der config.plugin.php-Datei vor. Beispiel:

Code: Alles auswählen

$cfg['tab']['whitelist'] = $cfg['sql']['sqlprefix'] . '_pi_linkwhitelist';

Re: DB-Prefix in Plugin nutzen

Verfasst: Mi 8. Jan 2014, 12:33
von rethus
Danke, genau das hab ich gesucht: $cfg['sql']['sqlprefix']