Zum Inhalt springen

tt_news Kommentare ohne einloggen

Erstellt am 19. Mai 2005 · 2 Antworten · letzte Antwort am 1. Februar 2006

Tags: tt_news, PHP, Tipp

Unbekannter Benutzer ·

tt_news mit ednewscomments ohne einloggen

Hallo typo3 Gemeinde,

ich habe mich hingesetzt und wollte bei tt_news Kommentare hinzufügen. Ich habe einen Tag gebraucht um herrauszufinden, dass man eingeloggt sein muss, um Kommentare schreiben zu können. Da hab ich mir gedacht, ne - so nicht!

Also, hier eine kleine Anleitung, wie man die Loginpremisse umgeben kann:

als erstes gehen wir ins phpmyadmin und ändern die struktur der Tabele tx_ednewscomments_items. fe_user wird von blob in varchar umgeschrieben.

Als nächstes fügen wir (/typo3conf/ext/ed_newscomments/pi1/class.tx_ednewscomments_pi1.php) das Inputfeld Name ein (Zeile: 391)

wir ändern:

$markerArray["###COMMENT###"] = '<textarea name="tx_ednewscomments_pi1[comment]" rows="'.$this->conf["formAdd."]["rows"].'" cols="'.$this->conf["formAdd."]["cols"].'">'.$this->pi_getLL("pi_formAdd_comment").'</Textarea>';

in

$markerArray["###COMMENT###"] = '<input name="kommentarname" type="text"><br><textarea name="tx_ednewscomments_pi1[comment]" rows="'.$this->conf["formAdd."]["rows"].'" cols="'.$this->conf["formAdd."]["cols"].'">'.$this->pi_getLL("pi_formAdd_comment").'</Textarea>';

Dann noch in Zeile 218:

Ersetze

".$this->userData["uid"].",

durch

".$_POST[kommentarname].",

und dann noch eine letzte Sache:

Zeile: 459

Ersetze:

return $this->listValues["users"][$this->internal["currentRow"]["fe_user"]]["name"];

durch

return $this->internal["currentRow"]["fe_user"];

Jetzt noch in Zeile 387 und 399 die if Abfrage entfernen.

dann müsste das klappen.

Falls Fragen oder Fehler in meiner Beschreibung sind, e-mail an mich.

Schönen Gruß Christian

P.S. ich arbeite an einer Version die erkennt ob man eingeloggt ist und dann entsprechend handelt.

Unbekannter Benutzer ·

Erweiterung:

Hierdruch wird der Name von eingeloggten Usern übernommen:

ab Zeile: 393

		function addForm() {
			if (is_array($this->userData)) {
				$out = $this->cObj->getSubpart($this->templateCode, '###ADD_FORM###');
				$markerArray = array();
				$wrappedSubpartArray = array();
				
				$markerArray["###COMMENT###"] = '&nbsp;<b>'.$GLOBALS['TSFE']->fe_user->user['name'].'</b><br><textarea class="textfield" name="tx_ednewscomments_pi1[comment]">'.$this->pi_getLL("pi_formAdd_comment").'</Textarea><br>';
				$markerArray["###SUBMIT###"] = '<input type="submit" name="tx_ednewscomments_pi1[submit]" value="'.$this->pi_getLL("pi_formAdd_submit").'">';
				$markerArray["###IMAGE_SUBMIT###"] = '<input type="image" name="tx_ednewscomments_pi1[submit]" src="'.$this->cObj->cObjGetSingle("IMG_RESOURCE", $this->conf["formAdd."]["imageSubmit."]).'" value="'.$this->pi_getLL("pi_formAdd_submit").'">';
				
				$wrappedSubpartArray["###ADD_FORM_TAG###"]=array('<form method="post">','<input type="hidden" name="tx_ednewscomments_pi1[action]" value="add"><input type="hidden" name="no_cache" value="1"><input type="hidden" name="kommentarname" value="'.$GLOBALS['TSFE']->fe_user->user['name'].'"></form>');
				
				$out = $this->cObj->substituteMarkerArrayCached($out, $markerArray, array(), $wrappedSubpartArray);
			}
			else {
				$out = $this->cObj->getSubpart($this->templateCode, '###ADD_FORM###');
				$markerArray = array();
				$wrappedSubpartArray = array();
				
				$markerArray["###COMMENT###"] = '<input class="inputfield" name="kommentarname" type="text"><br><textarea class="textfield" name="tx_ednewscomments_pi1[comment]">'.$this->pi_getLL("pi_formAdd_comment").'</Textarea><br>';
				$markerArray["###SUBMIT###"] = '<input type="submit" name="tx_ednewscomments_pi1[submit]" value="'.$this->pi_getLL("pi_formAdd_submit").'">';
				$markerArray["###IMAGE_SUBMIT###"] = '<input type="image" name="tx_ednewscomments_pi1[submit]" src="'.$this->cObj->cObjGetSingle("IMG_RESOURCE", $this->conf["formAdd."]["imageSubmit."]).'" value="'.$this->pi_getLL("pi_formAdd_submit").'">';
				
				$wrappedSubpartArray["###ADD_FORM_TAG###"]=array('<form method="post">','<input type="hidden" name="tx_ednewscomments_pi1[action]" value="add"><input type="hidden" name="no_cache" value="1"></form>');
				
				$out = $this->cObj->substituteMarkerArrayCached($out, $markerArray, array(), $wrappedSubpartArray);
			}
			return $out;
		}

Der Rest wie oben beschrieben.

Unbekannter Benutzer · · Beste Antwort

Ich habe einen Hinweis bekommen, dass es bei der aktuellen Version mit meinen Änderungen zu einem kleinen Problem kommt. Leider weiß ich die Version nicht mehr, zu der ich dieses HOW-TO geschrieben habe.

Wenn ihr typo 3.8.0 und tt_news 2.2.24 benutzt müsst ihr noch folgendes ändern

Zeile 196

"fe_user"=>$this->userData["uid"],

ersetzen durch

"fe_user"=>$_POST[kommentarname],

Danke an Johannes Rusch.