Zum Inhalt springen

Title und short-Text in rgslideshow verlinken

Erstellt am 3. Juli 2009 · 10 Antworten · letzte Antwort am 29. Oktober 2009

Tags: Bilder, tt_news, Frage

zecke ·

Habe auch das gleiche Problem und in keinem Forum eine Lösung gefunden. Habe mir auch schon die Quelldateien angesehen, aber bin noch nicht draufgekommen wie man das ändern könnte!

LG Manfred

kevin_web_web ·

Selbes Problem hier. Steig da auch im Code nicht wirklich durch. Habe in der pi1.php mal testweise die Variablen für Description oder Text erweitert um zb .'test' oder änliches, es wird aber immer nur der alt-tag im Link der Bilder geändert, der sichtbare Titel bleibt entweder stur unverändert oder verschwindet. wo muß man bei dieser Ext ansetzen, um den sichtbaren Titel um einen Link zu erweitern?

zecke ·

Ich habe den ersten Teil des Problems gelöst. In class.tx_rgslideshow_pi1.php kann man nur den Link, alt-Tag, title-Tag usw. für die Bilder ändern. Der Text im Vordergrund (Title und Description) ändern sich per JavaScript, daher sind die Änderungen in rgslideshow.js zu machen.

Ich habe folgenden Code geändert (ALT, ab Zeile 69):

if (this.options.addBarInside) {
        this.nestAll = new Element('div').setProperty('class', 'rgsnest').injectTop(this.containerNest);
        this.title = new Element('div').setProperty('class', 'rgstitle').injectInside(this.nestAll);
        this.description = new Element('div').setProperty('class', 'rgsdescription').injectInside(this.nestAll);
}

Neuer Code (ich füge um title und description einfach einen link ein):

if (this.options.addBarInside) {
        this.nestAll = new Element('div').setProperty('class', 'rgsnest').injectTop(this.containerNest);
        this.alink = new Element('a').setProperty('href', 'http://www.evva.at').injectInside(this.nestAll);
        this.title = new Element('div').setProperty('class', 'rgstitle').injectInside(this.alink);
        this.description = new Element('div').setProperty('class', 'rgsdescription').injectInside(this.alink);
}

Mein Problem ist, dass Title und Description jetzt fix auf http://www.evva.at verlinkt sind. Man müsste der JavaScript Funktion SimpleSlideShowDemo schon beim Aufruf den Link übergeben und dann an dieser Stelle einfügen. Ich bin ein JavaScript Newbie und würde mich über Hilfe freuen!

kevin_web_web ·

Danke für dein Posting. Nun fehlt ja eigentlich nur noch die Uid. Eigentlich müßte die Variable, welche diese news-uid enthält ja auch schon irgendwo in der Datei rgslideshow.js enthalten sein, da ja der Bildlink auch wechselt. Leider bin ich auch js-Newb, und bisher konnte ich nochnicht ausmachen, was für diese uid steht.

kevin_web_web ·

Hier schonmal eine zumindest provisorische Lösung, damit funktioniert dann auch erstmal der Link auf die Sigleview vom title aus. Man sollte aufpassen, das nicht großartig sonderzeichen im Title enthalten sind, da die Verlinkung ebent über den title abgeht, oder halt bei Bedarf das str_replace erweitern:

$chars=	str_replace(" ","-",$this->cObj->stdWrap($row[$conf['titleField']],$conf['title.']));
        
         $imgConfig['titleText']= '<a href="watch/'.$chars.'">'.$this->cObj->stdWrap($row[$conf['titleField']],$conf['title.']).'</a>';

LG, euer Kevin aus Eberswalde

zecke ·

Hallo Kevin, hallo jbee!

Also wenn wir weiterkommen wollen, dann müssen wir zusammenarbeiten. Kevin, in welchem Script und in welcher Zeile hast du die beiden Zeilen Code eingefügt?

Meiner Meinung müsste die Lösung ja im javascript zu finden sein und nicht im php. Kevin, könntest du uns die Idee deiner Lösung in 2-3 Sätzen näher bringen?

LG Manfred

kevin_web_web ·

Hi,

such mal in der pi_1 nach

 $imgConfig['titleText'].= '|'.$this->cObj->stdWrap($row[$conf['descriptionField']],$conf['description.']);

das müßte etwa in Zeile 262 sein. die ersetzt du dann mit den Beiden Zeilen aus dem vorherigen Posting. Ist halt wie gesagt nicht grad die eleganteste Lösung mit dem Titel im Link, aber für den Moment funktionierts.

LG, Kevin