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
Hi Rainer
Habe im Moment genau die selbe Frage hoffen wir mal dass uns jemand Antwort geben kann.
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
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?
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
dacht ichs mir das ich den zuerst holen muss.
Danke Vielmals
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?
Halllo,
naja in #4 willst du von $record was holen, das erst in #7 zur Verfügung steht
georg
Danke jetzt funzts habs umgestellt.