Content Management System - CMS : eXV2 
Home
News
Forum
Downloads
Download Module
Sitemap
Partnerseiten
RSS News
Kontakt/Info
Sprache
EnglishFrench
Suchen
Login
Nickname
Passwort

Registrieren?
Passwort?
Navigation
 Home News  Forum Neueste Beiträge  Downloads Download Module eXV² Themes  Weblinks Tutorial Changelog 2.3.1 Jobcenter Gebrauchtmarkt OSMap  Sponsor Kalendersystem Sitemap Partnerseiten RSS News Kontakt/Info Webseiten Wetter
Willkommen im Free Web CMS : eXV² Forum!
  Forenarchiv
     Module
  NewBB-Plus: Direktes Anspringen von Posts

Forum : Module

Titel : NewBB-Plus: Direktes Anspringen von Posts

© 2004-2012 www.exv2.de
http://www.exv2.de

URL dieser Diskussion
http://www.exv2.de/modules/newbb_plus/viewtopic.php?topic_id=820&forum=11


 FrankP :

14.12.2003 09:06
 Und schon wieder ich.

Ich hätte schwören können dass es hier im Supportforum geht und ich die Funktion durch Customizing wieder rausgekickt habe. Ich habe es aber gerade hier versucht, und da klappert es auch nicht. Daher mal ein Aufruf an alle Wink

Ich möchte gerne z.B. bei Suchergebnissen direkt den Link zum jeweiligen Post anbieten, und wenn der Benutzer diesen klickt, auch die Anzeige dieses Posts in den Focus bringen.

Im Link steht ja die genaue PostID drin, z.B. verweist http://www.e-xoops.de/modules/newbb_plus/viewtopic.php?topic_id=788&forum=8#4119 auf einen Post in der Mitte einer Diskussion, beim Aufrufen wird aber an den Anfang oder das Ende des Threads gesprungen, je nachdem welche Einstellung der Benutzer hat.

Das ganze soll auch funktionieren, wenn der Anzeigemodus auf FLAT steht, da es bei uns den Threaded Mode überhaupt nicht geben wird....

Irgendwie muss allso ein Focus auf den Post mit der PostID aus der URL bzw, dem HTTP_POST gesetzt werden, nur wie das gehen soll ist mir noch unklar.

Wie immer, alle Art von Anregungen sind willkommen Wink

Dankeschön und bye

Frank

 FrankP :

14.12.2003 10:06
 Aaaalso:

um einen Post direkt anspringen zu können, muss der Parameter "&start=" mit der dazugehörigen Seite an die URL mit übergeben werden.

Die Anker (Sprungziele) sind bereits in der Seite drin.

Aber wie zur Hölle bekomme ich den gültigen Wert für Start heraus, also auf welcher Seite eines Threads der gewünschte Post zu finden ist.......

Na ja, mal weiterdiggen.....

 bama :

14.12.2003 10:39
 moin Frank,

bei mir funktionierts
wenn ich auf deinen Link im vorherigen Post klicke
wird genau der richtige Post mit Anker angezeigt
bei mir ist eingestellt: neueste zuerst

angezeigt bzw. der Anker (fokus) ist auf dem zweiten Post

Cu Hans

 FrankP :

14.12.2003 10:54
 Salut Hans,

hmmmmm. Verstehe ich das richtig, wenn du bei dir im Browser die URL aus meinem ersten Post eingibst, springt das System automatisch genau auf deinen Post ("Problem gelöst, aber ich werde trotzdem mal schauen....."), der auf der zweiten Seite des Threads im mittleren Bereich liegt?

Das geht bei mir nur wenn ein &start=20 mit in der URL steht, dann wird der Anker sofort angesprungen.

Ich versteh' nur Bahnhof....Oder liegt's an meiner Einstellung "älteste zuerst", aber das wäre dann ja auch nicht richtig, oder?

Grmbl. Also weitersuchen.... Very Happy

Vielleicht noch einmal erläutern: Bitte nutze mal die Suche (e-xoops Suche, nicht Forumssuche!) und such nach dem String "Ich werde trotzdem". In den Ergebnissen wird dein Post im Thread textarea gefunden. Wenn du das Suchergebnis anklickst, wo springt er hin? Bei mir und Claudia auf den Thread, eben weil Start nicht definiert ist. Springt er bei dir genau auf den Post?



Danke dir !!!

Frank

[ Geändert von FrankP an 14.12.2003 11:10 ]

 FrankP :

14.12.2003 12:48
 Haut mir in's Gesicht, ich glaube ich habs:

In der /newbb_plus/include/search.inc.php

austauschen von
Code:

