[TYPO3-german] tt_news eigen php-code im template
Manfred Mirsch
manfred.mirsch at hs-esslingen.de
Mon Nov 24 09:38:53 CET 2008
Hier noch ein Nachtrag, da ich gerade ein ähnliches Problem hatte.
Ich bin den Weg über eine eigene Extension gegangen, um Felder
hinzuzufügen. Der Vorteil ist, dass ich über den Hook von tt_news
beliebige Aktionen ausführen kann.
In meinem Fall habe ich ein Feld für einen Einleitungstext angelegt, das
in der Listenansicht angezeigt werden soll. Der Grund ist, dass in der
Listenansicht immer wieder Probleme auftraten, wenn ein Redakteur
Formatierungen eigefügt hatte und diese z.B. nach 300 Zeichen
abgeschnitten wurden. Einmal hatte wir die Situation, dass der gesamte
Seiteninhalt unterhalb des entsprechenden News-Eintrags in bold
dargestellt war, weil das Schliesstag </b> abgeschnitten wurde.
Dazu habe ich mit dem Kickstarter eine Extension angelegt, die das
entsprechenden Feld zur Tabelle tt_news hinzufügt.
In der Datei 'ext_tables.php' habe ich dann die folgenden zwei Zeilen
hinzugefügt, damit das Feld "tx_tvfk_einleitung" im Backend angezeigt wird:
t3lib_extMgm::addToAllTCAtypes("tt_news","tx_tvfk_einleitung;;;richtext[link];1-1-1");
$TCA['tt_news']['types']['0']['showitem'] =
'title;;1;;,type,editlock,datetime;;2;;1-1-1,author;;3;;,short,tx_tvfk_einleitung;;;richtext[link];1-1-1",bodytext;;4;richtext:rte_transform[flag=rte_enabled|mode=ts];4-4-4,no_auto_pb,--div--;Relations,category,image;;;;1-1-1,imagecaption;;5;;,links;;;;2-2-2,related;;;;3-3-3,news_files;;;;4-4-4';
Die Datei 'ext_localconf.php' habe ich folgendermassen erstellt damit
meine PHP-Methode zur Behandlung des Markers "###EINLEITUNG###"
aufgerufen wird:
<?php
if (!defined ('TYPO3_MODE')) die ('Access denied.');
if (TYPO3_MODE == 'FE') {
require_once(t3lib_extMgm::extPath('tvfk').'user_ttnewsfield.php');
}
//registering for hook
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraItemMarkerHook'][] =
'user_ttnewsfield';
?>
Hier nun schließlich die Datei 'user_ttnewsfield.php', welche für die
Behandlung des Feldes 'tx_tvfk_einleitung' im Frontend sorgt:
<?php
class user_ttnewsfield {
function extraItemMarkerProcessor($markerArray, $row, $lConf, &$pObj) {
if (strlen($row['tx_tvfk_einleitung'])>0) {
$val = $row['tx_tvfk_einleitung'];
if($pObj->config['code'] == 'LIST' || $pObj->config['code'] ==
'LATEST'){
$val = strip_tags($val,'<a>');
$val = eregi_replace("\n","<br/>",$val);
$crop = wordwrap($val, 300,"\n");
$crop = substr($crop,0,strpos($crop, "\n"));
if (strlen($crop)<strlen($val) && strlen($crop)>0) {
$val = $crop." ...";
}
$markerArray['###EINLEITUNG###'] = '<div
class="news_einleitung">'.$val.'</div>';
} else {
$markerArray['###EINLEITUNG###'] = '<div
class="news_einleitung_single">'.$val.'</div>';
}
} else {
$markerArray['###EINLEITUNG###'] = '';
}
return $markerArray;
}
}
?>
> Hallo Peter,
>
> es funktioniert einwandfrei. Auch mit losen php-dateien, ich muss nur bei includelibs den pfad angeben und das wars. Vielen Dank. Du hast mir ein paar deprimierenden Stunden erspart :-)
>
>> -----Ursprüngliche Nachricht-----
>> Von: typo3-german-bounces at lists.netfielders.de [mailto:typo3-german-
>> bounces at lists.netfielders.de] Im Auftrag von Rene? Kockisch
>> Gesendet: Mittwoch, 19. November 2008 12:26
>> An: typo3-german at lists.netfielders.de
>> Betreff: Re: [TYPO3-german] tt_news eigen php-code im template
>>
>> BigSebek schrieb:
>>> Hi,
>>>
>>> noch ein Problemchen.
>>>
>>> Ich habe im Template einen Marker namens ###My_Suche### eingebaut. An
>> diesen möchte ich nun meinen php-code anhängen. Ich schaff es einfach
>> nicht diesen Marker anzusprechen. Meine Versuche waren wie
>>> plugin.tt_news.altMainMarkers.My_Suche
>>>
>> includeLibs.displayMySuche = EXT:rk_mediathek/displayMySuche.php
>> plugin.tt_news.itemMarkerArrayFunc = user_displayMySuche
>>
>> im Temp einfügen. Dann ne Ext bauen und darin die entsprechende php
>> Datei erzeugen.
>>
>> In diese Datei kommt dann folgendes rein:
>>
>> function user_displayMySuche($markerArray, $conf){
>> $pageID = $GLOBALS['TSFE']->id; //bsp für Zugriff auf Array
>>
>> $markerArray['###My_Suche###'] = 'Hallo Welt :-) ';
>> return $markerArray;
>> }
>>
>> So und das war es dann auch schon.
>>
>> Gruß
>> René
>>
>>
>>>> ----------------------------------
>>>> Kosys - Kockisch ITK Systems and Services
>>>> Inh. Kockisch René
>>>>
>>>> Görlitzer Str. 22
>>>> 03046 Cottbus
>>>>
>>>> Tel.: 0355/ 430 903 81
>>>> Fax.: 0355/ 430 903 84
>>>>
>>>> Internet: www.kosys-cottbus.de
>>>> E-Mail: rene-kocki... at kosys-cottbus.de
>>>> _______________________________________________
>>>> TYPO3-german mailing list
>>>> TYPO3-german at lists.netfielders.de
>>>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.netfielders.de
>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>
More information about the TYPO3-german
mailing list