Another Blog about the Wide Web World
Header image

Endergebnis: Anzahl Kommentare in der SINGLE Ansicht

Ihr benutzt tt_news und die comments Extensions? Komischerweise ist die Ausgabe der Anzahl der Kommentare nur in der LIST, LATEST und SEARCH Ansicht möglich. Was müsst ihr machen, um die Anzahl der Kommentare auch in der SINGLE Ansicht anzeigen zu lassen? Leider in die Extension eingreifen!

Dort wird die Art des tt_news Views über Strings abgefragt. In der Funktion extraItemMarkerProcessor (ca ab Zeile 64) in der Datei class.tx_comments_ttnews.php unter typo3conf/ext/comments/.

In dieser Funktion werden die Marker mit Inhalt befüllt.
Vorher wird über Switch abgefragt in welchem tt_news View ihr euch befindet.

Hier muss SINGLE hinzugefügt werden. Also muss euer Code so aussehen:


	function extraItemMarkerProcessor($markerArray, $row, $lConf, &$pObj) {
		/* @var $pObj tx_ttnews */
		switch ($pObj->theCode) {
			case 'LATEST':
			case 'LIST':
			case 'SEARCH':
			case 'SINGLE':
				// Add marker for number of comments
				$commentCount = $this->getNumberOfComments($row['uid'], $pObj);
				$templateName = $commentCount ? '###TTNEWS_COMMENT_COUNT_SUB###' : '###TTNEWS_COMMENT_NONE_SUB###';
				if (($template = $this->getTemplate($templateName, $lConf, $pObj))) {
					$lang = t3lib_div::makeInstance('language');
					/* @var $lang language */
					$lang->init($GLOBALS['TSFE']->lang);
					$markerArray['###TX_COMMENTS_COUNT###'] = $pObj->cObj->substituteMarkerArray(
						$template, array(
							'###COMMENTS_COUNT_NUMBER###' => $commentCount,
							'###COMMENTS_COUNT###' => sprintf($lang->sL('LLL:EXT:comments/locallang_hooks.xml:comments_number'), $commentCount),
							'###COMMENTS_COUNT_NONE###' => $lang->sL('LLL:EXT:comments/locallang_hooks.xml:comments_number_none'),
							'###UID###' => $row['uid'],
							'###COMMENTS_LINK###' => $this->getItemLink($markerArray['###LINK_ITEM###'], $row['uid'], $pObj),
						)
					);
					unset($lang);	// Free memory explicitely!
				}
				break;
		}
		return $markerArray;
	}

Natürlich muss auch der Marker ###TX_COMMENTS_COUNT### in euer tt_news SINGLE Template eingefügt werden.

Für WordPress gibt es ja mittlerweile ein Plugin, welches das Thumbnail-Bild für Facebooks Like Button festlegt. Früher hat Facebook das erste Bild im Quelltext als Thumbnail gewählt, heutzutage nimmt Facebook einfach irgendeins; manchmal sogar gar keins!

Ich habe also mal in TYPO3 etwas geTYPOscriptet ;)

Da nie Descriptions gepflegt wurden bei dem Kunden, sollte auch hier die Beschreibung bei den Like Button automatisch generiert werden.

Das Facebook Thumbnail-Bild im like Button, lasse ich über das Content-Element textpic (Text mit Bild) erstellen. Man kann das sicherlich noch erweitern auf CEs mit nur Bild. Außerdem muss das Bild über den Reiter media hochgeladen worden sein. Gibt es das CE nicht oder kein Bild unter media, dann wird auch einfach keins genommen. Der Like Button funtktioniert dann natürlich weiterhin.

Facebook Thumbnail festlegen

temp.metabild = COA
temp.metabild {
         10=CONTENT
         10.table= tt_content
         10.select {
           orderBy = sorting
           where = CType="textpic"
           selectFields = image
           max=1
           begin=0
           languageField = sys_language_uid
         }
         10.renderObj=COA
         10.renderObj {
         10 = TEXT
		 10 {
			field = image
			stdWrap.dataWrap = <link rel="image_src" href="/uploads/pics/|">
		}
	}
}
page.headerData.35 < temp.metabild

Für die Beschreibung neben dem Like Button, nutze ich den Meta-Tag Description. Hier werden aus dem ersten CE die ersten 300 Zeichen genommen und in den Meta-Tag geschrieben.

Facebook Like Button Beschreibung aus dem ersten Content-Element oder automatische Generierung der description aus den ersten Zeilen

temp.meta = COA
temp.meta {
         10=CONTENT
         10.table= tt_content
         10.select {
           selectFields = bodytext
           orderBy = sorting
           languageField = sys_language_uid
           where=colPos=0
           max=1
           begin=0
         }
         10.renderObj=COA
  	 10.renderObj{
    		10=TEXT
    		10{
      			field=bodytext
      			stripHtml=1
      			crop = 300 | ... | 1
    		}

  	}
}

page.headerData.76 < temp.meta
page.headerData.76.wrap = <meta name="description" content="|">

Ich habe außerdem noch die Extension tweet_and_like genutzt. Hier wird jeweils der Twitter-Share Button und der Facebook-Like Button in der LIST Ansicht unter jedem News Artikel eingefügt. Das tolle an der Extension: Der Facebook Like zeigt direkt auf die SINGLE Ansicht. Doch auch hier war es in meinem Fall nötig, die description zu generieren und das Thumbnail festzulegen. Das habe ich so getan:

tt_news Facebook Like Thumbnail

[globalVar = TSFE:id = 167]
temp.newsImage = COA
temp.newsImage {
        wrap=<link rel="image_src" href="/uploads/pics/|">
        5=RECORDS
        5 {
                source = {GPvar:tx_ttnews|tt_news}
                source.insertData = 1
                tables = tt_news
                conf.tt_news >
                conf.tt_news = TEXT
                conf.tt_news.field = image
        }
}
page.headerData.35 < temp.newsImage
[end]

Die ID 167 muss dann natürlich gegen die eigene ID der SINGLE Ansicht ausgetauscht werden.

tt_news Facebook Like Beschreibung setzen oder automatisch Generierung der description aus den ersten Zeilen

[globalVar = TSFE:id = 167]
temp.newsDesc = COA
temp.newsDesc {
        wrap=<meta name="description" content="|">
        5=RECORDS
        5 {
                source = {GPvar:tx_ttnews|tt_news}
                source.insertData = 1
                tables = tt_news
                conf.tt_news >
                conf.tt_news = TEXT
                conf.tt_news.field = bodytext
                conf.tt_news.stripHtml = 1
                conf.tt_news.crop = 300 | ... | 1
        }
}
page.headerData.76 < temp.newsDesc
[end]