PDA

Shop Support News Archive - Shopbetreiber News -> Forum : Für Jede Oberkategorie Ein Anderes Bild Anzeigen


AMueller1
27.02.2007, 11:08
Hallo,

auf die Startseite habe ich ein Bild eingefügt (dies hat nichts mit dem Logo zu tun). Dafür habe ich in der Tabelle (index.php) eine neue Zeile eingefügt. Jetzt soll sich dieses Bild ändern, wenn man eine Oberkategorie anklickt. Also für jede Oberkategorie habe ich ein anderes Bild. Wird eine Unterkategorie angeklickt, soll das Bild der Oberkategorie geladen bleiben. Wie frage ich die Kategorie ab? Kann ich diese dann an die index.php übergeben, um dort zu überprüfen, welches Bild ich laden muss? Oder wie würdet ihr vorgehen?
Vielen Dank im Voraus.

Gruß
O.C

hendrik
27.02.2007, 16:04
gelöscht

AMueller1
28.02.2007, 11:02
vielen Dank, es funktioniert super :-)

Damit die Bilder der Oberkategorie auch beim Anklicken der jeweiligen Unterkategorien angezeigt werden, habe ich jetzt die Bilder der Oberkategorie kopiert und auch in catimg_4, catimg_5, ... umbenannt. Nur so komme ich zu jeder Menge doppelter Bilder. Gibt es noch eine andere Möglichkeit?
Vielen Dank im Voraus.

Gruß
AMueller1

hendrik
28.02.2007, 11:19
gelöscht

Fletsch
28.02.2007, 15:24
Hey super Sache Hendrik! Danke

AMueller1
28.02.2007, 16:02
Hallo Hendrik,

vielen Dank, jetzt haben auch die Unterkategorien das Bild, super :-)

Gruß
AMueller1

green_eye55
01.03.2007, 17:48
hallo an alle!

tolle lösung die ihr da aufgestellt habt. passt auf anhieb und ist genau das, was ich heute gesucht habe. ein kleines problem habe ich dabei: ich möchte das bild in der categorie_listing.html ausgeben und nicht in der index.html. hier steht die variable allerdings nicht zur verfügung. was muss ich ergänzen bzw. wo übernehmmen, damit ich mit der variable in der categorie_listing.html arbeiten kann?

gruß

hendrik
02.03.2007, 09:55
gelöscht

AMueller1
02.03.2007, 20:05
Hallo,

jetzt möchte auch ich die Variable "catimg" an einer anderen Stelle als der index.html verwenden. Nur in welcher php Datei muss ich die Variable zu weisen, wenn ich sie in der box_categories verweden will?
Wie finden ich für die Zukunft die passenden php-Dateien in denen ich die Variablenzuweisung für die HTML-Dateien vornehmen muss?

Vielen Dank im Voraus.

Gruß
AMueller1

green_eye55
02.03.2007, 20:06
hallo hendrik,

vielen dank für die antwort. es hat funktioniert ;-)

es stellt zwar kein problem dar, aber trotzdem noch eine frage:
das kategoriebild wird in der categorie_listing.html angezeigt.
nun ist es so bei menüpunkten, wo zb. 2 unterkategorien enthalten sind, dass die categorie_listing.html mehrfach hintereinander (in den untermenüs) aufgerufen wird. das bild soll aber nur in der obersten (hauptmenüpunkt) angezeigt werden. viellenicht hast du ja spontan noch eine idee, wie das umgesetzt werden kann.

ansonsten ist die lösung klasse ;-)

vielen dank für die tolle unterstützung hier im forum.

hendrik
03.03.2007, 00:16
gelöscht

AMueller1
03.03.2007, 19:09
Hallo Hendrik,

vielen Dank für die schnelle Antwort. Ich habe die folgende Zeile:

$smarty->assign('catimg2', 'catimg_'.$cPath_array[0].'.jpg');

in die Datei categories.php am Ende eingfügt. Damit ein Bild für jede Kategorie in der box_categories.html angezeigt wird. In der Datei box_categories.html ist der Variablen catimg2 jedoch leer. Mache ich die Variablenzuweisung in der rnichtigen PHP Datei und an der rnichtigen Stelle?

Vielen Dank im Voraus.

Gruß
AMueller1

