Jump to content
xt:Commerce Community Forum

Einfache Box erstellen


BJS1977

Recommended Posts

Hallo zusammen!

Da die Docs/FAQ nicht erreichbar ist, brauche ich eure Hilfe. Ich versuche gerade verzweifelt eine Box herzustellen, in der nur ein Bild angezeigt wird, welches zu gleich ein Link ist.

Nur soll das Bild, wie bei den Buttons sich ?ndern, wenn die Sprache ge?ndert wird.

Heisst also in der Box soll eine Anzeige stehen auf Einglish z.B. und wenn man die Sprache auf Spanish ?ndert, soll die gleiche Anzeige nur in spanisch da stehen. oder z.B. f?r das Logo. Das gibt einmal in English und einmal in spanisch. Ich hoffe Ihr versteht wie es meine. Ich hab jetzt schon versucht mit Vorlagen es hinzubekommen, aber es klappt leider nicht.

K?nnte mir eventuell einer den Code f?r die php-Datei posten. Ich denk mal nicht, dass man da viel reinschreiben muss. Die Datei heisst z.B. left_ad also dann left_ad.php usw.! Das Bild soll halt auch gleichzeitig ein Link zu einem Produkt sein.

Vielen Dank f?r eure Hilfe.

BJS1977

Link to comment
Share on other sites

So hier habe ich noch den code, den ich mir da zusammengebastelt habe. Es kommt zwar keine Fehlermeldung, aber es wird auch kein Bild angezeigt und im Link soll z:b: eine URL stehen wie http usw. und nicht, das was jetzt da steht.

Hier der Code

<?php

/* -----------------------------------------------------------------------------------------

  $Id: loginbox.php,v 1.2 2004/02/17 16:20:07 fanta2k Exp $  


  XT-Commerce - community made shopping

  http://www.xt-commerce.com


  Copyright (c) 2003 XT-Commerce

  -----------------------------------------------------------------------------------------

  based on: 

  (c) 2000-2001 The Exchange Project (earlier name of osCommerce)

  (c) 2002-2003 osCommercebased on original files from OSCommerce CVS 2.2 2002/08/28 02:14:35 [url]www.oscommerce.com[/url] 

  (c) 2003 nextcommerce (loginbox.php,v 1.10 2003/08/17); [url]www.nextcommerce.org[/url]


  Released under the GNU General Public License 

  -----------------------------------------------------------------------------------------

  Third Party contributions:

  Loginbox V1.0    	Aubrey Kilian <[email protected]>


  Released under the GNU General Public License

  ---------------------------------------------------------------------------------------*/

$box_smarty = new smarty;

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

$box_content='';

 require_once(DIR_FS_INC . 'xtc_image_button.inc.php');



