Hallo liebe Liste,
ich brauche einen Denkanstoss wie ich etwas realiseren kann:
Ich habe eine Detailseite für die News, daneben habe ich eine "Latest" - Liste, die mir alle News in Listenform anzeigt, chronologisch geordnet.
Die einzelen News in der Liste kann man anklicken wobei in der Mitte dann die Detailansicht der News steht.
Mein Problem:
Wie kann ich in der Liste die aktuelle, angeklickte News hervorheben, also praktisch in der News-latest-Liste ein CUR simulieren?
Hat mir jemand einen Denkanstoß? Ich steh auf dem Schlauch und weiß nicht wie ich's anpacken kann?
Danke und Grüße Ralph
Hallo Ralph,
eine eigene Extension, den Hook extraItemMarkerProcessor nützen und dort die Id aus der Url auslesen und den passenden Datensatz mit einem div wrappen und dann per CSS hervorheben.
wenn man weiß was man tut in 20min gemacht
georg
wenn man weiss was man tut... Genau darum gehts. :o
Erst mal danke für die schnelle Antwort.
Verstehe ich richtig: Ich nehme die ID der NEWS aus der Seiten-URL und vergleiche diese mit den IDs in der Liste. Dort wo diese gleich sind schreibe ich meine CSS-Klasse rein.
Das mit dem »Hook« ist mir neu. Dann werde ich mal die Core API befragen. Hast Du mir noch'n guten Link-Tip, ein Tutorial für den »Hook«?
Tausend Dank und Grüße, Ralph
Hallo,
naja du füllst mit dem hook einen extra marker, also nehm ich an du machst vor jeden Datensatz ein ####VORNE### und danach ein ###HINTEN### und dann füllst du eben entweder mit ' ' oder mit <div class="extrawrap"> ...
lg georg
PS: google, 1. treffer bei "typo3 hooks" > http://typo3.org/development/articles/how-to-use-existing-hooks/
Hier meine Lösung:
Eine class.meineExtension_klasse in der vom Kickstarter erstellten PHP-Datei erstellen
Eine Funktion in der Klassendatei definieren
Eine ext_localconf.php - Datei erstellen.
Da rein schreibt man den HOOK-Aufruf:
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraItemMarkerHook'][] = 'EXT:meineExtension/sv1/class.tx_meineExtension.php:meineExtension_klasse';
In die Klassendatei in die Klasse kommt die Funktion:
function extraItemMarkerProcessor(&$markerArray, &$row, &$lConf, &$pObj) {
$CURwrap = '<div class="news-item-box news-current">';
$NOwrap = '<div class="news-item-box">';
$ENDwrap = '</div>';
//
// ID der Aktuellen News in der Seiten URL
$SINGLEnewsID_array = isset($_GET['tx_ttnews']);
// Wenn keine Variable in der Seiten URL steht wird die Variable mit -1 gefüllt
if (!$SINGLEnewsID_array) {
$SINGLEnewsID = -1;
} else {
foreach($_GET['tx_ttnews'] as $key => $value) {
if ($key == 'tt_news') {
$SINGLEnewsID = $value;
}
}
}
// ID der Aktuellen News in der Liste
$newsID = $row['uid'];
// Ausgabe der Variablen - Wenn die URL Varuiable gleich wie die Listen ID ist
if ($newsID == $SINGLEnewsID) {
$markerArray['###CURNEWSWRAP###'] = $CURwrap;
} else if ($GLOBALS['TSFE']->register['newscounter'] == 1 && $SINGLEnewsID == -1)
//Auf der Einstiegsseite wird der erste aktuelle Beitrag mit der CURRENT - Tag ausgezeichnet
{
$markerArray['###CURNEWSWRAP###'] = $CURwrap;
} else {
$markerArray['###CURNEWSWRAP###'] = $NOwrap;
}
// Steuervariable, so dass nur der erste Eintrag ausgezeichnet wird
$GLOBALS['TSFE']->register['newscounter']++;
// DIV wird wieder geschlossen
$markerArray['###CURNEWSWRAPEND###'] = $ENDwrap;
return $markerArray;
}
}
In die Templatedatei des Newsaufrufs (LIST oder LATEST )die neuen Marker einfügen.
Die Extension installieren.
Fertig.(Debuggen und anpassen)
Hallo,
ja so ca hab ich mir das vorgestellt 😉
Ich pass mal den Titel an, schiebs in die Extension-Kategorie und verpass dem ganzen ein HowTo.
Vielen Dank fürs posten!
georg
...das soll wohl ein Witz sein? Warum programmiere ich typo3 nicht gleich von Grund auf selbst??
Mach doch - bin aufs Ergebnis gespannt!
Ich mache hier mal zu, bevor noch mehr unsinnige Kommentare hinzukommen.