hendrik
03.03.2007, 20:34
gelöscht

AMueller1
04.03.2007, 11:13
Hallo Hendrik,

vielen Dank, es funktioniert wieder einmal wunderbar. Bin echt begeistert :-)
Noch einen schönen Sonntag.

Gruß
AMueller1

FlamingMoe
09.10.2007, 17:37
''>ZITAT(hendrik @ Feb 27 2007, 17:04) 21799
Du kannst es folgendemaßen lösen.

1.
Leg deine Kategoriebilder in den Ordner templates/<dein template>/img/
In die Dateinamen der Bilder integrierst du die Kategorie-ID

z. B. catimg_1.jpg, catimg_2.jpg, ...etc.
2. Datei templates/<dein template>/source/boxes.php
ganz am Ende steht:

$smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');

Dort folgende Zeile anfügen

$smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');
$smarty->assign('catimg', 'catimg_'.$current_category_id.'.jpg');
3. Im Template templates/<dein template>/index.html fügst du an entspr. Stelle das Bild ein

{$tpl_path}img/{$catimg}

Gruß
Hen
[/b]

Coole Sache. Gibt's auch eine Möglichkeit auf diese Weise Inhalte des Content Managers darzustellen? Noch schöner wäre es, wenn sich auch noch Kategorienamen und -beschreibungen in ähnlicher Weise einbauen lassen würden.

thx
moe.

FlamingMoe
09.10.2007, 18:55
Also ich hab das jetzt mal gestrickt mit der Datenbankabfrage, so dass neben den Kategoriebildern auch die Kategoriebeschreibungen in der index.html ausgeworfen werden können.

Da ich leider nicht besonders fit in PHP und xt-commerce bin würde ich Euch bitten, mir zu sagen, ob das eine vernünftige Lösung ist, oder ob man sich damit irgendwie Probleme einhandelt...

In der templates/template/source/boxes.php steht

$kategorietextvariable = xtc_db_query("SELECT
********************************************catego ries_description
********************************************FROM ".TABLE_CATEGORIES_DESCRIPTION."
********************************************WHERE categories_id='".$current_category_id."'
********************************************AND language_id='".$_SESSION['languages_id']."'");
$kat = xtc_db_fetch_array($kategorietextvariable);
$smarty->assign('kategorietext', $kat['categories_description']);


und in der index.html wird dann aufgerufen mit {$kategorietext}

Da das relativ problemlos geklappt hat, bin ich jetzt skeptisch, ob das nicht Zufall war und das dicke Ende noch kommt.... :huh: :huh: <_<

thx
moe.

shd-media
25.02.2008, 13:30
habe zufällig diesen thread hier gefunden und will nochmal drauf zurückkommen:

Habe in der Kategorie Top die Kategorie "Katalog". In "Katalog" sind alle weiteren Hauptkategorien mit Ihren Untrekategorien drin. Jetzt möchte ich das alle Unterkategorien das Bild Ihrer Übergeordneten Kategorie haben.

also: Top-Katalog-Hauptkategorie1-Unterkategorie1

Unterkategorie1 soll den Header von Hauptkategorei1 haben

Geht das irgednwie?

shd-media
25.02.2008, 21:52
Hi DooM,

Muss die Abfrage dann in die xt-Commerce / xt:Commerce_show_category.inc.php? ehrlich gesagt, bin ich jetzt ein wneig überfragt, wie ich das genau mache...

shd-media
25.02.2008, 23:31
Ist es denn Möglich das so umzuschreiben, dass der cPath der übergeordneten Kategorie fürs Bild genommen wird?

Top hat cPath=0
- Katalog hat cPath=0&cID=7
- - Kategorie1 hat cPath=7&cID=8
- - - Unterkategorie1 unter Kategorie1 hat cPath=8&cID=24
- - Kategorie2 hat cPath=7&cID=9
- - - Unterkategorie1 unter Kategorie2 hat cPath=9&cID=29

usw. Jetzt brauch ich immer bei Unterkategorie1 unter Kategorie1 das bild, das für cPath=8 hinterlegt ist und bei Unterkategorie1 unter Kategorie2 das Bild das für cPath=9 hinterlegt ist.

Im Grunde genommen funktioniert das so ja schon. Normal lautet die Domain ja www.shop.de/index.php?cat=c8_kategoriename.html
Gebe ich dafür nun www.shop.de/index.php?cPath=8&cID=24 ein, dann wird das passende kategoriebild angezeigt...

emet
08.04.2008, 21:53
Hallo,

nochmal Frage zu der Lösung von Hendrik.

Die Kategorien liegen ja nicht unbedingt der Reihenfolge nach.

http://www.bizacts.de/webshop (http://anonym.to/?http://www.bizacts.de/webshop)

Im Edition-Mustershop, den ich installiert habe, i9st Kat1 zwar 1 - aber Kat 2 ist 3.

Fazit, kann man die Bilder nicht der reihe nach Nummerieren, sondern muss erst schauen, welche ID die Kategorie hat.

Kann anstatt nach der ID auch nach dem Kategorienamen die Bilderzuweisung funktionieren - dann bekommen die Bilder den Namen der Kategorie.

Wie wäre das umzusetzen.

Gruß
Ernst

BastBast
02.07.2008, 22:33
''>ZITAT(AMueller1 @ Feb 28 2007, 17:02) 21858
Hallo Hendrik,

vielen Dank, jetzt haben auch die Unterkategorien das Bild, super :-)

