Anhänge werden nicht in einem neuen Fenster geöffnet

Du hast ein Problem gefunden und weißt nicht genau wo es hinpasst...
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Kopernikus »

Ich habe soeben folgendes festgestellt. Ich stelle meinen Kunden diverse Anleitungen und Informationen in Form von PDF's zur Verfügung. Diese können dann direkt beim Produkt heruntergeladen werden. Die Einbindung geschieht normal über den Content Manager. Nun habe ich bemerkt (war beim alten xtc offenbar auch schon so), dass Anhänge nicht in einem neuen Fenster, sondern im aktuellen Shopfenster geladen werden. Schaut man sich also ein PDF an, muss man anschliessend im Browser die Back Taste betätigen um wieder in den Shop zurückzugelangen.

Das ist meiner Meinung nach sehr ungeschickt gelöst, da manche Kunden nach dem Lesen des Artikels vermutlich das Fenster ganz schliessen. Möglicherweise führt dies dann im Endeffekt sogar zum Bestellabbruch. Weiss jemand wo sich diese Einstellung versteckt hält, damit zukünftig alle Anhänge in einem neuen Fenster geladen werden können?

Grüsse Kopernikus
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Xantiva »

Kannst Du im Template dann beim Link nicht einfach ein target="_blank" Attribut angeben? Dann sollte das immer in einem neuen Fenster geöffnet werden.
Mein Shop: http://www.basteln-selbermachen.de
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Kopernikus »

