recent topics block erweitern

Blocks, Layouts, Hacks ...

Beitragvon xrichx » 7. Feb 2007 06:36

:lol:

also

es gibt zwei blöcke die, die letzten topics anzeigen, recent_topics und topics_since.

Der recent_topics arbeitet nach dem prinzip, zeig mir die letzten 1ß aktiven themen. Der topics_since aber nach dem System, zeig mir die themen die in den letzten XX tagen aktiv waren.

Nachteil ist beim recent_topics das er nicht wirklich informtion bietet (wie oben shcon beschrieben). Er zeigt nicht an wer der Author ist, wieviele antworten oder views waren, nicht in welchem forum bzw. unterforum das thema sich befindet, und vorallem, er zeigt es optisch, durch das sympol am anfang nicht an ob ich das thema schon gelesen habe oder nicht.

das alles bietet aber der topics_since block, hier habe ich aber eben das problem das er mir eben nach einer gewissen zeit arbeitet und nicht nach einer anzahl an aktiven themen. Deshalb wäre es für mich interesant, ob jemand weiß wie man den topics_since block so einstellen kann das er immer, unabhängig wie lange der user die zeit einstellt, 10 themen zeigt.

danke fürs zuhören ;)

ps: look @ http://2007i.fuoco.at
xrichx
Spender
 
Beiträge: 9
Registriert: 6. Feb 2007 14:35

Beitragvon AmigaLink » 7. Feb 2007 11:19

Ah jetzt ja. Eine Insel. :D

Ich kenne den topics_since Block gar nicht. Kannst du den mal anhängen?

Zu deiner Frage:
Grundsätzlich würde ich schon mal hingehen und die Auswahlbox entfernen. Damit der User den Anzeigezeitraum nicht ändern kann. :)
Die Anzeige auf 10 Themen beschränken ist eine simple Änderung in der Datenbankabfrage. Näheres könnte ich dir evtl. sagen wenn ich den Code kenne.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon xrichx » 7. Feb 2007 13:29

ach du schande, könnte sein das es mein fehler war, da ich ja das integramod portal habe und im standard IM den topics_since nicht gibt, aber wenn du mir dennoch so nett wärst im code nachzuschauhen ob du auf die schnelle was findest wäre ich dir sehr verbunden.

im anhang sind in der rar datei 2 datein, da der topics_since block eigentlich, so scheints, für das proil des users gemacht wurde.


die anzeigebox entfernen ädnert aber leider nichts daran das der block dennoch nur themen anzeigt die in den letzten 7 tagen aktiv waren anzuzeigen. dH. es kann sein das der block nur 3 beiträge anzeigt weil die in den letzten 7 tage aktiv waren. Aber anzeigen möchte ich dem user IMMER 10 topics.
Dateianhänge
topics_since.rar
(11.2 KiB) 477-mal heruntergeladen
xrichx
Spender
 
Beiträge: 9
Registriert: 6. Feb 2007 14:35

Beitragvon AmigaLink » 7. Feb 2007 19:49

Stimmt - Der Block greift auf einen Code zurück, der Bestandteil des PCP ist.
Sei dir also bewusst das die Änderung auch die Anzeige im Profil betrifft und außerdem viel unnötiger Code übrig bleibt!
Code: Alles auswählen
#
#-----[ OPEN ]----------------------------------------------------------------
#

profilcp_home_last_topics.php

#
#-----[ FIND ]----------------------------------------------------------------
#

                  AND   p2.post_time >= $topics_last_floor
                  $limit_topics_time
               ORDER BY t.topic_type DESC, p2.post_time DESC";

#
#-----[ REPLACE WITH ]--------------------------------------------------------
#

               ORDER BY t.topic_type DESC, p2.post_time DESC LIMIT 10";

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------------
#
# EoM

Zusätzlich zu dieser Änderung solltest du noch (wie schon mal vorgeschlagen) die Auswahlbox in der tpl-Datei entfernen. Denn die ist nun ohne Funktion.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon xrichx » 7. Feb 2007 21:15

