Zum Inhalt springen

Link-Wizard soll Text anstatt SeitenID angeben

Erstellt am 7. April 2009 · 8 Antworten · letzte Antwort am 17. April 2009

Tags: TCA, Links, Frage

Unbekannter Benutzer ·

Hallo,

ich versuche mich gerade an der ersten eigenen Extension. Ich bin nach dem Tutorial von Traumprojekt vorgegangen.
http://www.traum-projekt.com/forum/73-workshops-und-tutorials/101411-workshop-typo3-extension-programmierung.html

Ich bin schon ganz zufrieden, aber leider funktioniert der Link-Wizard nicht so, wie ich mir das vorstelle. Wenn ich auf eine interne Seite verlinken will, dann erscheint im Frontend (und auch im BE nach dem abspeichern) nicht der Linktext sondern nur die ID auf die velinkte Seite.
Also einfach nur so z.B.: "45"

Habe ich da was mit dem Wizard nicht kapiert oder muss ich das anders angehen.
Ach ja, mein Code im tca.php ist so:

"link" => Array (		
"exclude" => 1,		
"label" => "LLL:EXT:tp_test/locallang_db.xml:tx_tptest_table.link",		
	"config" => Array (
	"type"     => "input",
	"size"     => "15",
	"max"      => "255",
	"checkbox" => "",
	"eval"     => "trim",
	"wizards"  => array(
	"_PADDING" => 2,
	"link"     => array(
	"type"         => "popup",
	"title"        => "Link",
	"icon"         => "link_popup.gif",
	"script"       => "browse_links.php?mode=wizard",						"JSopenParams" => "height=300,width=500,status=0,menubar=0,scrollbars=1"
		)
	)
)
),

Danke

Rainer

comix ·

Hi Rainer

Habe im Moment genau die selbe Frage hoffen wir mal dass uns jemand Antwort geben kann.

just2b ·

Hallo,

der wizard speichert ja auch nur die ID der Seite, alles andere wäre Blödsinn.

Bei der Ausgabe musst du den link dann noch selber bastel, zB mit $this->cObj->typolink();

georg

comix ·

Hi Georg

Ich bin auch gerade daran meine 1. kleine extension zu programmieren.

Im backend kann man mittels Sitewizzard eine Seite auswählen und im Frontend wird diese dann als Link ausgegeben.

Die Ausgabe sieht bei mir so aus:

$markerArray['###LINK###']=$this->cObj->typolink($record['link'],array(
            'parameter' => $record['link'],
            'extTarget' => '_blank',
            'value' => '',
        ));

Im Frontend wird damit der Link richtig ausgegeben nun möchte ich aber das anstelle der ID der Seitentitel verlinkt wird wie kann ich das bewerkstelligen?

just2b ·

dann gib im 1. Parameter den Seitentitel an. wenns der seitentitel der zielseite sein soll, musst du den zuerst holen mit einer abfrage

$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('title', 'pages', 'uid='.$record['link']);
$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);

in $row['title'] steht dann der titel drinnen

georg

comix ·

So hab es Hinbekommen

So sieht das bei mir fertig aus:

function detailView() {
        #unser Subpart
        $subpart=$this->cObj->getSubpart($this->template,'###DETAILVIEW###'); 
        $res2 = $GLOBALS['TYPO3_DB']->exec_SELECTquery('title', 'pages', 'uid='.$record['link']);
        $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res2); 
        #Datensatz holen
        $record=$this->pi_getRecord('tx_mvspraspec_specials',$this->piVars['item']);
        
        #Marker füllen
        $markerArray['###TITLE###']=$record['title'];
        #$markerArray['###DATUM###']=date('d.m.Y',$record['date']);
        $markerArray['###TEXT###']=$this->pi_RTEcssText($record['description']);
        #$markerArray['###IMAGE###']=$this->cObj->IMAGE(array(
        #    'file' => 'uploads/tx_tptest/'.$record['image'],
        #    'file.maxW' => 140,
        #));
        $markerArray['###LINK###']=$this->cObj->typolink($row['title'],array(
            'parameter' => $record['link'],
            'extTarget' => '_blank',
        ));
        
        #backlink als einfachen Link ohne Parameter
        $markerArray['###BACKLINK###']=$this->pi_linkToPage($this->pi_getLL('back'),$this->id);
        
        return $this->cObj->substituteMarkerArrayCached($subpart,$markerArray,array(),array());     
    }

Leider bekomm ich nun im frontend eine Warnung:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/michaelv/www/typo3.michaelvogel.ch/typo3_src-4.2.3/t3lib/class.t3lib_db.php on line 809

Kann mir jemand sagen woher die kommt?