Anzeige neue PM

Armin Bartsch, Mittwoch, 11. März 2009

Zeigt die Anzahl neuer PM an

Da das mm_forum stetig weiter entwickelt wird und damit zu rechnen ist das auch bald eine PM-Anzeige integriert sein wird, binde ich die Anzeige mit dem cObject USER ein. Die Funktion ist schnell einzubinden und kann leicht erweitert werden

class tx_mmforum_pm_message

Die class tx_mmforum_pm_message enthält die funktion count_pm() mit der die Anzahl der neun (noch nicht gelesenen PM) zurückgegeben werden.

<?php class tx_mmforum_pm_message { function count_pm() { global $TSFE; if ($TSFE->fe_user->user) { $result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( 'count(*)', 'tx_mmforum_pminbox', 'to_uid = '.$TSFE->fe_user->user['uid'].' AND read_flg = \'\' AND mess_type = 0 AND hidden=0 AND deleted=0'); $row = $GLOBALS['TYPO3_DB']->sql_fetch_row($result); return $row[0]; } } } ?>
  1. <?php
  2.  
  3. class tx_mmforum_pm_message {
  4.  
  5.   function count_pm() {
  6.    
  7.     global $TSFE;
  8.    
  9.     if ($TSFE->fe_user->user) {
  10.       $result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( 'count(*)',
  11.                                                         'tx_mmforum_pminbox',
  12.                                                         'to_uid = '.$TSFE->fe_user->user['uid'].' AND read_flg = \'\' AND mess_type = 0 AND hidden=0 AND deleted=0');
  13.                                                        
  14.       $row = $GLOBALS['TYPO3_DB']->sql_fetch_row($result)
  15.    
  16.       return $row[0];
  17.    
  18.     }
  19.  
  20.   }
  21.  
  22. }
  23.  
  24. ?>
  25.  

Die Klasse speichere ich als class.tx_mmforum_pm_message_p1.php.

TypoScript

Jetzt muss noch die die Datei eingebunden werden damit die Klasse und die Function zur Verfügung steht.

includeLibs.tx_mmforum_pm_message = EXT:anpassungen_t3/class.tx_mmforum_pm_message_p1.php
  1. includeLibs.tx_mmforum_pm_message = EXT:anpassungen_t3/class.tx_mmforum_pm_message_p1.php

Über das cObject USER wird die function count_pm aufgerufen.

40 = TEXT 40.stdWrap.cObject = USER 40.stdWrap.cObject.userFunc = tx_mmforum_pm_message->count_pm 40.wrap = <span class="abs">Sie haben&nbsp;|&nbsp;neue Nachrichten</span> 40.if.isInList = 191 40.if.value.field = uid
  1. 40 = TEXT
  2. 40.stdWrap.cObject = USER
  3. 40.stdWrap.cObject.userFunc  = tx_mmforum_pm_message->count_pm
  4. 40.wrap = <span class="abs">Sie haben&nbsp;|&nbsp;neue Nachrichten</span>
  5. 40.if.isInList = 191
  6. 40.if.value.field = uid
  7.  

Das Bespiel oben wurde in eine Navigation (HMENU/TMENU) eingesetzt, deswegen die if-Abfrage damit nicht bei alle Navigationspunkten die Anzahl erscheint sondern nur bei "Private Nachrichten"

Sponsored by:

ideenwerft webhosting
ideenwerft caretaker