@Acid: Recent Topics (recent_more_103) Probleme [erledigt]

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
P6A
Mitglied
Beiträge: 37
Registriert: 24.09.2003 17:51
Wohnort: badischer underground
Kontaktdaten:

@Acid: Recent Topics (recent_more_103) Probleme [erledigt]

Beitrag von P6A »

Tach zusammen,

ich habe ein paar Probleme mit dem Recent Topic MOD (recent_more_103) mit meinem 2.0.6 Board.
(nach stundenlanger recherche hab ich mich jetzt doch entschlossen hier was zu posten...)

1. die Zahlen stimmen nicht überein: z.B.

- Die 8 letzten Themen der letzten Woche
- » es sind aber 9 Themen vorhanden ...

- Die 0 letzten Themen von gestern
- » es sind aber 2 Themen vorhanden ...

-------------------------------------------------------------------------------------

2. die Ordner werden nicht angezeigt ....

(sehr seltsam, da der Pfad eigentlich stimmen sollte .... klappt auch nur bei dem theme fiapple nicht ... bei Charcoal2 werden sie angezeigt ?%! )

[ edit ]

ok das hier hat sich erledigt ....

in der recent.php Zeile 282:

Code: Alles auswählen

'TOPIC_FOLDER_IMG' => '<img src='.$folder_image.' width=19 height=18 alt='.$folder_alt.' />',
ändern in:

Code: Alles auswählen

'TOPIC_FOLDER_IMG' => '<img src="'.$folder_image.'" width=19 height=18 alt="'.$folder_alt.'" />',
[ / edit ]

-------------------------------------------------------------------------------------

3. Das Blättern zur nächsten Seite funktioniert nicht:

... wenn ich die themen der letzten 30 Tage anschauen will, bekomme ich (2 Seiten mit) 16 Themen angezeigt. Auf der ersten Seite werden 16 Themen angezeigt. Sollten das nicht nur 15 sein ? (wird hier "posts_per_page" ignoriert ?)

Das Blätter würde ja mit » "start=15" sonst wieder zum Teil die gleichen anzeigen, die schon auf der ersten seite sind (also 2 Themen)

-------------------------------------------------------------------------------------

... ausserdem ist der link falsch für das blättern:

Gleiche Situation wie oben (Themen der letzen 30 Tage)

Link zur Seite 2: » recent.php?selorder=laday&start=15
sollte so aussehen » recent.php?nodays=30&selorder=laday&start=15

"nodays=30" feht in dem Link. beim blättern springt er dann wieder auf die std. Einstellung 3 Tage zurück.

[ edit ]

das hier wäre dann wohl die richtige Variante:

Code: Alles auswählen

$pagination = generate_pagination("recent.$phpEx?nodays=$nodays&selorder=$selorder", $total_topics, $board_config['posts_per_page'], $start). '&nbsp;';
[ /edit ]

Wer kann mir hier helfen was zu ändern ist im Code ?!
Zuletzt geändert von P6A am 17.10.2003 14:46, insgesamt 4-mal geändert.
P6A
Mitglied
Beiträge: 37
Registriert: 24.09.2003 17:51
Wohnort: badischer underground
Kontaktdaten:

Monolog

Beitrag von P6A »

Naja, wenigstens haben ein paar das Thema gelesen.
Wie es scheint interessiert das Thema aber keinen ... hmmm
hab mich etwas im netz umgeschaut und bemerkt, dass der Fehler nicht nur bei mir, sondern überall vorkommt.

Beispiel: http://www.phpbb2.de/recent.php

» auch hier: falsche Zahlen ....

(die von mir korrigierten Punkte sind dort auch noch offen)
ist das bisher niemand aufgefallen, oder interessiert das keinen ?

-----------------------------------------------------

... mir scheint fast, als ob es den leuten hier im support nicht darum geht wirklich zu helfen, sondern möglichst schnell einfache fragen zu beantworten um selbst möglichst viele Beiträge zu bekommen.

... kann ja auch sein, dass das thema schon mal irgendwo beantwortet wurde und ich finde nur den link nicht ... dann wäre es aber sinnvoll, wenn man wenigstens den link hier postet, oder sofern das Problem behoben ist das MOD korrigiert.

(belehrt mich eines anderen, wenn ich mich irre)

