Hallo zusammen,
also hier nun der Hack.
WICHTIG!!!
Bevor Ihr irgendwas ändert, macht eine Sicherung der Datenbank und eine Sicherungskopie der geänderten Scripten! Und bedenkt, dass bei einem Update von Contenido diese Änderungen verloren gehen!
Alle Angaben sind ohne Gewähr. Bei mir funktioniert es so, aber ich übernehme natürlich keine Garantie. Ihr macht die Änderungen auf eigene Gefahr! Also möglichst nicht gleich in einer Produktivumgebung ausprobieren!
So, jetzt aber zur Sache.
Zunächst muß die Tabelle um ein Feld 'image' erweitert werden. Ich speichere dort die URL einer Grafik.
Code: Alles auswählen
ALTER TABLE <prefix>_cat_lang ADD COLUMN image tinytext NULL;
Über den Spaltentyp kann man sicher diskutieren, für meine Zwecke reicht tinytext, weil ich nur relative Pfade eintrage. (Also z. B. images/bla.gif)
Als nächstes muß man nun das Script
includes/include.str_overview.php anpassen.
SUCHE function buildTree (&$rootItem, &$items)
Code: Alles auswählen
$newItem->custom['idtplcfg'] = $item['idtplcfg'];
$newItem->custom['public'] = $item['public'];
(Bei mir Zeile 64+)
AFTER ADD
Code: Alles auswählen
// IMAGE HACK
$newItem->custom['image'] = $item['image'];
// END HACK
SUCHE if ( $perm->have_perm_area_action($area) ) {
Das SQL-Statement wie folgt erweitern:
Code: Alles auswählen
// IMAGE HACK - ADD 'image' IN SELECT
$sql = "SELECT
idtree, A.idcat, level, name, parentid, preid, postid, visible, public, idtplcfg, image
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
C.idlang = '".$lang."' AND
B.idclient = '".$client."'
ORDER BY
idtree";
SUCHE while ($db->next_record())
Code: Alles auswählen
$entry['public'] = $db->f("public");
$entry['idtplcfg'] = $db->f("idtplcfg");
AFTER ADD
Code: Alles auswählen
// IMAGE HACK
$entry['image'] = $db->f("image");
// END HACK
SUCHE
Code: Alles auswählen
} else {
$html = '<a name="renamethis">
<table cellspacing="0" cellpaddin="0" border="0">
<form name="renamecategory" method="post" action="'.$sess->url("main.php?frame=$frame").'">
<input type="hidden" name="contenido" value="'.$sess->id.'" />
<input type="hidden" name="action" value="str_renamecat" />
<input type="hidden" name="idcat" value="'.$idcat.'" />
<tr>
<td class="text_medium"><input class="text_medium" type="text" name="newcategoryname" value="'.$value->name.'"></td>
AFTER ADD
Code: Alles auswählen
<!-- IMAGE HACK -->
<td CLASS="text_medium">Bild: <input class="text_medium" type="text" name="newcatimage" value="'.$value->custom['image'].'"></td>
<!-- END HACK -->
Das war's für diese Datei, speichern und schließen. Vorher Sicherungskopie gemacht???
Jetzt muß noch das Script angepaßt werden, das die Änderung in die Datenbank einträgt. Das ist
includes/functions.str.php.
SUCHE function strRenameCategory ($idcat, $lang, $newcategoryname) {
ERSETZE DURCH
function strRenameCategory ($idcat, $lang, $newcategoryname,
$newcatimage) {
In der Datenbank steht in der Tabelle <prefix>_actions der obige Funktionsaufruf drin. ID 11, Name str_renamecat. Dort muß im Feld 'code' der richtige Aufruf eingetragen werden:
Code: Alles auswählen
strRenameCategory($idcat, $lang, $newcategoryname, $newcatimage);
So, das war's. Jetzt könnt Ihr in Eurer Navigation auf das Feld 'image' zurückgreifen.
![Smile :-)](./images/smilies/icon_smile.gif)
Will jemand ein Beispiel haben?
Gruß, Bianka