Existierende Kategorien ändern, Felder hinzufügen
-
Hallo,
Ich wollte für das Objekt Server in der Kategorie Speicher ein weiteres Feld hinzufügen. Im Forum habe ich oft die Frage nach einer Änderung existierender Kategorien gefunden, aber keine passende Antwort die mich zufrieden stellte. Ich habe also selbst herumgebastelt und nebenher eine Art "Anleitung" geschrieben, für all diejenigen, die auf die selben Schwierigkeiten wie ich gestoßen sind.
Beispiel: Bei Objekt Server Kategorie Speicher ein Text-Feld namens „Raid“ hinzufügen
1) Template ändern
In dem Verzeichnis
_xampp\htdocs\src\themes\default\smarty\templates\content\bottom\content_
muss zunächst dem Template „catg_memory.tpl“ ein Eintrag hinzugefügt werden an der entsprechenden Stelle.[{isys type="lang" ident="LC__CMDB_CATG__MEMORY_RAID"}]:
[{isys type="f_text" name="C__CATG__MEMORY_RAID" p_strTable="isys_memory_raid" p_bDbFieldNN="0" tab="40"}]2) Tabelle ändern
Mit dem Programm MyPhpAdmin, welches in das Web-Verzeichnis vorher kopiert werden muss, kann man der entsprechenden Struktur einen Eintrag hinzufügen.
Angesprochen wird es über http://server-name/phpmyadmin/
Der Tabelle „isys_catg_memory_list“ wird ein Feld namens „isys_catg_memory_list_raid“ hinzugefügt. Der Typ ist text und das Null Kästchen sollte ausgewählt werden, damit das Feld optional auch leer bleiben kann.3) DAO- Datei ändern
In dem Verzeichnis
xampp\htdocs\src\classes\cmdb\dao\category\global_
muss die Datei “isys_cmdb_dao_category_g_memory.class.php“ umgeschrieben werden. Dabei muss man mehrere Einträge hinzufügen.
• Kommentar: * Filter rows
"isys_catg_memory_list__raid" => "LC__CMDB__CATG__MEMORY_RAID",
• Kommentar: *Syncronize category data –> bei create und save
$l_catdata["isys_catg_memory_list__raid"],
• Kommentar: * Executes the query to save the category entry given by its ID $p_cat_level
o Die Methode
public function save($p_cat_level, $p_newRecStatus, $p_titleID, $p_manufacturerID, $p_typeID, $p_unitID, $p_capacity, $p_raid, $p_description)
erweitern um den Eintrag $p_raid.
o bei update folgenden Eintrag hinzufügen
"isys_catg_memory_list__raid = ".$this->convert_sql_text($p_raid).", ".
• Kommentar: * Save global category menory element –> bei update und save!
_ $POST['C__CATG__MEMORY_RAID'],
• Kommentar: * Executes the query to create the category entry referenced by isys_catg_memory__id $p_fk_id
o Die Methode
_ public function create($p_objID, $p_newRecStatus, $p_titleID, $p_manufacturerID, $p_typeID, $p_unitID, $p_capacity, $p_raid, $p_description)
erweitern um den Eintrag $p_raid.
o bei insert folgenden Eintrag hinzufügen
"isys_catg_memory_list__raid = ".$this->convert_sql_text($p_raid).", ".4) UI-Datei ändern
In dem Verzeichnis
_xampp\htdocs\src\classes\cmdb\ui\global_
muss die Datei “isys_cmdb_ui_category_g_memory.class.php“ umgeschrieben werden. Es müssen zwei Einträge an passender Stelle hinzugefügt werden
_• $l_rules["C__CATG__MEMORY_raid"]["p_strValue"] = $l_catdata["isys_catg_memory_list__raid"];
• $l_rules["C__CATG__MEMORY_raid"]["p_strValue"] = $POST["C__CATG__MEMORY_raid"];5) Sprachkonstante ändern
In dem Verzeichnis
xampp\htdocs\src\lang
werden die verwendeten Sprachkonstanten in den Dateien „de.inc.php“ bzw. „en.inc.php“ gepflegt
Ein entsprechender Eintrag mit Übersetzung muss hinzugefügt werden -
Hi,
danke für die Mühe, wird ein paar Leuten bestimmt helfen.
Eine Info noch: man kann eine custom Sprachdatei mit dem Namen "de_custom.inc.php" in src/lang anlegen. Diese Datei wird beim Update nicht überschrieben -
Hi, dieser Beitrag ist jetzt natürlich schon ziemlich alt, aber vielleicht schau hier ja trotzdem nochmal jemand vorbei: Ich müsste ebenfalls 1-2 bestehende Kategorien um jeweils ein Feld erweitern, bin dabei über diesen super Post von ina611 gestolpert und frage mich jetzt aber, was wohl mit den Änderungen bei Updates passiert. Ganz besonders was die neu eingefügten Felder in der DB angeht. Hat hier jemand Erfahrungen damit, die er oder sie mit mir teilen könnte?
"ds" hat ja die bereits die custom Sprachdatei erwähnt.VG ad0105
-
Hi,
bezüglich der eigenen Sprachkonstanten-Datei gibt es bei Updates keine Probleme. Alles andere kann und wird einem mit hoher Wahrscheinlichkeit bei einem der zukünftigen Updates um die Ohren fliegen. Sofern die Anleitung nach sechs Jahren überhaupt noch funktionierten sollte… Zu der Zeit, als der Beitrag geschrieben wurde, gab es übrigens noch keine (bzw. nur sehr rudimentäre) benutzerdefinierte Kategorien, weswegen das mal ein interessanter Ansatz war. Wir sprechen hier übrigens von i-doit in der Version 0.9.9-5.
Also mal ganz davon ab, dass der Support solche Anpassungen nicht unterstützt, würde ich dir ganz dringend davon abraten, solche Änderungen am Kern vorzunehmen. Arbeite lieber mit benutzerdefinierten Kategorien und riskiere keinen Datenverlust oder Systemstillstand.
Lieben Gruß
Christian -
Hallo,
auch kurz meine 5 Cent…
Aus i-doit Herstellersicht =):
Sprachdateien anpassen: JA! (Custom Sprachdateien finden sich als Beispiel im Dateisystem)
Benutzerdefinierte Kategorien benutzen: JA!
Im Code Kategorien anpassen: NEIN! (Es sei denn, Du wirst Entwicklungspartner)