e-h-bikestore Posted November 6, 2006 Report Share Posted November 6, 2006 so, hab jetzt zig Stunden daran zugebracht, das horzontale menü (warenkorb, Kasse, Kontoerstellung etc..) mit MouseOver Bildern zu belegen. Habs jetzt zu 90% fertig. Das ganze funktioniert mit nem kleinen code in der stylesheet.css Code: .wechsel5 a { background: url('buttons/german/button_conditions2.gif') no-repeat; display:block; width:98px; /* Linkbereich begrenzen */ } .wechsel5 img { display:block; width:98px; height:35px; border:0; } .wechsel5 a:hover img { visibility: hidden; } .wechsel5 a:hover { /* Workaround fuer IE 5.5 und 6 */ border:0; } * html #wechsel5 a { margin-right:1px; } * html #wechsel5 a:hover { width:98px; margin-right:0; /* Workaround fuer IE 5.01 */ } </style> Hier klicken zum ansehen> Das einzige Problem dabei ist, dass es im Momet nur mit den Bildern auf deutsch funktioniert. Leider habe ich keine ahnung, wie ich im css angeben, kann dass er sich die Bilder aus dem ausgewählten sprachordner , also template/buttons/language/derbenötigtebutton holt. im Monet verweise ich noch direkt auf den ordner "buttons/german/" Im endeffekt möchte ich, dass er automatisch erkennt, ob er den deutschen oder englischen button nehmen soll. In der index.html ist das ja so gelöst: <img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_cash_box.gif" Wie bekomm ich den Code in die css-Datei? Hat irgendwer nen Ansatz oder eine Idee? theoretisch sollte das ja irgendwie möglich sein.... Link to comment Share on other sites More sharing options...
Heiko Roloff Posted November 6, 2006 Report Share Posted November 6, 2006 php in der css? glaub ich nicht. Spontan würde ich in der html-datei sprachabhängig verschiedene ausgaben machen zB für deutsch {php}if ($_SESSION['language'] == 'german') { {/php} jfvjsbvsjvsjvsdjvb {php} } {/php} Heiko Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 7, 2006 Author Report Share Posted November 7, 2006 Hallo Heiko, in der css Datei habe ich kein PHP. Das ist schon richtig, dass die Spracherkennug eigentlich in der html steht. In der index.html werden ja bei den Bildern auch schon die Sprachausgaben angegeben (s.o.). Ich wills nochmal ein wenig erläutern: Also, ich habe für die Horzontalen Menüpunkte Bilder eingesetzt. Diese werden sprachabhängig in der index.html angezeigt. Nun habe ich in der stylesheet.css nen Code angegeben, der einen MouseOver effekt steuert. Dabei wird das Bild aus der index.html auf 100% transparenz geschaltet wodurch das in der stylesheet.css angegebene Hintergrundbild der Tabelle sichtbar wird. Diese Hintergrundbild wird im Moment jedoch noch nicht sprachabhängig ausgegeben, sondern nur für german. Ist wohl nen kleines Mißverständnis - natürlich will ich nicht den PHP code so direkt in die stylesheet packen. aber es muss doch irgendwie machbar sein, dass je nach Sprache das Hintergrundbild entweder aus dem ordner english oder german geholt wird. Ich hoffe, ich konnte das Problem nochmal etwas verdeutlichen, grüße sascha Link to comment Share on other sites More sharing options...
supervisior Posted November 7, 2006 Report Share Posted November 7, 2006 Vergiss es, geht nicht. Dazu müsstest Du die Navigation als ganzes in php machen und die notwendigen css Klassen darin definieren. Link to comment Share on other sites More sharing options...
Heiko Roloff Posted November 7, 2006 Report Share Posted November 7, 2006 Vielleicht steh ich ja auf dem schlauch. Aber was soll´s. Ich kann ja wohl im stylesheet diese klassen doppelt anlegen und dann im template in abhängigkeit von $_SESSION['language'] die eine oder die andere zuweisen. Oder gleich in header.php sprachabhängig gleich eine andere .css ?? <link rel="stylesheet" type="text/css" href="<? if ($_SESSION['language'] == 'german') {echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet_1.css';}else{echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet_2.css';}?>" /> Heiko Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 7, 2006 Author Report Share Posted November 7, 2006 Hmm... an eine 2. css Datei hatte ich auch schon gedacht. kann ich dazu direkt den Code verwenden, den du geschriebenn hast? Also <link rel="stylesheet" type="text/css" href="<? if ($_SESSION['language'] == 'german') {echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet_1.css';}else{echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet_2.css';}?>" /> ??? Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 7, 2006 Author Report Share Posted November 7, 2006 Hallo Heiko, hab den code grad mal in die header.php eingebaut und es funktioniert absolut einwandfrei, soweit ich das jetzt beurteilen kann. Muss dann nur noch feineinstellungen vornehmen und dann schau ich nochmal. auf jeden Fall mal recht herzlichen dank für die großartige hilfe. Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 7, 2006 Author Report Share Posted November 7, 2006 Der MouseOver effekt funktioniert nun 2-sprachig. Jetzt ist nur noch ein Problem d, dass ich noch beheben muss. wenn man nicht angemeldet ist, wird der button "Abmelden" nicht gezeigt. In diesem falle weist er der "Ihr konto" Tabelle die class der "abmelden" Tabelle zu, sodass dort beim drüberfahren mit der Maus der Button "abmelden" statt "Ihr Konto" erscheint. Wie kann ich das unterbinden? Sobald ich das habe, ist das Template fertig. Link to comment Share on other sites More sharing options...
Heiko Roloff Posted November 7, 2006 Report Share Posted November 7, 2006 Kann ich gerade nicht nachvollziehen. Da ist ein unclosed if tag auf der index und ich sehe ncht gerade viel ;.) Ich fände die Lösung die klassen mehrfach anzulegen und im template zu differenzieren etwas eleganter als gleich eine 2. css. wenn das dann der einzige unterschied zwischen den sprachen ist. Heiko Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 7, 2006 Author Report Share Posted November 7, 2006 Hi, der Fehler mit dem unclosed tag ist nun auch wieder raus. die Lösung mit der 2.css Dtaei ist schnell und sauber. Viellicht nicht die elegnateste, aber die wohl einfachste Lösung. Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 7, 2006 Author Report Share Posted November 7, 2006 Das Problem taucht nur auf, wenn man nicht eingeloggt ist. sobald man sich einoggt werden die classes wieder korrekt zugewiesen. Wenn man nicht eingeloggt ist, schmeoßt er die class für die "Mein Konto" Tabelle raus und gibt der Tabelle dir class der "abmelden" Tabelle. Hier mal der code aus der index.html: <td width="98" valign="middle" class="wechsel1" height="35" align="center">{if $account}{php}if (isset($_SESSION['customer_id'])){{/php}<a href="{$logoff}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_logoff.gif" border="0" width="98" height="35"></a></td> <td width="98" valign="middle" class="wechsel2" height="35" align="center">{php}}{/php}{/if}{if $account}<a href="{$account}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_account.gif" border="0" width="98" height="35"></a></td> <td width="98" valign="middle" class="wechsel3" height="35" align="center">{/if}<a href="{$cart}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_cart.gif" border="0" width="98" height="35"></a> </td> <td width="98" valign="middle" class="wechsel4" height="35" align="center"><a href="{$checkout}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_cash_box.gif" width="98" height="35" border="0"></a></td> <td width="98" valign="middle" class="wechsel5" height="35" align="center"><b><font size="2" face="Verdana" color="black"><a href="shop_content.php?coID=3"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_conditions.gif" width="98" height="35" border="0"></a></font></b></td> <td width="17" height="35" class="nav_top_XV"></td> </tr> Ich bin mir ziemlich sicher, dass es was mit der index.html zu tun hat. Kann aber leider nicht herausfinden, wo der Fehler sitzt. Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 8, 2006 Author Report Share Posted November 8, 2006 Hallo Heiko, den Fehler habe ich immer noch nicht weg. Habe mir nun überlegt, für die erste Tabelle ("$logoff") doppelt zu vergeben. Das Ziel soll sein, dass im Falle, dass man angemeldet ist dort ein Button mit der aufschrift "Abmelden" erscheint und wenn man nicht eingeloggt ist, ein button mit der Aufschrift "Anmelden". Wenn ich das mit Texten mache, also ohne Bilder ist das ne recht simple Sache. Aber ich weiß noch nicht genau, welchen code ich brauche um in der Tabelle auf die entsprechende Class zu verweisen, "wenn der kunde einen account hat, dann "Abmelden", wenn der Kunde keinen Account hat, "Anmelden" Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 8, 2006 Author Report Share Posted November 8, 2006 Aktueller Stand: Die Buttons werden nun je nach Login-status getauscht, also entweder der "Anmleden"-Button oder der "Abmelden"-Button. Fuktionieren tut das ganze soweit tadellos. Aber es bleibt immernoch das Problem beim MouseOver, dass bei einigen Tabellen die falsche class zuweist. Nen bißchen Hilfe dafür wäre toll. Also wo liegt der Fehler, bzw. wie unterbinde ich das? Kann ich dazu evntl. zu ein und derselben Tabellenzeile 2 classes zuweisen? also (if_$account)class:"1" (if_kein_$account)class:"2"??? Bin dankbar für jede Hilfe..... Link to comment Share on other sites More sharing options...
Heiko Roloff Posted November 8, 2006 Report Share Posted November 8, 2006 Ob es daran liegt weiß ich nicht ... Alle html-ausgaben die innerhalb einer if abfrage stehen werden in dem erzeugten quelltext nicht enthalten sein wenn die abfrage "false" liefert. Hier ein Teil aus deinem Quelltext In dem Fall dass $_SESSION['customer_id'] nicht gesetzt ist (kein login) fehlt der Teil zwischen den ||||||| in deiner html-ausgabe <td width="98" valign="middle" class="wechsel1" height="35" align="center"> |||||||{if $account}{php}if (isset($_SESSION['customer_id'])){{/php} <a href="{$logoff}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_logoff.gif" border="0" width="98" height="35"></a> </td> <td width="98" valign="middle" class="wechsel2" height="35" align="center"> {php}}{/php}{/if}||||||| {if $account} <a href="{$account}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_account.gif" border="0" width="98" height="35"></a> </td> sieht dann so aus <td width="98" valign="middle" class="wechsel1" height="35" align="center"> <a href="{$account}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_account.gif" border="0" width="98" height="35"></a> </td> nicht eingeloggt ===> class="wechsel1" wird auf den kontolink angewendet eingeloggt ===> class="wechsel1" wird auf logoff angewendet class="wechsel2" wird auf den kontolink angewendet Du muss die IF´se anders setzen Gruß Heiko Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 9, 2006 Author Report Share Posted November 9, 2006 Hallo Heiko, vielen Dank für deine reichliche Unterstützung. Meinst du es ist möglich mit if und else zu arbeiten? Werd wohl mal nen bißchen rumexperimentieren müssen bei den if Tags. Bin leider nicht so der crack bei diesen ganzen Programmierungssachen und hangel mich immer stück für Stück zum gewünchten Ergebnis. Hast du ne Idee, wie man die if Tags anders setzen könnte? Kann dazu auch gerne mal den kompletten Quellcode meiner index.html posten. Oder zumindest den Teil, der für die buttons zuständig ist..... auf jeden Fall schonmal DANKE!!!! Link to comment Share on other sites More sharing options...
Heiko Roloff Posted November 9, 2006 Report Share Posted November 9, 2006 So dass in diesem fall der td-tag entweder vollständig da oder weg ist {if} <td width="98" valign="middle" class="wechsel1" height="35" align="center"> <a href="{$account}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_account.gif" border="0" width="98" height="35"></a> </td> {/if} oder auch so <td width="98" valign="middle" class="wechsel1" height="35" align="center"> {if} <a href="{$account}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_account.gif" border="0" width="98" height="35"></a> {/if} </td> je nachdem ob das fehlen der td dein design verschiebt. Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 9, 2006 Author Report Share Posted November 9, 2006 Super.... werds morgen früh gleich mal ausprobieren mit den codes und dann mal sehen, wie es läuft. Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 9, 2006 Author Report Share Posted November 9, 2006 Hallo Heiko, habe es mal mit beiden codes Versucht und bekomme damit den folgenden Fehler: atal error: Smarty error: [in bike-tuning/index.html line 28]: syntax error: 'if' statement requires arguments (Smarty_Compiler.class.php, line 1256) in /hp/aa/ac/ke/www/bike-tuning/testshop/shop/includes/classes/Smarty_2.6.10/Smarty.class.php on line 1088 Werd nochmal ein wenig rumprobieren, vllt. finde ich irgendwie einen Weg dafür... Link to comment Share on other sites More sharing options...
e-h-bikestore Posted November 9, 2006 Author Report Share Posted November 9, 2006 Hallo Heiko.... habs hinbekommen... {if $account}{php} if (!isset($_SESSION['customer_id'])) { {/php}<td width="98" height="35" valign="middle" class="wechsel0" align="center"><a href="{$account}"><img src="{$tpl_path}buttons/{php}print_r($_SESSION['language']){/php}/button_login_top.gif" border="0" width="98" height="35"></td> Wenn man die if-Sachen komplett vor die Tabelle packt, läufts... Ohne deinen Tipp, dass die if`s anders stehen müssen, wär ich wohl nie drauf gekommen, dass so zu machen.... Bin heilfroh, dass es nun läuft.... Ich glaub, ich hab jetzt knappe 80 std. an der Navi gesessen,.... Gruß, Sascha Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.