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.

mm_forum ist sehr mächtig und somit kann eine kleine Änderung schonmal ganz anstrengend werden.. Leider habe ich bisher keine bessere Methode gefunden,  um den Antworten Button von unter den Posts nach oben zu verschieben. Im Template “list_post.html” ist der Reply Button im Marker ###POSTBOTTOM### versteckt. Der Marker wird aber nur befüllt, wenn er sich auch zwischen dem subpart <!-- ###LIST_POSTS_END### begin --> und <!-- ###LIST_POSTS_END### end --> befindet. Würde man ###POSTBOTTOM###  nun zwischen <!-- ###LIST_POSTS_BEGIN### begin --> und <!-- ###LIST_POSTS_BEGIN### end --> einfügen, würde der Marker nicht ersetzt werden. Lösung hierfür:

In der Datei class.tx_mmforum_postfunctions.php unter ext/mm_forum/pi1 sollte man (je nach Version) ab ca. Zeile 222, also nach // Output topic name den Code für die $this->createButton('reply', $linkParams) Funktion einfügen. Der sieht folgendermaßen aus:


if ((!$topicData['read_flag'] && !$topicData['closed_flag']) || $this->getIsMod($topicData['forum_id']) || $this->getIsAdmin()) {
			if ($this->getMayWrite_topic($topicId)) {
				$linkParams[$this->prefixId] = array(
					'action' => 'new_post',
					'tid'    => $topicId
				);
				if ($this->useRealUrl()) {
					$linkParams[$this->prefixId]['fid'] = $topicData['forum_id'];
				}
				$marker['###POSTBOTTOM###'] = $this->createButton('reply', $linkParams);
			} else {
				$marker['###POSTBOTTOM###'] = '';
			}
		} else {
			$marker['###POSTBOTTOM###'] = $this->pi_getLL('topic.adminsOnly');
		}

Ihr nutzt nur lokale Extensions. Klickt ihr auf Update und es kommt die Meldung

ERROR: Could not remove extension directory "/pfad/zur/extension/httpdocs/typo3/ext/extensionname/". Reasons:
Error: "pfad/zur/extension/httpdocs/typo3/ext/extensionname/datei.php" could not be deleted!
[...]

Das liegt dann daran, dass TYPO3 nicht die Berechtigung hat diese Dateien zu löschen. Hier hat wahrscheinlich der FTP User vielleicht die Dateien nach einem Umzug hochgeladen (somit liegen die Rechte am FTP user und nicht bei TYPO3). Hat man keinen SSH Zugang wird es etwas schwieriger diese Dateirechte zu ändern.

Bei hosteurope gibt es glücklicherweise die Möglichkeit unter Allgemeines > Dateiverwaltung diese Rechte zu ändern.

Bei der sehr schönen Extension namens Customer References (EXT: customref) tauchte ein Fehler auf. Nach einem Serverumzug sind die Kategoriezuordnung der Kunden verloren gegangen. Die Liste war somit unvollständig und auch im Quellcode tauchte die Punkte nicht mehr auf. Die Seiteninhalte, sowie die Datensatzsammlung waren vollständig. Der Fehler befindet sich in der Datei “class.tx_customref_refcustomer.php”. Dort sollte man im Bereich “Returns an Array of Categorie IDs this refcustomer is assigned with” (im Bereich der Zeilen 200) die Zeile

'tx_customref_categorie, tx_customref_referencecustomer ' .

durch

'tx_customref_categorie INNER JOIN tx_customref_referencecustomer ' .

ersetzen. Fertig!

Quelle: Dank an ManuH bei Typo3.net