$smarty->assign('BUTTON_TOPLEFT','<a href="' . xtc_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL') . '">' . xtc_image_button('topleft.jpg', IMAGE_TOPLEFT) . '</a>');




  $box_smarty->assign('BOX_CONTENT', $image_topleft);


  $box_smarty->caching = 0;

  $box_smarty->assign('language', $_SESSION['language']);

  $box_top_logo= $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/top_logo.html');

  $smarty->assign('top_LOGO',$box_top_logo);

 ?>

Link to comment
Share on other sites

Hallo BJS1977,

eine URL stehen wie http usw. und nicht, das was jetzt da steht.

Wohin willst Du verlinken?

Auf ein bestimmtes Produkt?

Hast Du eine Sprachdatei f?r spanisch im Verzeichnis /lang/ erstellt?

Gruss

Hanspeter

Link to comment
Share on other sites

HallO!

Nein die muss ich noch erstellen. Nur will ich den Shop gleich so aufbauen, damit er so l?uft, wenn ich die Sprachdatei Spansich habe.

Ja z.B. auf ein produkt. Den Link muss ich nach bedarf dann in der php-Datei ?ndern, ausser es ist halt das Logo. damus ja nicht unbedingt ein Link dabei sein.

Nur wenn ich z.B. eine Werbebild f?r ein bestimmtes Produkt habe und die Sprache der texte im Bild sind auf English, so will ich dass das Bild bei Spanischer Sprachwahl auf Spanisch erscheint. Ich wollte die Werbebilder als "Button" unter der jeweiligen Sprache speichern. Die Boxen brauchen keine ?berschrift oder so. wenn das Bild z.B. 260x400 pixel ist, so soll die Box auch nur so gross sein. Und noch ne Frage k?nnte man anstatt der Bilder (.jpg, .gif) auch Flash Animationen einbinden.

W?re echt cool wenn mir dabei hlefen k?nntest. Sonst habe ich alles zusammen f?r den Shop.

Danke

BJS

Link to comment
Share on other sites

Hallo BJS1977

Mein Vorschlag:

In die Index.html Deines Template soetwas einbauen

{#link_anfang#}{$tpl_path}{#link_ende#}
dann in die lang/german/lang_german.conf in section index [index] soetwas einbauen
link_anfang = '<TD width="102" valign="top"><A href="http://www.csszengarden.com"><IMG SRC="'

link_ende = 'img/top_logo.jpg" border=0 ALT="deutsches-Bild"></a></TD>'
dann in die lang/spanisch/lang_spanisch.conf in section index [index] soetwas einbauen
link_anfang = '<TD width="102" valign="top"><A href="http://www.csszengarden.com"><IMG SRC="'

link_ende = 'img/top_logo.jpg" border=0 ALT="spanisches-Bild"></a></TD>'

wobei Du nat?rlich die Sprachdateien f?r spanisch noch erstellen musst.

Das top_logo.jpg musst Du dann in den jeweiligen Sprachdateien nat?rlich ersetzen und sie im Ordner img unterbringen.

PS

Auch die Links kannst Du noch unterschiedlich w?hlen.

Gruss

Hanspeter

Link to comment
Share on other sites

Hallo Bj?rn

Also wenn Du ein Flash-Movie einbinden willst musst Du einfach das

...

durch

<object width="XXX" height="XXX" data="/verzeichnis/dein_movie.swf" type="application/x-shockwave-flash"><param name="movie" value="/verzeichnis/dein_movie.swf">alternatives_bild.gif</object>
erstzen. (Das darin enthaltene Bild wird ben?tigt, wenn der Browser kein Flash-Plugin hat.)

Aber ein Problem stellt der Link dar, denn der

TAG
funktioniert nicht auf Objecte.

Du musst also den Link aus dem Flash-Movie selbst heraus machen.

PS

In einem Forum habe ich gelesen, das ein Flash-Movie einen ihn umgebenden Link auslesen k?nne und man ihn dann im Movie zur Verlinkung einsetzen kann, aber wie das geht hatte dann der Beitragschreiber nicht mitgeteilt und ich verstehe leider von Flash gar nichts.

Gruss

Hanspeter

Link to comment
Share on other sites

Hallo Bj?rn

Wie Du mir geschrieben hast m?chtest Die Bilder ?ffters ?ndern und die Verlinkung im Content Manager zum Main-Content haben.

Daf?r ist nat?rlich meine obige L?sung etwas unhandlich, desshalb hab ich mir eine einfachere L?sung ?berlegt.

Hier ist nun mein neuer Vorschlag mit diesem kannst Du dann alles ?ber den Content Manager einpflegen und angezeigt wird es in der Box {$box_INFORMATION} und im {$main_content}.

1.

In templates/xtc2/source/boxes/information.php etfernst Du den rot eingef?rbten Teil.

$content_string .= 'icon_arrow.jpg ) . '"]' . $content_data['content_title'] . '

';

2.

In includes/classes/breadcrumb.php ersetzt Du den Code ab

for ($i=0, $n=sizeof($this->_trail); $i<$n; $i++) {

 ? ? ? ?if (isset($this->_trail[$i]['link']) && xtc_not_null($this->_trail[$i]['link'])) {

 ? ? ? ? ?$trail_string .= '<a href="' . $this->_trail[$i]['link'] . '" class="headerNavigation">' . $this->_trail[$i]['title'] . '</a>';

 ? ? ? ?} else {

 ? ? ? ? ?$trail_string .= $this->_trail[$i]['title'];

 ? ? ? ?}


 ? ? ? ?if (($i+1) < $n) $trail_string .= $separator;

 ? ? ?}


 ? ? ?return $trail_string;

 ? ?}

 ?}