edit: argh, leider ne fehlermeldung:


Parse error: syntax error, unexpected T_STRING in /www/htdocs/w0080334/IM141/profilcp/profilcp_home_last_topics.php on line 123

(zeile 123 = ORDER BY t.topic_type DESC, p2.post_time DESC
xrichx
Spender
 
Beiträge: 9
Registriert: 6. Feb 2007 14:35

Beitragvon AmigaLink » 7. Feb 2007 21:49

:shock: Nanu
Dürfte zwar keinen Unterschied machen, aber versuch mal so (habe oben editiert).
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon xrichx » 7. Feb 2007 22:02

leider kein unterschied :(

die pasage im code schauht nun so aus:

Code: Alles auswählen
...
   AND t.topic_poster = u.user_id
                  AND p.post_id = t.topic_first_post_id
                  AND p2.post_id = t.topic_last_post_id
                  AND u2.user_id = p2.poster_id
                  //AND   p2.post_time >= $topics_last_floor
                  //$limit_topics_time
               //ORDER BY t.topic_type DESC, p2.post_time DESC";
               ORDER BY t.topic_type DESC, p2.post_time DESC LIMIT 10"; 
         if ( !$result = $db->sql_query($sql) )
...
xrichx
Spender
 
Beiträge: 9
Registriert: 6. Feb 2007 14:35

Beitragvon AmigaLink » 7. Feb 2007 22:30

Ah, alles klar. Das kann nicht klappen. :D
Innerhalb von SQL-Anweisungen darfst du nicht auskommentieren! Lösch also die Zeilen 6-8.

Zur Erklärung:
Code: Alles auswählen
         $sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time, f.forum_name
               FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2, " . FORUMS_TABLE . " f
               WHERE t.forum_id IN ($s_forum_ids)
                  AND f.forum_id = t.forum_id
                  AND t.topic_poster = u.user_id
                  AND p.post_id = t.topic_first_post_id
                  AND p2.post_id = t.topic_last_post_id
                  AND u2.user_id = p2.poster_id
                   ORDER BY t.topic_type DESC, p2.post_time DESC
               LIMIT 10"; 
Die SQL-Anweisung ist ein String dessen Inhalt mit $db->sql_query($sql) ausgeführt wird.
Sie ist nur auf mehrere Zeilen verteilt, um die Lesbarkeit des Codes zu erhöhen. Du musst also die Zeilen 1-10 (aus diesem Codeblock) als eine Zeile sehen! :)

In Wirklichkeit (also für den php-Interpreter) sieht die Zeile so aus:
Code: Alles auswählen
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time, f.forum_name FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2, " . FORUMS_TABLE . " f WHERE t.forum_id IN ($s_forum_ids) AND f.forum_id = t.forum_id AND t.topic_poster = u.user_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id ORDER BY t.topic_type DESC, p2.post_time DESC LIMIT 10";
[center](Das kann ja keine "Sau" mehr Lesen. ;o))[/center]
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon xrichx » 7. Feb 2007 22:37

danke, jetzt kommt aber die weitere meldung... sorry :(

Code: Alles auswählen
Could not query watched topics information

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 10' at line 10

SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time, f.forum_name FROM topics t, users u, posts p, posts p2, users u2, forums f WHERE t.forum_id IN (1) AND f.forum_id = t.forum_id AND t.topic_poster = u.user_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id ORDER BY t.topic_type DESC, p2.post_time DESC LIMIT 10 LIMIT 0, 10

Line : 153
File : profilcp_home_last_topics.php
xrichx
Spender
 
Beiträge: 9
Registriert: 6. Feb 2007 14:35

Beitragvon AmigaLink » 7. Feb 2007 22:39

Jetzt hast du das LIMIT 2 mal drin. :roll:
Nimm einfach den ersten Codeblock aus Beitrag #18. ;)

Zugefügt nach 34 Sekunden:

Und bevor ich es vergesse: Vielen Dank für deine Spende! 8)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

VorherigeNächste

Zurück zu IM-Portal Addons



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron