ve_guestbook: Links auf Kommentare mit Teaser - teaser ve_guestbook, ve_guestbook kommentare, ve_guestbook

19.02.2007

ve_guestbook: Links auf Kommentare mit Teaser

Tags: TYPO3, PHP, Extensions

Vor Kurzem bekam ich eine Mail in der mich jemand fragte, wie es möglich ist, in der Teaser-Ansicht der Gästebuch Extension ve_guestbook einen Link einzubauen, der auf die jeweilige News Single-Seite (der Extension tt_news) verlinkt in der der Kommentar eingetragen wurde. Ich bin der Sache auf den Grund gegangen und habe einen kleinen hack gefunden.

UPDATE

Wers einfacher haben will schaut sich die Extension tox_commentmarker an. Diese nimmt euch die unten beschriebene Arbeit ab!

ORIGINAL

Vielleicht könnte man das Problem auch mit TypoScript lösen, in dem man einen vorhandenen Marker geschickt wrappt, allerdings hab ich mich auf eine andere Lösung konzentriert, die einen neuen Marker im Template ermöglicht. Das finde ich sauberer, hat aber den Nachteil, dass die Änderungen bei einem Upgrade von ve_guestbook wieder flöten gehen.

Wie dem auch sei, so gehts: Zunächst wird ein neuer Marker in euerem ve_guestbook template benötigt. Ich habe ihn auf den Namen ###GUESTBOOK_NEWSLINK### getauft. Dieser wird im TEASER-Subpart plaziert und zwar an folgender Stelle:

<!-- ###ENTRY### begin
Template for a single item
-->
<p><span class="tx-guestbook-list-small">###GUESTBOOK_DATE###</span>
<br/>
###GUESTBOOK_FIRSTNAME### ###GUESTBOOK_SURNAME###:<br/>
###GUESTBOOK_ENTRY###
</p>
###GUESTBOOK_NEWSLINK###
<!-- ###ENTRY### end-->

Die genaue Stelle ist im Endeffekt egal, Hauptsache der Marker ist innerhalb des ###ENTRY### Subparts da der Newslink ja für jeden Eintrag unterschiedlich sein kann.

Dieser Marker muss nun von der Extension ersetzt werden. Dies geschieht in der Datei class.tx_veguestbook_pi1.php (t3conf/ext/ve_guestbook/pi1/). Dort gibt es die Funktion getItemMarkerArray($row) die die Marker mit dem passenden Inhalt füllt. Nun müssen wir ihr nur noch mitteilen wie unser Newslink auszusehen hat.
PHP:

$tmpString = $this->local_cObj->getTypoLink('mehr',$this->config['guestbook'],
array('tx_ttnews' => array('tt_news' => $row['uid_tt_news'])));
$markerArray['###GUESTBOOK_NEWSLINK###']
= $this->local_cObj->stdWrap($tmpString, $this->conf['uid_tt_news.']);

Diesen PHP-Code einfach irgendwo in die besagte Funktion kopieren und nach dem Speichern der Datei den Cache im Backend löschen. Nun solltet ihr im Teaser unter jedem Kommentar einen mehr-Link stehen haben. Ihr könnt diesen Namen auch selbst anders nennen.

Hinweis: In der Extension muss außerdem die "Seite mit Gästebuch (für Teaser und E-Mail):" richtig angegeben werden: In unserem Fall ist das die Single-Ansicht der News!

[...zurück zu News]
23.02 14:06 Uhr PieWie

So hätt' ich das auch gelöst...

24.02 18:44 Uhr Tom

Freut mich :P

16.03 21:14 Uhr BENCH http://ben.artcore.ch

Jap das hab ich schon lange gesucht. Danke!
Jetzt sind denn alle Vorderungen für ein Blog auf Basis von T3 erfüllt;) (Noch fehlt der Kommentar RSS Feed).

Eine Frage hab ich aber trotz dem noch: Im zusammenspiel mit RealURL klappt der "Hack" nicht ganz. Die Jahre und Tage werden nicht in die URL genommen. d.h. sie sehen so aus: http://www.domain.com/blog/eintrag/archiv///eintrag_titel/

Hat da jemand ne Idee?

Danke!

20.03 00:54 Uhr Tom http://www.mortox.de

hallo bench,
Gern geschehen. Habe heute eine Extension ins TER gestellt die genau diese Funktionalität + Anzahl der News bereitstellt. Kannst dir ja mal angucken, die Extension heißt "tox_commentmarker"

20.03 00:59 Uhr Tom

Ach nochmal zu deiner Frage:
Kann ich dir jetzt nicht beantworten aber ich schätz mal diese parameter werden der getTypoLink()-Funktion mit übergeben werden müssen. Ich schaus mir morgen mal bei Gelegenheit an!

12.01 15:11 Uhr anton

hi, habe die zeilen soeben in die php-datei eingebaut, funktioniert :)

frage dazu: würde gerne anstatt des view more links die tt_news-überschrift des artikels darstellen lassen. vieleicht ein tipp wie das umzusetzen wäre?

grüße

Design und Umsetzung Thomas Raithel (www.mortox.de)