?>
mit diesem Code
for ($i=0, $n=sizeof($this->_trail); $i<$n; $i++) {

 ? ? if ((strpos($this->_trail[$i]['title'],'alt="')) === false){

 ? ? ?if (isset($this->_trail[$i]['link']) && xtc_not_null($this->_trail[$i]['link'])) {

 ? ? ? ? ?$trail_string .= '<a href="' . $this->_trail[$i]['link'] . '" class="headerNavigation">' . str_replace("","",(strip_tags($this->_trail[$i]['title']))) . '</a>';

 ? ? ? ?} else {

 ? ? ? ? ?$trail_string .= str_replace("","",(strip_tags($this->_trail[$i]['title'])));

 ? ? ? ?}

 ? ? }else {

 ? ? ? $title = explode('"',(stristr($this->_trail[$i]['title'],'alt="')));

 ? ? ? if (isset($this->_trail[$i]['link']) && xtc_not_null($this->_trail[$i]['link'])) {

 ? ? ? ? ?$trail_string .= '<a href="' . $this->_trail[$i]['link'] . '" class="headerNavigation">' . $title[1] . '</a>';

 ? ? ? ?} else {

 ? ? ? ? ?$trail_string .= $title[1];

 ? ? ? ?}

 ? ? } 

 ? ? ? ?if (($i+1) < $n) $trail_string .= $separator;

 ? }


 ? ? ?return $trail_string;

 ? ?}

 ?}

?>

dies ist n?tig damit in der {$navtrail} Deines Template nicht Bilder angezeigt werden.

Das sind eigentlich schon alle ?nderungen die Du im Code machen must, alles Andere machst Du nun im Content Manager.

Und das geht so:

Im Content Manager -> klick auf Neuer Content

Sprache: -> w?hlen

Sprachgruppe: -> ID vergeben (gleiche Nummern f?r korespondierende Inhalte in verschiedenen Sprachen)

Box: -> Information w?hlen

Sichtbar: -> anklicken

Titel: -> hier f?gst Du jetzt Deine Bildquelle als HTML-Code ein also so

dein_bild.jpg
dabei gibst Du f?r src="/...." einen relativen Pfad zu Deinem Bild ein (achte auf den / am Anfang Deiner Pfadangabe sonst kannst Du es im Content Manager nicht sehen).

Im (alt=". . .") Attribut tr?gst Du den Titel f?r Deinen Content ein, dieser ist dann in der {$navtrail} zu sehen.

M?chtest Du ein Flash-Movie anzeigen setzt Du einfach soetwas ein

<object width="XXX" height="XXX" data="/verzeichnis/dein_movie.swf" type="application/x-shockwave-flash"><param name="movie" value="/verzeichnis/dein_movie.swf">alternatives_bild.gif</object>

Wichtig:

Damit der Titel in der breadcrumb-Navigation ({$navtrail}) richtig angezeigt wird musst Du unbedingt darauf achten das Du im (alt=". . .") Attribut keine Leerschl?ge machst also nicht so (alt = ". . ."); zwischen den Anf?hrungszeichen sind aber Leerschl?ge erlaubt.

So das ist eigentlich schon alles, im Textbereich f?gst Du einfach noch deinen Main-Content ein und fertig.

PS

Soltest Du die Box Informationen bereits anderweitig verwenden kannst Du einen Klon machen, nachfolgend findest Du die Anleitung dazu.

Erstellen einer neuen Box f?r XT-Commerce RC 1.2 (Version 1.0)

1. Eine bestehende Box kopieren und anpassen:

Gehen Sie in das Verzeichniss:

/template/ihrtemplate/source/boxes

Dort kopieren Sie z.b.: box_information.php in box_links.php

Das gleiche machen Sie im Verzeichniss:

/template/ihrtemplate/boxes

Hier kopieren Sie die box_information.html in box_links.html

2. ?ndern der Bezeichnungen in den beiden Files:

In der .php Datei ersetzen Sie alle Eintr?ge die "information" lauten,

mit "links".

Achten Sie darauf das folgender Code gro? geschrieben werden mu?:

$smarty->assign('box_INFORMATION',$box_information);

Hier also das INFORMATION in LINKS ?ndern

3. Neue Box in der boxes.php einbinden:

?ffnen Sie die Datei:

/template/ihrtemplate/source/boxes.php

Und f?gen Sie unter:

require(DIR_WS_BOXES . 'information.php');

folgendes ein:

require(DIR_WS_BOXES . 'links.php');

4. Smarty Tag in die Index.html einf?gen:

?ffnen sie die Datei "index.html" im Verzeichniss:

/template/ihrtemplate/

