Zum Inhalt springen

mm_forum: Im Userinfo email-Adresse anzeigen

Erstellt am 26. Mai 2008 · 1 Antwort · letzte Antwort am 27. Mai 2008

Tags: Frage

sunfish ·

Hallo,
für ein internes Forum wäre es hilfreich, wenn in der Ansicht der einzelnen Beiträge (list_posts) im Marker ###POSTUSER### auch die Emailadresse des Beitragsschreibers angezeigt werden könnte. Mein Versuch mit list_posts.userinfo.50 = TEXT war kein Erfolg beschieden.
Um update-fähig zu bleiben, suche ich möglichst nach einer TS-Lösung - gibt es da eine?

Ulrich

sunfish ·

Hallo Ulrich,
mit Typoscript alleine geht es in diesem Fall leider nicht. Aber für einen solchen Zweck wurde im 'mm_forum' in der Klasse 'tx_mmforum_pi1' in der Datei 'class.tx_mmforum_pi1.php' bei der 'function ident_user' ein Hook eingebaut:

// Include hooks
if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['mm_forum']['forum']['userInformation_marker'])) {
  foreach($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['mm_forum']['forum']['userInformation_marker'] as $_classRef) {
   $_procObj = & t3lib_div::getUserObj($_classRef);
   $marker = $_procObj->userInformation_marker($marker, $user_array, $this);
  }
}

Lege mit dem Kickstarter eine neue Extension an, z.B. 'mm_forumext'.
Richte dort ein Verzeichnis 'hooks' ein.
Erstelle im Verzeichnis 'hoooks' eine Datei 'class.tx_mmforumext_hooks.php' mit folgendem Inhalt:

<?php
class tx_mmforumext_hooks {
	
	/**
	 * function userInformation_marker
	 *
	 * @param	array		$marker: All markers of
	 * @param	array		$user_array: The PlugIn configuration
	 * @param	object		$this from class tx_mmforum_pi1
	 * @return	The extended marker array
	 */
	function userInformation_marker($marker, $user_array, $pObj)	{
	
	    $this->pObj=&$pObj;
	
		$useremail = '<a href="mailto:'.$user_array['email'].'">'.$user_array['email'].'</a>';
		$marker['###USEREMAIL###'] = $useremail;
		return $marker;	
	}
}
?>

Schreibe dann in die Datei 'ext_localconf.php' der neuen Extension:

<?php
if (!defined ('TYPO3_MODE')) 	die ('Access denied.');
	// register the mm_forum hook class
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['mm_forum']['forum']['userInformation_marker'][] = 'EXT:mm_forumext/hooks/class.tx_mmforumext_hooks.php:tx_mmforumext_hooks';
?>

Damit wird die neue Klasse 'tx_mmforumext_hooks' nur bei Bedarf eingebunden und registriert. Der Funktionsname kommt hier gar nicht vor. Damit alles automatisch läuft, muss der Name der Funktion identisch sein mit der Bezeichnung im HOOK. Daher heisst die Erweiterungsfunktion 'function userInformation_marker()'.

Als Beispiel kann die Extension: Newsextension(danp_extendnews) dienen, bei der innerhalb einer Klasse mehrere HOOKS von 'tt_news' zur Erweiterung genutzt werden. Mehr zum Thema HOOKS erfährst du in Robert Lemkes Artikel http://typo3.org/development/articles/how-to-use-existing-hooks/

Baue zum Schluss den Marker ###USEREMAIL### in das template 'list_post.html' nach ###TOPICCREATOR### ein. Jetzt kann die Extension ('mm_forumext') aktiviert werden.
An der Extension 'mm_forum' selbst musst du außer dem Template nichts ändern. Die gewünschte Update-Fähigkeit ist damit voll erreicht.

Fertig 🙂