@Acid: von dir als MOD Schreiber und ner Person mit über 10.800 Beiträgen hätte ich doch zumindest mal ne Antwort erwartet.
Muss ja nicht gleich die komplette Korrektur sein, aber Stillschweigen ist auch keine Lösung.
Ne Antwort im Stil von "Stimmt - die Zahlen sind falsch ... hab aber im Moment keine Zeit dir zu helfen" oder "kümmer mich drum, dauert aber..." wäre auch noch akzeptabel gewesen ....

Wird wohl auch nix bringen sich hier aufzuregen, oder über den Support zu schimpfen. Werd mich am WE wohl selber hinsetzen müssen und das Script umschreiben. Fraglich, ob ich die Lösung dann hier posten soll, wenn das eh keinen interessiert.

Trotzdem: danke fürs lesen :-?
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Auch wenn im Thementitel mein Name vorkommt, kann man schonmal ein Thema übersehen.. ;)
Das Problem mit den Zahlen wurde mir schon von anderen berichtet. Ich habe momentan leider keine Idee und auch keine Möglichkeit es zu beheben. Sobald ich eine Lösung habe, wird eine neue Version erscheinen.
Kannst du z.B. bei deinem Forum irgendein Muster erkennen, das z.B. bei 10 Themen nur die Ziffer 9 steht und das das 10te Thema irgendeinen bestimmten Status hat (is/war Ankündigung, wurde verschoben etc.).
P6A
Mitglied
Beiträge: 37
Registriert: 24.09.2003 17:51
Wohnort: badischer underground
Kontaktdaten:

Dialog

Beitrag von P6A »

Hi Acid,
schön von dir zu hören ... :)

hab deinen Namen erst beim schreiben der antwort in den Titel übernommen in der Hoffnung, dass du auch antwortest ... und es hat wohl auch gewirkt.

kein Problem, wenn du das Thema übersehen hast. Ich war nur etwas verärgert, da ich versucht habe das Problem ausführlich zu beschreiben und nicht einfach nur "recent topics klappt nicht" reinzuschreiben.

Im Gegenzug wurden halt gerade solche Themen von den Usern beantwortet ... und dieses Thema wanderte unbeantwortet nach hinten.

Egal ... zum Thema:

da du gerade keine Möglichkeit hast werde ich mich dem Problem widmen. Hab mir gerade den Code nochmals angeschaut und bin durch ne "quick'n'dirty" variante versucht auf die Zahl zu kommen:

In der Schleife, in der die einzelnen Themen gelesen werden hab ich nen Zähler eingebaut und den Wert anschliessend am Ende an $ total_topics übergeben.

Hat auch wunderbar geklappt ... die Zahlen stimmen !!!
(... muss ja auch ! )

aber:

das ganze klappte nur mit folgenden Einstellungen:

» topics_per_page = 50
» posts per_page = 15

und einer Themenanzahl unter 50 ....

wenn ich topics_per_page auf 10 stelle, bringt er mir immer nur 10 Themen (liegt an dem limit von $part2 ... Zeile 88 )

bringt also nix -> zähler kommt wieder raus ... muss wohl die SQLs weiter vergleichen ...

hier muss auch irgendwo der Fehler sein warum die pagination nicht funktioniert. zum einen zeigt das MOD die Anzahl der "topics_per_page" an, zum blättern wird aber "posts_per_page" verwendet.

... werde also erstmal weitertesten und dir dann hier die notwendigen Änderungen posten, wenn alles so funktioniert wie es sollte ...
Zuletzt geändert von P6A am 07.10.2003 21:28, insgesamt 1-mal geändert.
Benutzeravatar
Jonas
Mitglied
Beiträge: 128
Registriert: 07.06.2003 20:04
Wohnort: Bad Nenndorf
Kontaktdaten:

Beitrag von Jonas »

Ich setze mich auch grade mit dem recent topics mod auseinander. Das Problem mit den Folderimages habe ich bei mir schon gelöst.
Aber ich habe das Problem, dass auch mit der normalen recent.php (die aus dem MOD download) die links für gestern, letzte wochen etc. GAR NICHT funktionieren - es kommt immer nur 24 h.

Was den Zähler angeht: Ich glaube, es sind immer die gleichen Themen, die nicht gezählt werden... Wenn man auf reload klickt, verschwindet auch das orange new topic icon...