Gruß
AMueller1
[/b]
huhu,
Da ja die Lösungshilfen hier mittlerweile fehlen wär ich dankbar wenn mir jemand ( AMueller1 z.B. ;) ) das nochmal erklären könnt wie ich bei den Unterkategorien das Bild der Oberkategorien reinkrieg.....
Habs bis jetz so drin wie es im Zitat bei FlamingMoe drin steht (da stands wenigstens noch ;) ) ..
Problem is halt das in den Unterkategorien halt kein Bild angezeigt wird da keins vorhanden..und das von der Oberkategorie möcht ich nich x mal kopieren^^

pufaxx
03.07.2008, 01:51
Hm ... Tja - Doof, alles weg.

Aber vor einiger Zeit hab ich sowas auch schon mal gebastelt >>LINK (http://anonym.to/?http://gunnart.de?p=325) - Viellenicht hilft's ja?

BastBast
07.07.2008, 16:00
''>ZITAT(pufaxx @ Jul 3 2008, 1:51) 54451 - Viellenicht hilft's ja?
[/b]
hi,
jein..nicht wirklich da ich da jetz doch ziemlich an meine Grenzen komme :blink:

Habs jetzt so eingebaut wie Du da beschrieben hast.
Allerdings wird das "Standartbild" nur auf der Startseite angezeigt (wo eigendlich ein vorhandenes "Kategorie - 0 Bild" erscheinen müßte da vorhanden)

Fehlt das Unterkategoriebild kommt in den Unterkategorien auch immer ein "X Bild"....
Wenn ich mit Rechtsklick nachgugg will der Shop immer das Unterkategoriebild anzeigen und nicht das Standartbild oder das Oberkategorienbild..
Ich hab echt kein Plan was ich falsch mache.... :(

mir kommst so vor als ob gar nicht nach der "function get_CatParent" geguggt wird...

so hab ich das Ganze jetzt in meiner xt-Commerce / xt:Commerce_show_category.inc.php stehn (habs eigendlich fast 1 zu 1 übernommen) :
function get_CurrentCat() {
****$CategoryPath = explode('_',$GLOBALS['cPath']);
****$CurrentCat = array_pop($CategoryPath);
****if($CurrentCat != '')
********return $CurrentCat;
****else
********return 0;
}

function get_CatImage($CategoryID = 0) {
****$CatImage = false;
****if ($CategoryID != 0) {
********$CatImageQuery = xtDBquery("
************************select categories_image from ".TABLE_CATEGORIES."
************************where categories_id = ".$CategoryID);
********$CatImageQuery = xt-Commerce / xt:Commerce_db_fetch_array($CatImageQuery,true);
********if (!empty($CatImageQuery['categories_image'])) {
************$CatImage = $CatImageQuery['categories_image'];
********}
****}
****return $CatImage;
}

function get_CatParent($CategoryID = 0) {
****$CatParent = 0;
****if ($CategoryID != 0) {
********$CatParentQuery = xtDBquery("
************************select parent_id from ".TABLE_CATEGORIES."
************************where categories_id = ".$CategoryID);
********$CatParentQuery = xt-Commerce / xt:Commerce_db_fetch_array($CatParentQuery,true);
********if (!empty($CatParentQuery['parent_id'])) {
****************$CatParent = $CatParentQuery['parent_id'];
********}
****}
****return $CatParent;
}

function get_CurrentCatImage($CategoryID = 0) {
****$CatImage = get_CatImage($CategoryID);
****if(!$CatImage && $CategoryID != 0)
********$CatImage = get_CurrentCatImage(get_CatParent($CategoryID));
****return $CatImage;
}

function show_CurrentCatImage() {
****$CatImage = get_CurrentCatImage(get_CurrentCat());
****if(!$CatImage)
********echo DIR_WS_IMAGES.'headimg/catimg.jpg';
****else
********echo DIR_WS_IMAGES.'headimg/'.$CatImage;
}


Da die "Header Bilder" andere sind als die wirklichen Kategoriebilder hab ich ein extra Verzeichnis angelegt und da die passenden Bilder mit rnichtiger ID reingepackt ....sollte ja eigendlich auch gehn, oder?

pufaxx
07.07.2008, 16:23
Sind die Bilder im headimg-Verzeichnis genauso benannt, wie die Bilder, die als Kategorien-Bild hochgeladen worden sind?

Wenn's ein Unterkategorien-Bild gibt (also in der Datenbank eingetragen ist), wird das genommen. Und nur wenn's keins gibt, das von einer Kategorie "eins höher".

Ist bei Dir viellenicht register globals auf off?
Probier's so: Statt

$CategoryPath = explode('_',$GLOBALS['cPath']);

schreib

global $cPath;
$CategoryPath = explode('_',$cPath);

BastBast
07.07.2008, 16:54
''>ZITAT(pufaxx @ Jul 7 2008, 16:23) 55622
Sind die Bilder im headimg-Verzeichnis genauso benannt, wie die Bilder, die als Kategorien-Bild hochgeladen worden sind?[/b]
Jups genauso benannt!
''>ZITAT(pufaxx @ Jul 7 2008, 16:23) 55622
Ist bei Dir viellenicht register globals auf off?
[/b]
ne is auf ON..
''>ZITAT(pufaxx @ Jul 7 2008, 16:23) 55622
Wenn's ein Unterkategorien-Bild gibt (also in der Datenbank eingetragen ist), wird das genommen. Und nur wenn's keins gibt, das von einer Kategorie "eins höher". [/b]
Args!!!!! DAS is das Problem!!!!!
Unterkategoriebilder sind in der DB eingetragen..sind ja die Bilder die in der categorie_listing angezeigt werden.
Im headimg-Verzeichnis sind die Bilder aber nicht vorhanden da ja im Header andere Bilder angezeigt werden sollen als die eigendlichen Kategoriebilder....bzw. nur das Oberkategoriebild..
Wär cool wenn du mir n Tipp geben könntest: Was muss ich jetzt ändern damit praktisch jeweils nur das Oberkategoriebild angezeigt wird (auch wenns 2 Unterkategorien gibt)?

pufaxx
07.07.2008, 17:30
Du willst also nur für die "Hauptkategorien" Headerbilder haben?

Viellenicht so?


function get_CatImage($CategoryID = 0) {
****if($CategoryID != 0) {
********$CatImageQuery = xtDBquery("
************select categories_image from ".TABLE_CATEGORIES."
************where categories_id = ".$CategoryID);
********$CatImageQuery = xt-Commerce / xt:Commerce_db_fetch_array($CatImageQuery,true);
********if(!empty($CatImageQuery['categories_image']))
************return $CatImageQuery['categories_image'];
****}
****return false;
}

function show_MainCatImage() {
****$CategoryPath = explode('_',$GLOBALS['cPath']);
****$CatImage = get_CatImage($CategoryPath[0]);
****if(!$CatImage)
********echo DIR_WS_IMAGES.'headimg/catimg.jpg';
****else
********echo DIR_WS_IMAGES.'headimg/'.$CatImage;
}

BastBast
07.07.2008, 18:56
Jawoll!!! Genau so passt das Perfekt!!!
Hab 1000 Dank für deine Hilfe!!!