[Typo3-german] autor anzeigen

Kussmann, Juergen j.kussmann at t-online.net
Tue Nov 8 16:18:13 CET 2005


Hi Johannes,

Die layout-Variable brauchst du nicht unbedingt (ich benutz sie nur, um verschiedene Layout's mit einer PHP-Funktion abdecken zu können). Wenn du die Layout-Variable nicht brauchst, dann reicht bei dir im TS auch folgendes:

40 = TEXT
40.preUserFunc = user_createArticleFooter

Die $layout-Variable in der PHP-Funktion enthält den Wert des Text-Values in TypoScript. Die Variable kannst du einfach ignorieren.

Eine extrem simple PHP-Funktion wäre so:

> function user_createArticleFooter($value) {
> 	global $TYPO3_DB,$TSFE;
> 
> 	// define creator-name and -emailadress
>     $res = $TYPO3_DB->exec_SELECTquery('realName,email','be_users','uid='.$TSFE->page['cruser_id']);
>     while($row = $TYPO3_DB->sql_fetch_assoc($res)) {
>             $creatorRealName  = $row['realName'];
>             $creatorEmail     = $row['email'];
>     }
>     $TYPO3_DB->sql_free_result($res);
> 
>      
> 	// create articleFooter
>     $content = '<div class="meta">Autor: <a href="mailto:'.$creatorEmail.'">'.$creatorRealName.'</a></div>';
>   	
> 	return $content;
> }


Viele Grüsse,


Jürgen Kußmann
-----Original Message-----
From: Johannes Goetzinger [mailto:trash at 82er.de] 
Sent: Tuesday, November 08, 2005 3:56 PM
To: typo3-german at lists.netfielders.de
Subject: Re: [Typo3-german] autor anzeigen

hallo juergen,

danke. auch dafür, dass du mir deinen code zur verfügung stellst. auf 
anhieb hat es jetzt mal nicht funktioniert. ich werde mich da morgen 
noch mal reinknien.

eine frage vielleicht noch: wozu ist die layout-variable? ist das die 
spalten-nr? brauch ich die unbedingt? (habe eigentlich alle inhalte 
immer in: normal)..

gruß,
johannes.

Kussmann, Juergen wrote:
> Hi Johannes,
> 
> Das gleiche Problem hatte ich auch. Einfach über TypoScript kriegst du es nicht hin, weil du über zwei Tabellen gehen musst, um den Namen des Autoren (in Tabelle 'be_user' gespeichert) zu ermitteln. In der Tabelle 'pages' steht ja nur die ID des Autoren drin.
> 
> Ich rufe in TS folgende PHP-Funktion auf:
> 
> 40 = TEXT
> 40.value = layout = 0
> 40.preUserFunc = user_createArticleFooter
> 
> 
> Die PHP-Funktion 'user_createArticleFooter' defierst du dann entweder in einer eigenen Extension in der ext_localconf.php (ist sauber) oder direkt (unschön) in deine "allgemeine" localconf.php-Datei. Der Code der Funktion sieht so aus:
> 
> function user_createArticleFooter($layout) {
> 	global $TYPO3_DB,$TSFE;
> 
> 	// define Layout-Type
> 	preg_match('/layout\s*=\s*([0-9]*)/i',$layout,$match);
> 	$layoutType = $match[1];
> 
> 	// define Date of creation and last update
> 	$createDate = date('d.m.Y',$TSFE->page['crdate']);
>         if(!empty($TSFE->page['SYS_LASTCHANGED'])) {
> 		$lastUpdate = date('d.m.Y',$TSFE->page['SYS_LASTCHANGED']);
> 	} else {
>                 $lastUpdate = $createDate;
> 	}
> 
> 	// define creator-name and -emailadress
>         $res = $TYPO3_DB->exec_SELECTquery('realName,email','be_users','uid='.$TSFE->page['cruser_id']);
>         while($row = $TYPO3_DB->sql_fetch_assoc($res)) {
>                 $creatorRealName  = $row['realName'];
>                 $creatorEmail     = $row['email'];
>         }
>         $TYPO3_DB->sql_free_result($res);
> 
> 	// define revisor-name and -emailadress
> 	if(!empty($TSFE->page['author']) && !empty($TSFE->page['author_email'])) {
> 		$revisorRealName = $TSFE->page['author'];
> 		$revisorEmail    = $TSFE->page['author_email'];
> 	} else {
> 		$revisorRealName = $creatorRealName;
> 		$revisorEmail    = $creatorEmail;
> 	}
> 
> 	// define approver-name and -emailadress
> 	if(1==2) {
> 		$approverRealname = 'Mr. XXX';
> 		$approverEmail    = 'xxx at xxx.xx';	
> 	} else {
>                 $approverRealname = '';
>                 $approverEmail    = '';
> 	}
> 
> 	// create articleFooter
> 	switch($layoutType) {
> 		case 0:
> 		default:
> 			$edited = 0;
>                         $content = '<div class="meta">Autor: <a href="mailto:'.$creatorEmail.'">'.$creatorRealName.'</a>, erstellt '.$createDate;
>                         if($revisorRealName != $creatorRealName && $revisorEmail != $creatorEmail) {
>                                 $content .=', bearbeitet: <a href="mailto:'.$revisorEmail.'">'.$revisorRealName.'</a>';
> 				$edited   = 1;
>                         }
>                         if($lastUpdate != $createDate || $edited == 1) {
>                                 $content .=', geändert '.$lastUpdate;
>                         }
>                         if(!empty($approverRealname) && !empty($approverEmail)) {
>                                 $content .= '<br>Chefredakteur: <a href="mailto:'.$approverEmail.'">'.$approverRealname.'</a>';
>                         }
>                         $content .= '</div>';
> 			break;
> 	} // END switch
>   	
> 	return $content;
> }
> 
> 
> Viele Grüsse,
> 
> Jürgen Kußmann
> -----Original Message-----
> From: Johannes Goetzinger [mailto:trash at 82er.de] 
> Sent: Tuesday, November 08, 2005 2:43 PM
> To: typo3-german at lists.netfielders.de
> Subject: [Typo3-german] autor anzeigen
> 
> hallo liste!
> 
> entschuldigung, weiß jemand von euch zufällig auf die schnelle, wie ich 
> den autor der seite anzeigen lassen kann!?
> 
> ich will dass da z.b. steht
> 
> zuletzt geändert am 12.11.2005 von uli meier
> 
> 'zuletzt geändert' hab ich schon..
> 
> 
> danke.
> 
> gruß,
> johannes.
> 




More information about the TYPO3-german mailing list