[Typo3-german] autor anzeigen
Johannes Goetzinger
trash at 82er.de
Wed Nov 9 16:11:11 CET 2005
hallo,
vielen dank! dat funzt!
schön. nur dass ich perm_userid nehme statt cruser_id. dann zeigt er mir
an, wer für den artikel zuständig ist.
gruß,
johannes.
Kussmann, Juergen wrote:
> 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