"back to top" - link
Eingetragen von Anonymous (0)
am 02.03.2006 - 17:49 Uhr in
am 02.03.2006 - 17:49 Uhr in
hab da nen kleines Problem. Ich würde gern an jede Node einen "back to top" - Link anfügen. Also einen Link der einen sofort an den Anfang der Seite bringt auf der der Node steht. Habe auf drupal.org nachgeschaut und was dazu gefunden:
<a href="/ <?php print url($_GET['q'], NULL, NULL, TRUE); ?> #top">Back to top</a>
Nur leider scheint diese Variante nur lokal bei mir zu funktioniern. Auf dem Server meines host spuckt diese Variante immer nur eine 404 Seite aus ...
Ist das jetzt ein Problem, dass ich mit meinen host abklären muss, oder gibt es eine bessere Variante um das was ich will zu bekommen?
greetz
- Anmelden oder Registrieren um Kommentare zu schreiben
Base-Header beachtet?
am 04.03.2006 - 20:55 Uhr
<a href=" <?php print url($_GET['q'], NULL, NULL, TRUE); ?> #top">Back to top</a>
Hast Du berücksichtigt, dass Drupal einen BASE-Tag im Header setzt? Normal sollte ein
<a href="./#top"><?php print t('Back to top') ?></a>
funktionieren.thx für die antwort.
am 07.03.2006 - 18:16 Uhr
thx für die antwort.
kanns leider immo net testen. meld mich aber sobald ichs gemacht hab ... hört sich aber ganz gut an. wusste das mit dem base tag gar net ... thx
greetz
habe es jetzt mal
am 08.03.2006 - 17:34 Uhr
habe es jetzt mal ausprobiert ... funktioniert nicht so wie ichs mir vorstelle ... =/ ... das ding ist, das das base tag wohl nur auf die startseite verweist ... das heist, das ich auf hinrichs art immer wieder zum kopf der startseite gelange ... das ist nicht was ich wollte ...
kurzes beispiel ... ich habe einen taxonomy term namens "produkte". dieser ist über einen link in der nav zu erreichen ... unter diesem term befinden sich eine reihe von nodes. wenn ich nun auf den "back to top" link einer dieser nodes klicke, will ich an den anfang der seite zurück, auf der der node steht ... d.h., wenn ich alle nodes innerhalb eines terms anzeige und da dann nen bisschen nach unten scroll um den untersten zu sehen, will ich die möglichkeit haben genau hier per klick wieder nach ganz oben zu gelangen ...
theoretisch ist mir klar, dass der link erkennen muss innerhalb welcher taxonomy struktur er steht ... nur praktisch habe ich keine ahnung, wie ich das erreichen kann ...
ein genaueres beispiel. der "node45" ist der taxonomy "www.beispiel.de/taxonomy/term/25" untergeordnet ... nun müsste ein funktionierender "back to top" link der "node45" auf "www.beispiel.de/taxonomy/term/25 #top" verweisen. so ungefähr stell ich mir das zumindest vor ...
greetz
Ohne Gewähr
am 08.03.2006 - 23:02 Uhr
Probier dann:
<?php print $_SERVER['REQUEST_URI'].'#top'; ?>
Wenn es gehen sollte, wäre wegen der Rekursion noch ein If-Statement einzufügen, aber das kann dann erfolgen.
thx nochmal für die antwort
am 08.03.2006 - 23:57 Uhr
thx nochmal für die antwort ... nur leider passiert mit dieser methode gar nichts ... meint, das ich klicke und sich wirklich gar nichts rührt. ... was mich wundert ist, das meine ursprüngliche methode lokal (xamp) funktioniert und auf dem server meines hosts nicht ... kann das vllt damit zusammenhängen, dass ich pathaliase benutze? ... ursprünglich war mein ansatz ja:
<a href=" <?php print url($_GET['q'], NULL, NULL, TRUE); ?> #top">Back to top</a>
...Back to top link
am 15.03.2006 - 16:28 Uhr
Versuche mal folgendes:
<a id="top"></a>
<a href="#top" title="Jump to top of page.">jump to top</a>
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
thx für die antwort
am 15.03.2006 - 19:23 Uhr
thx für die antwort ...
nach einem erneuten versuch mein problem zu lösen (diesmal mit sanduhrs) ansatz, hab ich nun endlich die lösung ... mir ist es zwar ein bisschen peinlich, da mein ursprünglicher ansatz ideal war, er nur einen winzig kleinen fehler enthielt ... und zwar 1 whitespace, das dann natürlich ein "bespiel%20#top" anstatt "beispiel#top" erzeugte ... wie war das mit dem wald vor lauter bäumen!? ;)
hier also eine funktionierende Lösung:
<a href="/<?php print url($_GET['q'], NULL, NULL, TRUE);?>#top">Seitenanfang</a>
thx nochmal für die bisherigen bemühungen ...
Re: thx nochmal für die antwort
am 15.03.2006 - 21:55 Uhr
Ja, damit kann es zusammen hängen.
#destination
verlangt, dass in der URI bereits ein ? als Trenner vorhanden ist, was in Deinem Fall wohl nicht gegeben sein dürfte. Damit der Browser die Raute korrekt interpretieren kann, muss sie entweder vollständig oder alleinstehend sein. Im Normalfall sollte ein href="#top" zum A-Tag mit dem Namen top springen. Der A-Tag muss natürlich vorhanden sein, und bei Drupal wegen XHTML auch eine gleichnamige Id haben (<a name="top" id="top"></a>
).Wenn Du Firefox nutzt, dann kann Dir das Addon Web-Developer bei der Analyse der Links sehr helfen. Im Moment habe ich fast den Eindruck, dass sich irgendwas bei Dir verhaspelt hat, und es deshalb nicht funktioniert.
nun funktionierts 100% ...
am 21.03.2006 - 18:57 Uhr
Wie man sieht habe ich noch viel zu lernen ... Danke an alle! Jetzt funktionierts endlich 100% ... Ich hoffe, dass ich in naher Zukunft anderen oder sogar euch mal produktiv helfen kann ... ^^
Hier nun eine 100% funktionierende Lösung:
In der node.tpl.php (und natürlich in jeder anderen .tpl.php, die einen solchen Link enthalten soll) muss
<a href="/<?php print url($_GET['q'], NULL, NULL, TRUE);?>#top">Seitenanfang</a>
stehen.In der page.tpl.php muss dann natürlich (;)) direkt unter dem body-tag
<a id="top" name="<?php print url($_GET['q'], NULL, NULL, TRUE);?>#top"></a>
stehen.schwere Geburt ... mit dem verhaspeln lagst du wohl nicht so verkehrt Hinrich. ;)