Aber warum die Links nicht klappen, darauf kann ich mir keinen Reim machen...
Es gibt immer ein außerirdisches Schlachtschiff, einen kosmischen Todeslaser oder
eine intergalaktische Pest, die das Leben auslöschen wollen auf diesem elenden Planeten!

Men in Black
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

@P6A
Könntest du mal die 1.0.4er Version ausprobieren?

@Jonas
Kann man sich das mal anschauen (wenn das Problem noch besteht) ?
Benutzeravatar
Jonas
Mitglied
Beiträge: 128
Registriert: 07.06.2003 20:04
Wohnort: Bad Nenndorf
Kontaktdaten:

Beitrag von Jonas »

Hm, es hängt wohl mit meiner lokalen php-Konfig zusammen. Auf dem Server im Internet funktioniert es ohne Probleme
Es gibt immer ein außerirdisches Schlachtschiff, einen kosmischen Todeslaser oder
eine intergalaktische Pest, die das Leben auslöschen wollen auf diesem elenden Planeten!

Men in Black
P6A
Mitglied
Beiträge: 37
Registriert: 24.09.2003 17:51
Wohnort: badischer underground
Kontaktdaten:

Beitrag von P6A »

@Acid:

sorry ... hatte in den letzten Tage wenig Zeit ...
habe gerade die Version 1.0.4.er Version auf den Server gespielt.
die Version liefert allerdings immer noch falsche Zahlen :(

Die pagination funktioniert auch noch nicht so wie sie sollte ...

Das Problem topics_per_page // posts_per_page ist auch noch nicht gelöst. Entweder der link zu den folgenden seiten oder die Anzahl der auf der Seite angezeigten Themen sollte korrigiert werden.

vorschlag:

recent.php zeile 88:

Code: Alles auswählen

$part2 = " ORDER BY p.post_time desc LIMIT $start, ".$board_config['topics_per_page'];
ändern in:

Code: Alles auswählen

$part2 = " ORDER BY p.post_time desc LIMIT $start, ".$board_config['posts_per_page'];
hatte auch keine zeit mir das MOD bisher richtig anzuschauen...
muss noch einige Dinge bei mir auf der Seite einbauen,
damit diese endlich online gehen kann.

das recent_topic MOD hatt da eher eine geringere Prio. ... erst sollten noch ein paar andere Bereiche fertig werden.

Werde aber wenn ich soweit bin das MOD weiter analysieren ...
P6A
Mitglied
Beiträge: 37
Registriert: 24.09.2003 17:51
Wohnort: badischer underground
Kontaktdaten:

des Rätsels Lösung

Beitrag von P6A »

das recent_topic MOD hatt da eher eine geringere Prio. ... erst sollten noch ein paar andere Bereiche fertig werden.
*grins* ... jaja wenn ich mich doch nur selber an meine Prio halten würde ...

Hab mir die recent.php nochmals angeschaut und habe den Fehler entdeckt, warum die Zahlen nicht übereinstimmen.

1. die richtige erste SQL Abfrage (diese listet alle Themen auf):

Code: Alles auswählen

SELECT 
from_unixtime(p.post_time, '%d.%m.%y %H:%i:%s') as topic_time, 
f.forum_name as forum_name, f.forum_id as forum_id, 
u.username as username, u2.username as username2, 
u2.user_id as user_id2, p.poster_id as poster_id,
p.post_username as post_username, 
p.post_id as post_id, 
t.*, 
p.post_time as post_time 

FROM phpbb_topics t, phpbb_posts p
LEFT OUTER JOIN phpbb_forums f on p.forum_id = f.forum_id 
LEFT OUTER JOIN phpbb_users u on p.poster_id = u.user_id 
LEFT OUTER JOIN phpbb_users u2 on u2.user_id = t.topic_poster 

WHERE t.topic_id IN (1, ... xxx )
AND p.post_id = t.topic_last_post_id 

AND UNIX_TIMESTAMP(NOW()) - p.post_time < 2592000 

ORDER BY p.post_time desc LIMIT 0, 15
» diese bezieht sich auf das Datum p.post_time

Die zweite SQL-Abfrage welche nur den Total Wert errechnen soll ist definitiv falsch.

falsche SQL Abfrage:

Code: Alles auswählen

SELECT count(*) AS total FROM phpbb_topics 
WHERE topic_id IN (1, ... xxx ) 
AND UNIX_TIMESTAMP(NOW()) - topic_time < 25920000
hier wird das Datum topic_time und nicht wie in der oberen Abfrage post_time verwendet.
Während die erste Abfrage also das Datum des letzten Beitrags als Kriterie nimmt,
wird in der zweiten Abfrage das Erstellungsdatum verwendet. Dadurch stimmen die Werte natürlich nicht mehr überein.

die richtige SQL Abfrage wäre:

Code: Alles auswählen

SELECT count(*) AS total FROM phpbb_topics t, phpbb_posts p
WHERE p.post_id = t.topic_last_post_id 
AND t.topic_id IN (1, ... xxx ) 
AND UNIX_TIMESTAMP(NOW()) - p.post_time < 2592000
In der Datei recent.php muss folgender Block geändert werden:


alt (falsch):

Code: Alles auswählen

if ( $selorder == 'las24' )
{
        $where = "WHERE topic_id IN ($auth_results) AND UNIX_TIMESTAMP(NOW()) - topic_time < 86400";
        $l_selorder = $lang['24h'];
}
else if ( $selorder == 'today' )
{
        $where = "WHERE topic_id IN ($auth_results) AND FROM_UNIXTIME(topic_time,'%Y%m%d') - FROM_UNIXTIME(unix_timestamp(NOW()),'%Y%m%d') = 0";
        $l_selorder = $lang['tday'];
}
else if ( $selorder == 'yestr' )
{
        $where = "WHERE topic_id IN ($auth_results) AND FROM_UNIXTIME(topic_time,'%Y%m%d') - FROM_UNIXTIME(unix_timestamp(NOW()),'%Y%m%d') = -1";
        $l_selorder = $lang['yday'];
}
else if ( $selorder == 'lweek' )
{
        $where = "WHERE topic_id IN ($auth_results) AND UNIX_TIMESTAMP(NOW()) - topic_time < 691200";
        $l_selorder = $lang['week'];
}
else if ( $selorder == 'laday' )
{
        $where = "WHERE topic_id IN ($auth_results) AND UNIX_TIMESTAMP(NOW()) - topic_time < $showdays";
        $l_selorder = sprintf($lang['xdays'],$nodays);
}

$sql = "SELECT count(*) AS total FROM ".TOPICS_TABLE." $where";
gegen neu (richtig):

Code: Alles auswählen

if ( $selorder == 'las24' )
{
        $where = "WHERE t.topic_id IN ($auth_results) AND UNIX_TIMESTAMP(NOW()) - p.post_time < 86400";
        $l_selorder = $lang['24h'];
}
else if ( $selorder == 'today' )
{
        $where = "WHERE t.topic_id IN ($auth_results) AND FROM_UNIXTIME(p.post_time,'%Y%m%d') - FROM_UNIXTIME(unix_timestamp(NOW()),'%Y%m%d') = 0";
        $l_selorder = $lang['tday'];
}
else if ( $selorder == 'yestr' )
{
        $where = "WHERE t.topic_id IN ($auth_results) AND FROM_UNIXTIME(p.post_time,'%Y%m%d') - FROM_UNIXTIME(unix_timestamp(NOW()),'%Y%m%d') = -1";
        $l_selorder = $lang['yday'];
}
else if ( $selorder == 'lweek' )
{
        $where = "WHERE t.topic_id IN ($auth_results) AND UNIX_TIMESTAMP(NOW()) - p.post_time < 691200";
        $l_selorder = $lang['week'];
}
else if ( $selorder == 'laday' )
{
        $where = "WHERE t.topic_id IN ($auth_results) AND UNIX_TIMESTAMP(NOW()) - p.post_time < $showdays";
        $l_selorder = sprintf($lang['xdays'],$nodays);
}

$sql = "SELECT count(*) AS total FROM ".TOPICS_TABLE." t , ".POSTS_TABLE." p $where AND p.post_id = t.topic_last_post_id";
+++ @Acid: die Änderung in dem vorherigen Beitrag sollte auch in die neue verbesserte Version +++
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Danke für die Information. Ich hatte das mit "post_time" schonmal gefixed gehabt, hab dann aber beim Arbeiten wieder eine alte Version der recent.php genommen. :)

Allerdings kann ich dir bei der "pagination" nich ganz folgen. In der 1.0.4er Version wird doch nach "topics_per" gedingst!? :-?
Edit: Ach die page_number meintest du. :roll: Na dann..
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“