Seite 1 von 2

Zum 2. Beitrag in einem Topic springen (zu dem Anker)

Verfasst: 11.01.2006 21:31
von larpo
Naaaaben!

Ich habe den News/Portal-MOD von Smartor eingebaut. Wenn man auf "View Comments" klickt, wäre es schöner, wenn der Browser auch direkt zu den Kommentaren springt, und nicht zum Seitenanfang des Threads (kann sonst gerade bei einem langen 1. Post in einem Topic für Verwirrung sorgen).

Sprich: wie komme ich zum Anker des 2. Beitrags in einem Topic?

Mein Ansatz: herausfinden, welche Post-ID der 2. Beitrag hat, und dann viewtopic.php mit #Post-ID aufrufen. Doch wie finde ich die Post-ID des 2. Beitrags raus?

Oder gibt es sogar mit Javascript eine Möglichkeit den 2. Anker auf einer HTML-Seite herauszufinden und dort hin zu springen?

Bin auf eure Ansätze oder sogar Lösungen gespannt...

Verfasst: 11.01.2006 21:47
von DerGonzo
Moin!

Direkt im Post steht oben "Verfasst am: ....." Davor ist ein kleines Blättchen zu sehen (weiß=bereits gelesen, orange=noch nicht gelesen).
Wenn Du auf dieses Blättchen klickst, hast Du in der Adreßzeile des Browsers den direkten Link zu eben diesem Posting. :wink:

Schönen Gruß,
DerGonzo!

Verfasst: 11.01.2006 22:11
von larpo
Das ist mir schon klar, dass jeder Beitrag von Haus aus einen eigenen Anker mit der Post-ID als Ankername hat.

Nur möchte ich wissen, wie ich eben den 2. Beitrag in einem Topic herausfinde - eben den ersten Kommentar.

Verfasst: 11.01.2006 22:53
von DerGonzo
hmmmmm...
Was soll das bringen? Warum nicht den dritten - oder den vierten? Ich sehe da ehrlich gesagt keinen Sinn drin, es sei denn, jeder Thread würde nach der ersten Antwort geschlossen und der Themenstarter möchte seine Antwort sehen. Aber ob sowas real ist?

Vielleicht kannst Du ja mal kurz erklären, warum Du unbedingt das zweite Posting verlinken willst, anscheinend unabhängig vom Inhalt...

Verfasst: 11.01.2006 23:13
von larpo
Wie gesagt: ich lasse über den Smartor-MOD auf meiner Startseite den 1. Beitrag von einem Topic anzeigen. Dort drunter kann man dann auf "View Comments" klicken und kommt dann direkt in die viewtopic.php. Als erstes sieht man dort ja jedoch bekanntlich immer den 1. Beitrag. Wenn jemand auf "View Comments" klickt, erwartet er aber nicht wieder den 1. Beitrag, den er ja schon auf der Startseite gelesen hat, sondern halt die Kommentare dazu - eben alles ab und einschließlich dem 2. Beitrag in einem Topic.

Das wäre alles nicht so wild, wenn mache 1. Beitäge nicht so lang wären, dass der unerfahrene Nutzer nicht erkennt, dass man erst "40 cm runterscrollen" muss, um wirklich die Kommentare zu sehen...

Ich hoffe, dass war jetzt etwas ausführlicher/verständlicher ausgedrückt als mein erster Beitrag in diesem Topic... :-)

Verfasst: 12.01.2006 00:11
von DerGonzo
Ach so. Komisch, daß diese Funktion dann nicht durch den MOD gegeben ist...

Hatte das zuerst nicht so verstanden, sorry.

Da kann ich Dir dann leider nicht weiterhelfen... :oops:

Verfasst: 13.01.2006 08:17
von larpo
Schade. Hat sonst jemand vielleicht eine Idee? Egal ob PHP oder Javascript-Lösung?

Verfasst: 13.01.2006 13:30
von h-o
Das MOD von Smartor kenne ich nicht, aber eine von dir beschriebene Aufgabe geht mehr oder weniger mit dem Next/Previous Post MOD, das eigentlich mehr der Navigation innerhalb eines Themas dient.

Hier wird in viewtopic_body.tpl für jeden Beitrag eines Themas ein zusätzlicher Anker installiert, und zwar in der Form

Code: Alles auswählen

<a name="#{postrow.S_NUM_ROW}"></a>
so dass man beispielsweise auf den zweiten Beitrag im Thema Nr. 92 mit dem folgenden Befehl kommt:

Code: Alles auswählen

viewtopic.php?t=92#2
Die letzte Version 1.03 ist zwar schon fast drei Jahre alt, funktioniert aber auch in aktuellen phpBBs einwandfrei.

Einen Teil des Codes in viewtopic.php (etwa alle Zuweisungen nach 'S_NUM_ROW' => $num_row...) sowie in viewtopic_body.tpl kann man in deinem Fall weg lassen (wichtig ist dort nur die erste "AFTER, ADD"-Anweisung).

ciao
h-o

Verfasst: 13.01.2006 18:07
von larpo
@h-o: Danke für den Denkanstoß:
ich habe jetzt einfach einen Anker am Ende des Post-Teils in der viewtopic_body.tpl gemacht:
finde:

Code: Alles auswählen

<td class="spaceRow" colspan="2" height="1"><img src="templates/subSilver/images/spacer.gif" alt="" width="1" height="1" /></td>
ersetze durch:

Code: Alles auswählen

<td class="spaceRow" colspan="2" height="1"><img src="templates/subSilver/images/spacer.gif" alt="" width="1" height="1" /><a name="comments"></a></td>
ersetze durch:[/code]

So kann ich den 2. Beitrag wie folgt aufrufen:

Code: Alles auswählen

viewtopic.php?t=92#comments
Es produziert zwar ein wenig overkill und ist auch ein bisschen dirty, weil der Anker mit dem Namen "comments" jetzt bei jedem Beitrag gesetzt wird, aber alle Browser die ich bisher getestet haben, stören sich nicht daran, dass auf der Seite mehrere Anker mit dem selben Namen vorhanden sind und springen daher korrekt einfach zu dem ersten vorkommen (nämlich am Ende des ersten Beitrags :-)).

Wenn jemand Feedback dazu abgeben möchte, oder eine bessere Idee hat - immer her damit :-)

Verfasst: 13.01.2006 18:34
von easygo
Weniger dirty wärs mit id -->

Code: Alles auswählen

<a name="comments" id="comments"></a>