F?gen Sie {$box_LINKS} entweder in die Linke oder in die Rechte

Navigationsleiste ein.

<td>{$box_CART} {$box_LOGIN} {$box_INFOBOX} {$box_ADMIN} {$box_BESTSELLERS}

{$box_CURRENCIES} {$box_LANGUAGES} {$box_MANUFACTURERS_INFO}

{$box_MANUFACTURERS} {$box_NOTIFICATIONS} {$box_TELL_FRIEND} {$box_LINKS}

</td>

5. ?ndern des file_flag in der links.php:

$content_query=xtc_db_query("SELECT

content_id,

categories_id,

parent_id,

content_title,

content_group

FROM ".TABLE_CONTENT_MANAGER."

WHERE languages_id='".(int)$_SESSION['languages_id']."'

and file_flag=3 and content_status=1");

Hier ?ndern Sie bitte file_flag=0 auf file_flag=3

6. ?nderung in der Datenbank:

Gehen Sie in Ihre Datenbank. Dort finden Sie die Tabelle:

cm_file_flags

Erzeugen Sie einen neuen Eintrag und schreiben Sie f?r file_flag = 3

Und geben Sie der Box noch den Namen: links

Dieser Name wird dann in der Auswahlbox des Content-Managers stehen.

7. ?ndern der Sprachdatei:

Gehen Sie in des Verzeichniss:

lang/german/

?ffnen Sie die Datei: lang_german.conf

F?gen Sie im Abschnitt [boxes] (ziemlich weit unten) folgendes ein:

heading_linkbox = 'Spielelinks' (K?nnen Sie nat?rlich Ihren Begebenheiten anpassen)

?ffnen Sie Ihre links.html Datei und ?ndern Sie:

den Smarty Tag:

{#heading_infobox#}

in

{#heading_linkbox#}

8. Content erzeugen:

Melden Sie sich als Admin an, gehen Sie zum Content-Manager.

Erstellen Sie einen neuen Content. Jetzt sollten Sie bei "Box" die neue Box "links" ausw?hlen k?nnen

und der Box den neuen Content zuweisen.

Achten Sie darauf auch das K?stchen "Sichtbar" anzuklicken, da sonst Ihre neue Box erst

garnicht erscheint.

Mit verspielten Gr??en

Peter Uphoff

Gruss

Hanspeter

Link to comment
Share on other sites

  • 4 months later...

Hallo Peter,

ich habe soweit alles befolgt. Aber mit dem folgenden Punkt habe ich Schwierigkeiten:

6. ?nderung in der Datenbank:

Gehen Sie in Ihre Datenbank. Dort finden Sie die Tabelle:

cm_file_flags

Erzeugen Sie einen neuen Eintrag und schreiben Sie f?r file_flag = 3

Und geben Sie der Box noch den Namen: links

Dieser Name wird dann in der Auswahlbox des Content-Managers stehen.

Frage: Ich habe f?r den Eintrag mit vorkonfiguriertes php-myadmin (bei 1&1) folgende Tabellenfelder:

- Feld,

- Typ (z.B. VARCHAR, TEXT, INT, etc.),

- L?nge/Set,

- Attribute,

- Null (not_null, null),

- Standard,

- Extra

Ich habe eine neue dritte Zeile angelegt (zwei waren bereits vorhanden, siehe unten). Was muss nun wo eingetragen werden? Einfach die Ziffer "3" in "Feld" eintragen??

Welcher "Typ" und welche "L?nge" muss angegeben werden?

Wo muss der Name "links" eingetragen werden?

Unter cms_file_flags waren, wie gesagt, bereits zwei Zeilen vorhanden:

Feld: file_flag, Typ: INT, L?nge/Set: 11, Attribute: leer, Null: not_null, Standard: 0, Extras: leer

Feld: file_flag_name, Typ: VARCHAR, L?nge/Set: 32, Attribute: leer, Null: not_null, Standard: leer, Extras: leer

M?ssen diese beiden Zeilen irgendwie ge?ndert werden??

Vielen Dank f?r die dringend ben?tigte Hilfe, komme einfach nicht weiter.

Zusatzfrage: Gibt es eine Referenz f?r Beginers wo man sowas und anderes auch nachlesen und verstehen kann?

Danke an alle!!! XTC ist ein tolles Projekt das ich unterst?tze!!!

Gr?sse aus GT

Link to comment
Share on other sites

  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...