if($permissions['can_view'] == 1)
{
$ret[$i]['image'] = "images/info.gif";
$ret[$i]['link'] = "viewtopic.php?topic_id=".$myrow['topic_id']."&forum=".$myrow['forum_id']."#".$myrow['post_id']."";


in

Code:

if($permissions['can_view'] == 1)
{
// Starte Modifizierung durch Frank
// Grund: Direkter Ansprung eines Posts durch Übergabe des $start-Parameters
// Nun muss der $start parameter gesetzt werden, umd die gefundenen Posts
// direkt anspringen zu können
$sql2 = "SELECT COUNT(*) FROM ".$bbTable['posts']." WHERE topic_id =".$myrow['topic_id']." AND post_id <= ".$myrow['post_id']." ";
$result2 = $db->query($sql2);
list($total_posts)= $db->fetch_row($result2);
// Nun nachsehen, wieviele Posts per Page in diesem Forum angezeigt werden
$sql3 = "SELECT posts_per_page from ".$bbTable['forums']." WHERE forum_id = ".$myrow['forum_id']." ";
$result3 = $db->query($sql3);
list($posts_per_page)=$db->fetch_row($result3);
//Jetzt die Seite ausrechnen, auf der der Post zu finden ist....
$start = floor($total_posts / $posts_per_page) * $posts_per_page;
//prüfen ob Teilbar durch $posts_per_page, wenn ja einmal abziehen weil bei 0
//angefangen wird zu zählen...
if ($total_posts % $posts_per_page == 0) {
$start = $total_posts - $posts_per_page;
}
//jetzt noch abfangen dass $start negativ ist, (geht nur wenn auf der 1. Seite
//gefunden
if ($start < 0) $start = 0;

$ret[$i]['image'] = "images/info.gif";
$ret[$i]['link'] = "viewtopic.php?topic_id=".$myrow['topic_id']."&amp;forum=".$myrow['forum_id']."&amp;start=".$start."#".$myrow['post_id']."";
// Ende Modifizierung durch Frank



Dann wird in der Ergebisseite von search.php der Post mit dem passenden Start-Parameter übergeben, so daß wirklich genau der Post angesprungen wird, der gefunden wurde.

Very Happy *Stolz*

Ich bin mir zwar irgendwie sicher, dass ich etwas vergessen habe, aber .....


[ Geändert von FrankP an 14.12.2003 13:35 ]

 FrankP :

14.12.2003 15:15
 Und das gleiche bezieht sich auf die Ergebnisseite newbb_plus/search.php:

Wenn auch dort an Stelle des Verweises auf den Thread direkt auf den gefundenen Post gesprungen werden soll, in der search.php folgende Änderungen vornehmen:

Aus
Code:

$query = "
SELECT
u.uid,
f.forum_id,
p.topic_id,
u.uname,
p.post_time,
t.topic_title,
f.forum_name
FROM
".$bbTable['posts']." p,
".$db->prefix("users")." u,
".$bbTable['forums']." f,
".$bbTable['topics']." t";


wird

Code:

$query = "
SELECT
u.uid,
f.forum_id,
p.topic_id,
u.uname,
p.post_time,
t.topic_title,
f.forum_name,
p.post_id
FROM
".$bbTable['posts']." p,
".$db->prefix("users")." u,
".$bbTable['forums']." f,
".$bbTable['topics']." t";


und aus

Code:

while ($row = $db->fetch_array($result)) {


echo "
<tr class='bg1' align='center'>


wird

Code:

while ($row = $db->fetch_array($result)) {
// Starte Modifizierung durch Frank
// Grund: Direkter Ansprung eines Posts durch Übergabe des $start-Parameters
// Nun muss der $start parameter gesetzt werden, umd die gefundenen Posts
// direkt anspringen zu können
$sql2 = "SELECT COUNT(*) FROM ".$bbTable['posts']." WHERE topic_id =".$row['topic_id']." AND post_id <= ".$row['post_id']." ";
$result2 = $db->query($sql2);
list($total_posts)= $db->fetch_row($result2);
// Nun nachsehen, wieviele Posts per Page in diesem Forum angezeigt werden
$sql3 = "SELECT posts_per_page from ".$bbTable['forums']." WHERE forum_id = ".$row['forum_id']." ";
$result3 = $db->query($sql3);
list($posts_per_page)=$db->fetch_row($result3);
//Jetzt die Seite ausrechnen, auf der der Post zu finden ist....
$start = floor($total_posts / $posts_per_page) * $posts_per_page;
//prüfen ob Teilbar durch $posts_per_page, wenn ja einmal abziehen weil bei 0
//angefangen wird zu zählen...
if ($total_posts % $posts_per_page == 0) {
$start = $total_posts - $posts_per_page;
}
//jetzt noch abfangen dass $start negativ ist, (geht nur wenn auf der 1. Seite
//gefunden
if ($start <0 ) $start = 0;
// Ende Modifizierung durch Frank

echo "
<tr class='bg1' align='center'>


dann noch den href ändern von

Code:

<td align='left'><a href='viewtopic.php?topic_id=".$row['topic_id']."&amp;forum=".$row['forum_id']."'>". $myts->makeTboxData4Show($row['topic_title']) . "</a></td>


in

Code:

<td align='left'><a href='viewtopic.php?topic_id=".$row['topic_id']."&amp;forum=".$row['forum_id']."&amp;start=".$start."#".$row['post_id']."'>". $myts->makeTboxData4Show($row['topic_title']) . "</a></td>


Dann springt er beim anklicken eines Titels in der Suchergebnisliste direkt auf den gefundenen Post..

bye
Frank
Partnerseiten
http://service.bama-webdesign.de/

Vote für eXV2
php
Kontakt/Info
  Kontakt
  Impressum
  Link zu uns
  AGB
  Datenschutzhinweis
Downloads
  eXV² Core
  Core Sprachfiles
eXV² Filecenter
  Downloads
  Download Module
  eXV² Themes
  Multilanguage Module
  Sprachfiles eXV² Module
eXV² Support
  France