Das habe ich mir eben auch gedacht. Aber so klappt das leider auch nicht :(

Code: Alles auswählen

<a href="#tabs-4"target="_blank">{#media#}</a></li>
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Xantiva »

Das ist ja auch kein Link auf eine neue Seite, sondern nur ein Anker auf der Seite (hier für den Tabs).
Schick mir mal die URL ...
Mein Shop: http://www.basteln-selbermachen.de
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Kopernikus »

Xantiva hat geschrieben:Das ist ja auch kein Link auf eine neue Seite, sondern nur ein Anker auf der Seite (hier für den Tabs).
Schick mir mal die URL ...
Hallo Mike

Anbei der Link zur Seite mit den Produkte Downloads: http://www.engelis-naturshop.ch/webs14/ ... e-19l.html

Nebenbei noch folgende Frage. Ich habe unter Downloads wie Du gleich sehen wirst auch ein Video eingebettet. Offenbar funktioniert bei den Downloads jedoch der Reiter nicht richtig, weshalb das Video über die Reiter-Begrenzung hinausschiesst. Das ist zwar nur ein kleiner Schönheitsfehler, aber vielleicht hast Du da auch noch eine Idee wie man dies verhindern kann.

Grüsse
Patrik
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Xantiva »

Das was Du gepostet hast, ist doch nur der Link zum Reiter ...

Wenn ich bei dem Download - Link per Firebug das target Attribut hinzufüge, öffnet sich die PDF in einem neuen Fenster/Tab (je nach Browsereinstellung).

Und mit dem Video, füge mal nach dem div id=products_media noch einen div ein. Da passt sonst die Höhe nicht.
Mein Shop: http://www.basteln-selbermachen.de
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Kopernikus »

Hallo Mike

Ich glaube wir sprechen aneinander vorbei. Mein Problem besteht ja genau darin, dass ich keine Ahnung habe, in welcher Datei dieser Link generiert wird. Ich gehe ja folgendermassen vor:

1. Im Content Manager klicke ich auf "neuer Content"
2. Ich wähle den gewünschten Artikel aus und speichere das entsprechende File (PDF, JPG etc.) per FTP in /media/products
3. Nun kann ich das File ja per Dropdown auswählen, einen Titel vergeben und speichern. Im Gegensatz zu einem konventionellen Link der direkt im Contentbereich eingefügt wird, habe ich hier ja keine Möglichkeiten einen target="_blank" zu legen. Ich müsste also im Template den entsprechenden Ort finden, wo der Link generiert wird um dort noch ein target="_blank" anzufügen. Ich dachte deshalb zunächst es wäre die Zeile <a href="#tabs-4">{#media#}</a></li> in der product_info_1.html, doch dort wird ja nur der Reiter für den Anker des Reiters gelegt. Hast Du mir da einen Tipp wo ich genau suchen müsste?

Betreffend dem zweiten Problem mit dem "überschiessenden" Video weiss ich nicht genau wo ich dieses zusätzliche DIV einfügen müsste. In der product_info_1.html wird jedes geöffnete Div auch mit einem entsprechenden </DIV> geschlossen. Dort kann der Fehler also nicht liegen.

Ich hänge Dir mal meine product_info_1.html an.

Code: Alles auswählen

{config_load file="$language/lang_$language.conf" section="product_info"}
{config_load file="$language/lang_$language.conf" section="lagerampel"}
{product_images prd_id=$PRODUCTS_ID}

{$PRODUCT_NAVIGATOR}

<div id="product_info" class="grid_12 alpha omega">

	<h1>{$PRODUCTS_NAME}</h1>

	<div class="image grid_6 alpha">&nbsp;
		{img
			img_id=$PRODUCTS_IMAGES.0.ID
			src=$PRODUCTS_IMAGES.0.FILE
			preset=INFO
			prd_id=$PRODUCTS_ID
			alt=$PRODUCTS_IMAGES.0.ALT
			title=$PRODUCTS_IMAGES.0.TITLE
			id=product_image
		}

		<div class="image grid_6 alpha omega">
			{create_gallery
				images=$PRODUCTS_IMAGES
				prd_id=$PRODUCTS_ID
				preset_thumb=THUMB_MINI
				preset_popup=POPUP
				a_class=aklasse
				img_class=iklasse
			}
		</div>
		
	</div>
	<div class="grid_6 omega">
		{$FORM_ACTION}

		<div id="spacer" class="grid_6 alpha omega">
			{if $PRODUCTS_REVIEWS_AVG}
			<div class="grid_6 alpha omega item">
				<div class="grid_2 alpha">{#reviews#}:</div>
				<div class="grid_4 omega">{review_stars width=79 avg=$PRODUCTS_REVIEWS_AVG}</div>
			</div>
			{/if}

			{if $PRODUCTS_MANUFACTURER}
				<div class="grid_6 alpha omega item">
					<div class="grid_2 alpha">{#manufacturer#}:</div>
					<div class="grid_4 omega">{$PRODUCTS_MANUFACTURER}</div>
				</div>
			{/if}

			{if $PRODUCTS_MODEL}
				<div class="grid_6 alpha omega item">
					<div class="grid_2 alpha">{#model#}:</div>
					<div class="grid_4 omega">{$PRODUCTS_MODEL}</div>
				</div>
			{/if}

			{if $SHIPPING_NAME}
				<div class="grid_6 alpha omega item">
					{if $SHIPPING_ID == 15}<div class="grid_2 alpha"><span style="color: #F00; font-weight: bold;">Restposten: </span></div>{else} <div class="grid_2 alpha">{#shippingtime#}:</div>{/if}
					<div class="grid_4 omega"> {if $PRODUCTS_QUANTITY<= -50 AND $PRODUCTS_QUANTITY>-100 && $SHIPPING_ID == 13} ca. 7-10 Tage {elseif $PRODUCTS_QUANTITY<= 0 AND $PRODUCTS_QUANTITY>-50 && $SHIPPING_ID == 11}ca. 2-3 Tage  {elseif $PRODUCTS_QUANTITY== 0 && $SHIPPING_ID == 14} derzeit nicht lieferbar  {elseif $PRODUCTS_QUANTITY<= 0 && $SHIPPING_ID == 15}<span style="background: #F00; color: #FFF; font-weight: bold;"> nicht mehr lieferbar </span>{else} sofort lieferbar {/if}</div>                             
				</div>
			{/if}                  

			{if $DATE_AVAILABLE}
				<div class="grid_6 alpha omega item">
					<div class="grid_2 alpha">{#date_available#}:</div>
					<div class="grid_4 omega">{$DATE_AVAILABLE|date_format:'%e.%m.%Y'}</div>
				</div>

			{/if}

			{if $DATE_EXPIRE}
				<div class="grid_6 alpha omega item">
					<div class="grid_2 alpha">{#date_expire#}:</div>
					<div class="grid_4 omega">{$DATE_EXPIRE|date_format:'%e.%m.%Y'}</div>
				</div>
			{/if}

			{if $DATE_ADDED}
				<div class="grid_6 alpha omega item">
					<div class="grid_2 alpha">{#date_added#}:</div>
					<div class="grid_4 omega">{$DATE_ADDED|date_format:'%e.%m.%Y'}</div>
				</div>
			{/if}

{capture name='attributes'}{products_attributes}{/capture}
{if !$smarty.capture.attributes}
				<div class="grid_6 alpha omega item">
					{if $SHIPPING_ID == 15}<div class="grid_2 alpha">Restbestand</div> {else} <div class="grid_2 alpha">Lagerbestand:</div>{/if}
					<div class="grid_4 omega"> {if $SHIPPING_ID == 15 && $PRODUCTS_QUANTITY<=0}{lagerampel qty= -100} {else}{lagerampel qty=$PRODUCTS_QUANTITY}{/if}</div>
				</div>
{/if}
 {if $SHIPPING_ID == 15}
<div class="grid_6 alpha omega item">
					<div class="grid_6 alpha omega"><div style="text-align: justify"><span style="font-weight: bold;">Hinweis: </span>Lieferbar solange Vorrat reicht. Sie können den aktuell noch verfügbaren Lagerbestand prüfen, indem Sie mit der Maus über die Lagerampel fahren.</div></div>
				</div>
{else}{/if}
		</div>
		{$smarty.capture.attributes}
		<div id="price" class="grid_6 alpha omega">
				<p class="price_info">{$PRODUCTS_PRICE}</p>
	<div class="grid_6 alpha omega">
				{strip}
				<p class="tax">{$PRODUCTS_TAX_INFO} &nbsp;
				{if $PRODUCTS_SHIPPING_LINK}
					{#text_shipping_ex#} &nbsp;
          {get_shipping_link}
				{/if}
				</p>
				{/strip}
			</div>
{if $PRODUCTS_QUANTITY== 0 && $SHIPPING_ID == 15}{else}{$ADD_QTY} &nbsp; {$ADD_CART_BUTTON|button}{/if}<p></p>


			{if $PRODUCTS_VPE}
			<div class="grid_6 alpha omega">
				{$PRODUCTS_VPE}
			</div>
			{/if}
			
		

      {graduated_prices}

		</div>

		<div id="panel" class="grid_6 alpha omega">
			<a id="panel_print" href="javascript:void(0);" onclick="print_product({$PRODUCTS_ID});" title="{#print#}"></a>
			<a id="panel_twitter" class="twitter-share-button" href="http://twitter.com/share" title="{#twitter#}" target="_blank"></a>
			<a id="panel_facebook" href="http://www.facebook.com/share.php?u=%3Curl%3E" onclick="return fbs_click();" title="{#facebook#}" target="_blank"></a>
		</div>
		
		{$FORM_END}
	</div>

	<div id="product_tabs" class="grid_12 alpha omega">
		<div id="tabs">
			<ul>
				<li><a href="#tabs-1">{#description#}</a></li>
                {if $ADDITIONAL_INFO}
				<li><a href="#tabs-2">{#details#}</a></li>
                {/if}
				<li><a href="#tabs-3">{#reviews#}{review_stars width=79 avg=$PRODUCTS_REVIEWS_AVG}</a></li>
                <li><a href="#tabs-4">{#media#}</a></li>
                 
			</ul>

			<div id="tabs-1" class="tab">
				{$PRODUCTS_DESCRIPTION}
			</div>
{if $ADDITIONAL_INFO}
			<div id="tabs-2" class="tab">
				{foreach from=$ADDITIONAL_INFO item=inf name=info}
					<p class="key">{$inf.info_key}:</p>
					<p class="value">{$inf.info_value}</p>
				{/foreach}
			</div>
{/if}
			<div id="tabs-3" class="tab reviews">
				{products_reviews}
			</div>
            
            <div id="tabs-4" class="tab media">
				{products_media}
			</div>
		</div>
		
	</div>
	{cross_selling}
	{also_purchased}
</div>
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Xantiva »

Code: Alles auswählen

<div id="tabs-4" class="tab media">
    {products_media}
</div>
Also wird die Smarty Funktion "products_media" aufgerufen. Die hat ein entsprechendes Template File: products_media.html

Code: Alles auswählen

{config_load file="$language/lang_$language.conf" section="products_media"}

<div id="products_media" class="section grid_12 alpha omega">
	<h2>{#heading#}</h2>
	<ul class="grid_12 alpha omega">
		{foreach item=item from=$module_content}
			<li class="grid_12 alpha omega">
				<strong>{$item.FILENAME}</strong><br />
				{$item.DESCRIPTION}
				{$item.FILESIZE}
				{$item.BUTTON|button}
			</li>
		{/foreach}
	</ul>
</div>
Am besten kopierst Du Dir die function.products_media.php lokal in dein Template und änderst das erzeugen des Links für den $button. Oder nimmst die Endung .pdf noch in die Liste auf, die in einem Popup angezeigt werden.
Mein Shop: http://www.basteln-selbermachen.de
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Kopernikus »

Am besten kopierst Du Dir die function.products_media.php lokal in dein Template und änderst das erzeugen des Links für den $button.
... sagt der php Experte zum Greenhorn ;) So weit bin ich leider noch nicht, dass ich mich an das auslagern von php Dateien ins Template wage. Geschweige denn habe ich keine Ahnung wie ich das umsetzen müsste. Aber wieso kompliziert wenns auch einfacher geht. Du hast mich da schon mal auf den absolut richtigen Weg gebracht. In der / includes / classes / smarty_plugins / function.products_media.php bin ich schliesslich fündig geworden.

aus:

Code: Alles auswählen

 '<a href="%s">%s</a>',
wurde:

Code: Alles auswählen

 '<a href="%s" target="_blank">%s</a>',
und alles klappt wie gewünscht :)

Betreffend dem zweiten DIV schwimme ich aber nach wie vor.

Aktuell sieht es bei mir ja genau so aus:

Code: Alles auswählen

<div id="tabs-4" class="tab media">
    {products_media}
</div>
Wenn ich da nun noch ein zweites </div> hinpflanze, dann zerreist es mir den Shop. Wie gesagt, alle DIV welche geöffnet werden, habe ich auch wieder geschlossen. Oder meinst Du so was?

Code: Alles auswählen

<div><div id="tabs-4" class="tab media">
    {products_media}
</div></div>
Das würde allerdings nichts bewirken.
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Anhänge werden nicht in einem neuen Fenster geöffnet

Beitrag von Xantiva »

Hi,
Kopernikus hat geschrieben:So weit bin ich leider noch nicht, dass ich mich an das auslagern von php Dateien ins Template wage. Geschweige denn habe ich keine Ahnung wie ich das umsetzen müsste. Aber wieso kompliziert wenns auch einfacher geht. Du hast mich da schon mal auf den absolut richtigen Weg gebracht. In der / includes / classes / smarty_plugins / function.products_media.php bin ich schliesslich fündig geworden.
so hast Du die "Core" Datei geändert. Damit werden Deine Änderungen u. U. mit einem kommenden Update überschrieben. Kopiere die Datei von /includes/classes/smarty_plugins/function.products_media.php einfach in den "smarty" Ordner in Dein Template. Dann wird die Datei aus dem Template verwendet, statt aus dem Core. An der Datei im Template solltest Du dann die Änderung machen.

Ich meinte das so:

Code: Alles auswählen

<div id="tabs-4" class="tab media">
    {products_media}
    <div>Hier noch mal eine Ausgabe erzwingen mit irgend einem Text, etc.</div.
</div>
Ciao,
Mike
Mein Shop: http://www.basteln-selbermachen.de
Antworten