Klonen
Aus CavoxCms Wiki
Module können so programmiert werden, dass sie mehrere Male unter verschiedenen Namen verwendet werden können (klonen). Jeder dieser Klone hat seine eigene Datenbank-Tabelle, seinen eigenen Datei-Speicherort und seine eigenen Einstellungen. Damit Module im Backend geklont werden können, muss die Einstellungsdatei des Modules den Wert cloneable=1 enthalten (mehr im Kapitel „Einstellungsdatei“). Zusätlich müssen alle MySQL-Tabellen-Zugriffe, die im Modul verwendet werden mit einem % beginnen. Alle Modul-relevanten Tabellen werden jetzt mit dem Modulnamen als Prefix aufgerufen und so abhängig vom Klon – oder dem Original – aufgerufen.
Einstellungsdatei (module.txt):
[features] cloneable=1
Beispielcode:
$result->save("%table"); // wird intern zu "prefix_currentmodule_table"
$result->save("*table"); // wird intern zu "prefix_table"
$result->save("table"); // wird intern zu "prefix_table"
$db = cDb::getDb();
$db->update("%table", array("field" => "hallo"), "id=10"); // ändert Eintrag mit ID=10 in der Tabelle "prefix_currentmodule_table"
