ilch Forum » Ilch Clan 1.1 » Allgemein » Menü + änderbares Button bei neue Posts

Geschlossen
  1. #1
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Hallöchen.

    Ich habe auf meiner Seite ein festes Menü.

    Ich möchte aber, dass wenn es ungelesene Posts im Forum gibt, ein anderes Bitmap als Button "Forum" erscheint, als wenn keine neuen Post vorhanden sind.

    Im klartext, soll der Button dann blinken, wenn neue Posts vorhanden sind.

    Kann mir da jemand helfen diese Funktion einzubauen?

    lg Ridchi.


    verwendete ilchClan Version: 1.1
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Echt traurig, das hier keiner Antwortet.
    Dann muß ich wohl selbst schauen wie ich das hinbekomme.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    das hättest du es machen müssen. nicht einfach nur posten und keine eigenleistung aufweisen...
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Wenn ich es könnte hätte ich es gemacht, und ich hab mich selbst drann versucht und auch zum ergebniss gekommen.

    der Code geht bestimmt noch kürzer, hier mal meine version der box. könnt ja mal euere meinung dazu posten wie man es noch kürzer schreiben kann.

    <?php defined ('main') or die ('no direct access'); 
    
    $q = "SELECT
      a.id, a.cid, a.name, a.besch,
      a.topics, a.posts, b.name as topic,
      c.id as pid, c.tid, b.rep, c.erst, c.time,
      a.cid, k.name as cname
    FROM prefix_forums a
      LEFT JOIN prefix_forumcats k ON k.id = a.cid
      LEFT JOIN prefix_posts c ON a.last_post_id = c.id
      LEFT JOIN prefix_topics b ON c.tid = b.id
    	
      LEFT JOIN prefix_groupusers vg ON vg.uid = ".$_SESSION['authid']." AND vg.gid = a.view
      LEFT JOIN prefix_groupusers rg ON rg.uid = ".$_SESSION['authid']." AND rg.gid = a.reply
      LEFT JOIN prefix_groupusers sg ON sg.uid = ".$_SESSION['authid']." AND sg.gid = a.start
    	
    WHERE ((".$_SESSION['authright']." <= a.view AND a.view < 1) 
       OR (".$_SESSION['authright']." <= a.reply AND a.reply < 1)
       OR (".$_SESSION['authright']." <= a.start AND a.start < 1)
    	 OR vg.fid IS NOT NULL
    	 OR rg.fid IS NOT NULL
    	 OR sg.fid IS NOT NULL
    	 OR -9 >= ".$_SESSION['authright'].")
     
    ORDER BY k.pos, a.pos";
    $test = 0;
    $erg1 = db_query($q);
    $xcid = 1;
    while ($r = db_fetch_assoc($erg1) ) {
      
      if (forum_get_ordner($r['time'],$r['id']) == "nord")
      {$neues = 1;}
       
      if ($r['cid'] <> $xcid) {
       
        $xcid = $r['cid'];
      }
      
    }
    
    if ($neues == 1)
    {
    print "02-forum-3.gif" ;
    }
    else
    {
    print "02-forum-1.gif" ;
    }
    
    ?>
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    wo ist denn dieser forumbutton? der ist doch nicht in der dynamischen navi oder ??
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Nein, hab ein Festes Menü.... der Button steht in der /desing/.../index.htm

    .
    .
    .
    <tr> 
    <td><a href="?forum" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image7','','include/designs/RiDcHi8O/pics/navilinks/02-forum-2.gif',1)"><img src="include/designs/RiDcHi8O/pics/navilinks/{_boxes_NEWPOST}" name="Image7" width="161" height="18" border="0"></a></td>
    </tr>
    .
    .
    .
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    achso ja dann geht das so. dachte du willst das in der dynamischen navi machen. hättest du das vorher erwähnt, hätte dir auch einer geholfen. ich glaub in der dynamischen navi geht das garnischt....
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    hab ich aber...
    selbst im chat... aber keiner hatte bock :-(

    kannb ich die box noch bissel kürzen? was meinst du?

    ich denke mal je länger irgend was ist legt sich das auf die ladezeit. oder?
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    weiß net genau. wenn sie läuft würde ich sie so lassen, ist ja nur ein kleiner code. der macht den bock nicht fett...
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    stimmt....

    Weißt du zufällig wo der text "Du hast leider nicht die nötigen Rectre...:-$ zu finden ist?

    Wollt den gern ein wenig ändern, weiß aber nicht mehr in welcher datei der steht.
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    schau mal in der include/includes/lang/de.php
    denke mal das der da steht...
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    hab ich gestern schon, da hab ich es aber nicht gefunden. aber ich guck gleich nochmal...
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    hmm, leider nein... das steht da nicht drin :-(
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    dan schau mal in include/includes/func
    alle dateien durch. vielleicht ist da was dabei, wenn nicht dann wende dich am besten direkt an mairu der kann dir das bestimmt genau sagen
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Der Text ist in der includes/class/menu.php und wegen den neues Posts, ist halt nicht ganz so einfach.

    <?php defined ('main') or die ('no direct access');
    
    if (!isset($_SESSION['newForumPosts'])) {
    	$q = "SELECT COUNT(a.id) FROM prefix_forums a
      LEFT JOIN prefix_forumcats k ON k.id = a.cid
      LEFT JOIN prefix_posts c ON a.last_post_id = c.id
      LEFT JOIN prefix_topics b ON c.tid = b.id
        
      LEFT JOIN prefix_groupusers vg ON vg.uid = ".$_SESSION['authid']." AND vg.gid = a.view
      LEFT JOIN prefix_groupusers rg ON rg.uid = ".$_SESSION['authid']." AND rg.gid = a.reply
      LEFT JOIN prefix_groupusers sg ON sg.uid = ".$_SESSION['authid']." AND sg.gid = a.start
        
    WHERE c.`time` > {$_SESSION['lastlogin']} AND
       ((".$_SESSION['authright']." <= a.view AND a.view < 1)
       OR (".$_SESSION['authright']." <= a.reply AND a.reply < 1)
       OR (".$_SESSION['authright']." <= a.start AND a.start < 1)
         OR vg.fid IS NOT NULL
         OR rg.fid IS NOT NULL
         OR sg.fid IS NOT NULL
         OR -9 >= ".$_SESSION['authright'].")";
    	
    	$_SESSION['newForumPosts'] = (bool) (db_count_query($q) > 0);
    }
    
    //Bei Aufruf des Forums wieder entfernen
    if ($menu->get(0) == 'forum' and $menu->get(1) != 'privmsg') {
    	$_SESSION['newForumPosts'] = false;
    }
    
    echo $_SESSION['newForumPosts'] ? '02-forum-3.gif' : '02-forum-1.gif';
    ?>


    So ich habs mal versucht etwas zu optimieren, ohne es selbst zu testen. So sollte die Abfrage nur beim ersten Aufruf gestellt werden, danach wird auf einen gespeicherten Wert zugegriffen.
    Und wenn man das Forum aufruft, wird wieder das normale Symbol verwendet, ich hoffe so wäre das ok.


    Zuletzt modifiziert von Mairu am 06.03.2009 - 18:15:49
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Danke :-)

    Text gefunden.

    den Script test ich mal aus. das 02-forum-3.gif sollte aber schon solange anktiv sein wie es ungelesene Beiträge gibt.

    Ich nutze Ilch für ne Organisation von nem Klassentreffen :-) und da gibt es viele nutzer die nicht so den Plan haben, und ich sie Wirklich richtig drauf hinweisen will.

    lg Ridchi
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    MySQL 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 '((-9 <= a.view AND a.view < 1) OR (-9 <= a.reply AND a.reply < 1) OR (-9' at line 11
    in Query:
    SELECT COUNT(a.id) FROM ic1_forums a LEFT JOIN ic1_forumcats k ON k.id = a.cid LEFT JOIN ic1_posts c ON a.last_post_id = c.id LEFT JOIN ic1_topics b ON c.tid = b.id LEFT JOIN ic1_groupusers vg ON vg.uid = 1 AND vg.gid = a.view LEFT JOIN ic1_groupusers rg ON rg.uid = 1 AND rg.gid = a.reply LEFT JOIN ic1_groupusers sg ON sg.uid = 1 AND sg.gid = a.start WHERE a.`time` > 1236297693 ((-9 <= a.view AND a.view < 1) OR (-9 <= a.reply AND a.reply < 1) OR (-9 <= a.start AND a.start < 1) OR vg.fid IS NOT NULL OR rg.fid IS NOT NULL OR sg.fid IS NOT NULL OR -9 >= -9)
    
    Debug backtrace:
    	@ mysql.php:32 -- debug_bt()
    	@ mysql.php:50 -- db_check_error(...)
    	@ mysql.php:79 -- db_query(...)
    	@ newpost.php:22 -- db_count_query(...)
    	@ design.php:353 -- require_once(...)
    	@ design.php:195 -- design->get_boxcontent(...)
    	@ design.php:70 -- design->replace_boxes(...)
    	@ startseite.php:6 -- design->design(...)
    	@ index.php:26 -- require_once(...)
    
    
    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /include/includes/func/db/mysql.php on line 54
    02-forum-1.gif " name="Image7" width="161" height="18" border="0">
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Oh ja, so ist es wenn man nicht testet zunge
    Naja da hat ein AND gefehlt.

    Naja aus meiner Sicht ist es nicht notwendig es weiter blinken zu lassen, da wenn man das Forum einmal offen hat, sehen sollte wo überall neue Beiträge da sind und man ansonsten echt bei jedem Seitenaufruf prüfen müsste, ob es noch ungelesene Beiträge gibt, gerade mit deiner Methode recht aufwendig.

    Ansonsten mal damit probieren
    <?php defined ('main') or die ('no direct access');
    
    $ids = isset($_SESSION['forumSEE']) ? implode(',', $_SESSION['forumSEE']) : 'NULL';
    
    	$q = "SELECT COUNT(a.id) FROM prefix_forums a
      LEFT JOIN prefix_forumcats k ON k.id = a.cid
      LEFT JOIN prefix_posts c ON a.last_post_id = c.id
      LEFT JOIN prefix_topics b ON c.tid = b.id
        
      LEFT JOIN prefix_groupusers vg ON vg.uid = ".$_SESSION['authid']." AND vg.gid = a.view
      LEFT JOIN prefix_groupusers rg ON rg.uid = ".$_SESSION['authid']." AND rg.gid = a.reply
      LEFT JOIN prefix_groupusers sg ON sg.uid = ".$_SESSION['authid']." AND sg.gid = a.start
        
    WHERE c.`time` > {$_SESSION['lastlogin']} AND b.`id` NOT IN ({$ids}) AND
       ((".$_SESSION['authright']." <= a.view AND a.view < 1)
       OR (".$_SESSION['authright']." <= a.reply AND a.reply < 1)
       OR (".$_SESSION['authright']." <= a.start AND a.start < 1)
         OR vg.fid IS NOT NULL
         OR rg.fid IS NOT NULL
         OR sg.fid IS NOT NULL
         OR -9 >= ".$_SESSION['authright'].")";
    	
    echo ((bool) (db_count_query($q) > 0)) ? '02-forum-3.gif' : '02-forum-1.gif';
    ?>


    Edit: Ein Buchstabe war falsch traurig


    Zuletzt modifiziert von Mairu am 06.03.2009 - 18:05:49
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    siehste mairu hats voll drauf zungezwinker
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    klappt auch nicht, da kommen wirder solche fehlermeldungen.
    ich lass mein ales script drin, das geht zumindestens.


    Aber mal noch eine Frage zur Onlineanzeige.
    kann es sein das der User automatisch auf offline gesetzt wird, wenn er eine gewisse zeit keine seite mehr gewechselt hat?

    geht das nicht anders zu lösen? denn wenn man zum beispiel im Chat ist, ist man online, man wird aber dann als offline angezeigt.
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also war noch ein mini Fehler drin, zumindest kommt jetzt kein Fehler mehr.

    Wegen den Online, es ist richtig, dass wenn man eine Weile keine Seite mehr aufruft, man als offline angezeigt wird, und das ist ja auch vollkommen richtig so.

    Um das zu umgehen, könntest du in einem versteckten iframe eine Seite (von deiner Seite) öffnen, die aller 10 Minuten neu geladen wird, so bleibt man online, wenn die Seite noch im Browser geöffnet ist.

    Lege dazu eine Datei contents/refresh.php mit Inhalt
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <title>Refresh</title>
      <meta http-equiv="refresh" content="600; URL=index.php?refresh">
      </head>
      <body>
      </body>
    </html>
    an.
    Bei deinem Chat, einer extra Box oder direkt der index.htm kannst du dann das versteckte iframe einfügen
    <iframe style="display:none;" src="index.php?refresh"></iframe>
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Ja das mit dem Iframe ist schon keine schlechte Idee, nur habe ich das Problem, das er beim Internetexplorer aus den laden gar nicht mehr raus kommt.... und beim Firefox gar nix passiert
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also ich habs mal getestet und da schien es zu funktionieren, ohne dass der IE viel geladen hätte.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    Ridchi1980 Mitglied
    Registriert seit
    01.03.2009
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    ich habe es jetz in PHP geschrieben und mit echo ausgegeben, da gehts.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten