Jump to content
xt:Commerce Community Forum

Anker gesetzt - springt immer zur Startseite ?


Recommended Posts

Hi,

Ich hab folgendes Problem:

Hab im Content Manager ne Seite mit dem Namen Links eingefügt.

Nun will ich diese Seite unterteilen in verschiedene Rubriken.

Anker und Co sind alle da , aber wenn ich auf einen draufklicke, springt es nicht auf den gesetzten Anker , sondern geht immer zur Startseite des Shops...:confused:

Was mach ich falsch ??

Folgenden html Code hab ich im FCKeditor stehen :

( die hr noshade dienen nur als Platzhalter... )

<p><a name="Anker_FOREN">FOREN</a><br>

<a href="#Anker_TECHNIK"><b>TECHNIK</b></a> | <a href="#Anker_TUV"><b>TÜV</b></a> | <a href="#Anker_CLUBS"><b>CLUBS</b></a></p>

<hr noshade width=50% size=1 align=left>

<hr noshade width=50% size=5 align=left>

<hr noshade width=40% size=4 align=left>

<hr noshade width=30% size=3 align=left>

<hr noshade width=20% size=2 align=left>

<hr noshade width=10% size=1 align=left>

<p><a name="Anker_TECHNIK">TECHNIK</a><br>

<a href="#Anker_FOREN"><b>FOREN</b></a> | <a href="#Anker_TUV"><b>TÜV</b></a> | <a href="#Anker_CLUBS"><b>CLUBS</b></a></p>

<hr noshade width=50% size=1 align=left>

<hr noshade width=50% size=5 align=left>

<hr noshade width=40% size=4 align=left>

<hr noshade width=30% size=3 align=left>

<hr noshade width=20% size=2 align=left>

<hr noshade width=10% size=1 align=left>

<p><a name="Anker_TUV">TÜV</a><br>

<a href="#Anker_FOREN"><b>FOREN</b></a> | <a href="#Anker_TECHNIK"><b>TECHNIK</b></a> | <a href="#Anker_CLUBS"><b>CLUBS</b></a></p>

<hr noshade width=50% size=1 align=left>

<hr noshade width=50% size=5 align=left>

<hr noshade width=40% size=4 align=left>

<hr noshade width=30% size=3 align=left>

<hr noshade width=20% size=2 align=left>

<hr noshade width=10% size=1 align=left>

<p><a name="Anker_CLUBS">CLUBS</a><br>

<a href="#Anker_FOREN"><b>FOREN</b></a> | <a href="#Anker_TECHNIK"><b>TECHNIK</b></a> | <a href="#Anker_TUV"><b>TÜV</b></a></p>

<hr noshade width=50% size=1 align=left>

<hr noshade width=50% size=5 align=left>

<hr noshade width=40% size=4 align=left>

<hr noshade width=30% size=3 align=left>

<hr noshade width=20% size=2 align=left>

<hr noshade width=10% size=1 align=left>

*******

</body>

</html>

Link to comment
Share on other sites

Was mach ich falsch ??

Grundsätzlich erstmal nix - Du berücksichtigst aber die <base href> nicht, die der Shop im <head> setzt. Die wird vor alle relativen Links automatisch vom Browser vorgesetzt.

Die Suchfunktion hätte Dir dazu u.A. Folgendes gefunden:

http://www.xt-commerce.com/forum/template-system/15215-anker-setzen.html?highlight=anker

http://www.xt-commerce.com/forum/shopbereich/3058-link-zum-seitenanfang-anker.html?highlight=anker

Auch ganz lustig,: Der Oberchef hat die <base href> auch nicht auf dem Zettel:

http://www.xt-commerce.com/forum/template-system/2033-wie-top-link.html

Cheers,

IaN

Link to comment
Share on other sites

DANKE für die Antwort !

Die SUCHE hab ich natürlich voher benutzt und auch die beiden Sachen hab ich gefunden, aber wirklich schlauer hat mich das dort zu lesende Fachchinesisch auch nicht gemacht...:(

Wenn ich es jetzt aber richtig verstehe, dann sollte ich also vor den entsprechenden Anker Befehl :

<a href="#Anker_FOREN"><b>FOREN

immer den Link zu der Seite einfügen auf der der Ankerbefehl ist oder ??

Das sollte dann wohl so aussehen :

<a href="http://www.shop-seite-mit-den-links-XXXXX.de/#Anker_FOREN"><b>FOREN

Lieg ich da richtig ?

Link to comment
Share on other sites

Das

http://www.deinshop.de/
wird vom Browser automatisch davorgesetzt, es sollte also reichen
href="seite-mit-den-links.php#anker"

Wenn Du risikofreudig bist, kannst Du auch in der includes/header.php mal das <base href> auskommentieren - dann sollten die normalen href="#anker" funktionieren - ob der Rest vom Shop dann noch korrekt läuft, weiss ich leider nicht (hab's mich noch nicht getraut das auszuprobieren :( )

>>> http://de.selfhtml.org/html/kopfdaten/basis.htm <<<

Und, JA, es gibt diverse Einschränkungen wenn man SEO-URLs benutzt und/oder der Shop mehrsprachig ist. Am allerkrassesten ist die Kombination Shopstat-URLs/Mehrsprachigkeit - wer da nen universellen Anker hinbekommt, möge sich bitte mal bei mir melden...

Link to comment
Share on other sites

Von dem was Du geschrieben hast hab ich rein gar nix verstanden !!!!

Meine letzte Frage wurde irgendwie auch nicht beantwortet ( zumindest hab ich mal nix davon gelesen ).

Vielleicht sollte der ein oder andere User dieses Forums mal dran denken, das sich hier auch noch normalsterbliche tummeln, die das php 1x1 nicht mit der Muttermilch aufgesogen haben ...

Schade das man das nicht in allgemeinverständlichen Sätzen formulieren kann :mad:

Ich hab übrigens heut mittag etwas länger rumprobiert : es geht mit der Methode die ich beschrieben habe !

DANKE trotzdem..

Link to comment
Share on other sites

Hallo Megatec,

Öhm... :confused:

Sorry, aber das hatte erstmal mit PHP rein gar nichts zu tun, sondern ist pures HTML - ich hatte Dir sogar ein Link dazu gegeben - wenn Du das nicht liest, bist Du selber schuld... Hier nochmal (solltest Du Dir durchlesen!)

http://de.selfhtml.org/html/kopfdaten/basis.htm

Falls Du den Absatz NACH dem Link nicht verstanden hast, egal, der war eh nicht für Dich sondern für andere Leute, die dieses Posting vielleicht lesen und auch Probleme mit Ankern haben...

Da ich nicht weiss, ob Du suchmaschinenfreundliche URLs verwendest, und auf welcher Content-Seite Du denn genau Deine Anker setzen willst, konnte ich Dir nur ein Beispiel geben:

href="seite-mit-den-links.php#anker"[/CODE]

Wenn Du *das* nicht verstehst, dann... nee, ich will jetzt nicht mürrisch werden...

Meine letzte Frage wurde irgendwie auch nicht beantwortet ( zumindest hab ich mal nix davon gelesen ).

Dann lies nochmal genau - die wurde exakt beantwortet - das <a> kannst Du Dir wohl noch dazudenken, oder geht auch das nicht?

Was das auskommentieren (ich hoffe, Du weisst, was das ist) in der includes/header.php angeht, war folgendes gemeint - da steht oben drin die <base href>, die an all dem Anker-Murks Schuld ist:

[PHP]<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>" />[/PHP]

Man *könnte* die mal testweise auskommentieren:

[PHP]<!-- base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>" / -->[/PHP]

...dann sollten *alle* normalen Anker funktionieren. Ob dann aber der Shop noch läuft bliebe zu testen... ;)

Das hat, wie gesagt, mit PHP herzlich wenig zu tun und ist HTML-Basiswissen...

es geht mit der Methode die ich beschrieben habe !

Ist doch gut! Dann hast Du auch nur einen einsprachigen Shop und wahrscheinlich keine Suchmaschinenfreundlichen URLs, oder?

Schade das man das nicht in allgemeinverständlichen Sätzen formulieren kann

Und, war das jetzt besser?

DANKE trotzdem..

Dafür nich! :P

Cheers,

IaN

PS: Ich bin ein ganz Lieber und rede beruflich in allgemeinverständlichen Sätzen über HTML und PHP - nicht dass Du denkst, ich hätte jetzt nen Hals... Ich helfe gern - aber ein "Ich hab's nicht verstanden" von Dir hätte auch schon gereicht :rolleyes:

Link to comment
Share on other sites

  • 1 year later...

Ich habe das Problem schlussendlich auf die plumpe Art mit JavaScript gelöst. Da XTC ja sowieso nicht ohne JavaScript auskommt, ist der Schaden nicht allzu groß:

<a href="javascript:location.replace(window.location.pathname + '#top')"><img src="{$tpl_path}img/top.gif" alt="zurück zum Seitenanfang" /></a>


<a href="javascript:location.replace(window.location.pathname + '#top')"><img src="{$tpl_path}img/top.gif" alt="zurück zum Seitenanfang" /></a>

Funzt zumindest unter IE und Firefox unter allen XT-Konfigurationen problemlos.

Vielleicht hilft's ja noch jemandem.

Gruß aus Hannover.

Todwart

Link to comment
Share on other sites

Schön, schön, funktioniert bei mir leide rnicht. versuche nen anker auf der product_info.html zu setzen, der nach unten zum Cross_Selling springt.

Habe also mit deiner Lösung folgendes stehen:


<a href="javascript:location.replace(window.location.pathname + '#cross_selling')">{#more_products#}</a>
und dazu unten
<a name="cross_selling">{$MODULE_cross_selling}</a>[/code]

wenn ich nun auf den Link klicke, lande ich auf product_info.php...

Link to comment
Share on other sites

Das habe ich für eine Kunde in der product_info.html eingebaut - scheint zu funktionieren

<a href="{php}echo $_SERVER['PHP_SELF'];{/php}?info=p{$PRODUCTS_ID}#AnkerName">Hier Klicken</a>

Es wird aber kein SID übertragen und es ist nicht SEO Links freundlich aber der Basis ist da.

T

Link to comment
Share on other sites

und dazu unten

<a name="cross_selling">{$MODULE_cross_selling}</a>
wenn ich nun auf den Link klicke, lande ich auf product_info.php...
Die Lösung von Rovert ist auch ganz hübsch und funzt prima. Vielen Dank für diese Lösung! - Die Lösung von Rovert führt aber leider immer zu einem Turnarround mit dem Server, mit langwierigem Laden der ganzen Seite. Das wird im ein oder anderen Fall vielleicht auch nicht anders gehen. Meine Lösung aber funktioniert in allen meinen Zusammenhängen prima. Allerdings lasse ich den Zielanker leer. Ich hätte also im Kopf vom Modul cross_selling den Anker wie folgt eingebaut:
<a name="cross_selling"></a>[/code]

Damit ist die Sprungadresse in der Ergebnissseite eindeutig und ich spare das Turnarround zum Server.

Gruß, Todwart

Link to comment
Share on other sites

  • 8 months later...

man kann natürlich auch in der in der shop_content.php folgenden Befehl in ca. Zeile 126:

$content_body = $shop_content_data['content_text'];[/PHP]

durch

[PHP]$content_body = str_replace("#",$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."#",$shop_content_data['content_text']);[/PHP]

ersetzen.

Dann werden alle # durch den aktuellen Link + # ersetzt

das gleiche sollte man dann aber auch in der popup_content.php machen. ;-)

Link to comment
Share on other sites

  • 8 months later...

Hi Leute!

Ich hatte das gleiche Problem und habe es auf eine etwas elegantere Lösung gebraucht. Vorraussetzung ist, dass die jQuery Bibliothek vorhanden ist. Der Vorteil meiner Lösung: man muss die Links im Content Manager nicht manuell anpassen, das Skript sucht automatisch nach allen Links, die mit "#" beginnen und ersetzt diese durch die komplette URL inkl. dem Anker. Hier das Skript:


$(document).ready(function() {

	$("a[href^='#']").each(

		function( i ) {

			$(this).attr("href", document.URL + $(this).attr("href") );

		}

	);

});

Die Lösung funktioniert mit aktiviertem SEO und dem Base-Tag im Header. Vielleicht hilft es ja dem ein oder anderen noch!

Viele Grüße

Martin

Link to comment
Share on other sites

Archived

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

×
  • Create New...