---
title: "Link in eigener Extension erstellen"
url: "https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","Links","TCA"]
created: "2009-01-27"
last_reply: "2009-01-28"
replies: 14
solved: false
page: 1
pages: 1
lang: "de"
---

# Link in eigener Extension erstellen

Extensions › Entwicklung · 14 Antworten · gestartet 2009-01-27

## Eröffnungsbeitrag

**Dragon8** · 2009-01-27 · [Beitrag #1](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/1)

Hallo,

ich erweiter mit einer eigenen Extension tt_news und möchte dort (im Backend) die Möglichkeit anbieten, eine vorhandene Seite auszuwählen (habe dafür in der Extension "Link" ausgewählt anstatt "Textbox").
Diese ausgewähle Seite soll dann als Link zu der Seite angezeigt werden.

1) Wenn man im Backend die Seite auswählt, wird dort nur die ID angezeigt. Ich möchte aber gerne, dass dort der Seitenname steht.

2) Ich bekomme keinen Link ausgegeben... Habe folgendes versucht:
$markerArray['###VERANTWORTLICH###'] = $this->pi_linkToPage('get to this page again',$id);
wobei die ID der Inhalt von dem Link-Element ist (wo der User die Seite ausgewählt hat)

Vielen Dank für die Hilfe!

## Antworten

### [#2](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/2) · ThBodi · 2009-01-28

1.) Das ist die Variante mit der Anzeige des Seitennamens: <https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Index.html>

2.) Hat $id wirklich einen Inhalt, oder wünschst Du Dir das nur? ;-) Wenn ja, existiert die Seite mit der uid, ist sie evtl. versteckt, oder der Zugriff Benutzergruppen-beschränkt? Der Grundgedanke stimmt, aber der Inhalt von $id scheint nicht der zu sein, der er soll.

### [#3](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/3) · Dragon8 · 2009-01-28

Vielen Dank für deiner Antwort!

zu 1) Ich habe gerade das Element "Database Ralations" ausprobiert und dort wird der Seitenname, wie gewollt, angezeigt.
Das hat sich also erledigt.

zu 2) Ich habe mir den Inhalt von $id ausgeben lassen und dort ist die id der gewollten Seite drinne. Wenn ich die Seite aufrufe kommt folgene Fehlermeldung:
*Fatal error: Call to a member function getTypoLink() on a non-object in C:\xampp\htdocs\typo3\typo3\sysext\cms\tslib\class.tslib_pibase.php on line 288*
In dieser Datei habe ich nichts geändert.
Mein Code ist wie folgt:

```php
class user_tt_news_addMarker_e extends tslib_pibase
{
  var $prefixId = 'user_tt_news_addMarker_e'; // Same as class name
	var $scriptRelPath = 'pi/class.tt_news_addMarker.php'; // Path to this script relative to the extension dir.
	var $extKey = 'rga_ttnewsaddfields'; // The extension key.

  function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj)
  {
    $id = $row['tx_rgattnewsaddfields_e'];
    // Fill new marker
    print_r($row['tx_rgattnewsaddfields_e']);
    print_r($id);
    $markerArray['###E###'] = $this->pi_linkToPage('get to this page again',$id);
    return $markerArray;
  }    
}
```

### [#4](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/4) · ThBodi · 2009-01-28

Wenn Du die Klasse nicht als Plugin verwendest, kannst Du Dir das "extends tslib_pibase" sparen, es wird nicht vernünftig funktionieren.

Um die pi-Funktionen nutzen zu können, bekommst Du bei Hooks aber meistens auch eine Referenz auf die Instanz des aufrufenden Objekts übergeben - hier $obj. $obj->pi_linkToPage(... sollte also zum Ziel führen.

### [#5](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/5) · Dragon8 · 2009-01-28

In dem Code hatte ich noch das drinne:
*require_once (PATH_tslib . 'class.tslib_pibase.php');
class user_tt_news_addMarker extends tslib_pibase*
....

Habe ich vergessen zu schreiben...

Ich habe jetzt das versucht:

```php
$markerArray['###E###'] = $obj.$obj->pi_linkToPage('get to this page again',$row['tx_rgattnewsaddfields_e']);
```

wobei in $row['tx_rgattnewsaddfields_e'] die ID steht.

Bekomme jetzt den Fehler:
*Catchable fatal error: Object of class tx_ttnews could not be converted to string in C:\xampp\htdocs\typo3\typo3conf\ext\rga_ttnewsaddfields\pi1\class.tt_news_addMarker.php on line 21*

In Line 21 ist der Code von oben.

Falls es Hilft, mein HOOK sieht so aus:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tt_news']['extraItemMarkerHook'][]='EXT:rga_ttnewsaddfields/pi1/class.tt_news_addMarker.php:user_tt_news_addMarker';

### [#6](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/6) · ThBodi · 2009-01-28

Um die vollständige Funktionalität der tslib_pibase sicherzustellen, reicht es nicht aus, nur die Klasse zu instanziieren.

Außerdem hat sich ein Tippfehler in meinem Post eingeschlichen, so funktioniert es:

```php
$markerArray['###E###'] = $obj->pi_linkToPage('get to this page again',$row['tx_rgattnewsaddfields_e']);
```

### [#7](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/7) · Dragon8 · 2009-01-28

Das funktioniert!

Nur leider hat der Link jetzt einen Tooltip mit einem Text, der für diesen Link nicht stimmt (der Link ist unter einer News und verweist auf deine andere Seite, doch leider hat der Link als Tooltip den Titel der News...).

Kann ich den Tooltip noch irgendwie beeinflussen? Als Parameter anscheinend nicht...

### [#8](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/8) · ThBodi · 2009-01-28

Ich würde mal auf eine Fehlinterpretation Deines Browsers tippen oder enthält der HTML-Code des generierten Links irgendwelche Attribute?

Und: Nein, das kannst Du so nicht beeinflussen, wenn Du das willst, musst Du tslib_cObj::typoLink() nutzen.

### [#9](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/9) · Dragon8 · 2009-01-28

Der Titel ist im Link angegeben...
<a href="index.php?id=21" title="Hückeswagener Treff">get to this page again</a>

### [#10](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/10) · ThBodi · 2009-01-28

Hmm, ich kann nicht nachvollziehen, wo das title-Attribut herkommt. Wenn ich den Funktionsaufruf von pi_linkToPage weiter verfolge, gibt es eigentlich keine Stelle, an der das Attribut erzeugt werden könnte.

In der Beschreibung der Funktion steht: $this->pi_linkToPage('My link', 123) to get something like <a href="index.php?id=123&type=1">My link</a>, also ist das Ergebnis nicht so, wie es sein sollte. (TYPO3 4.2)

### [#11](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/11) · Dragon8 · 2009-01-28

Mist....

Dann muss ich wohl eine andere Lösung finden...

Du sagtest das ich mit tslib_cObj::typoLink() den Tooltip mit angeben kann. Wie muss ich den denn dort mit angeben?

### [#12](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/12) · ThBodi · 2009-01-28

Entweder als vierter Teil des "parameter" oder per ATagParams:
<https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Typolink.html>

### [#13](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/13) · Dragon8 · 2009-01-28

Mhh, ich weiß nicht wie ich den letzten parameter befüllen soll....
Aufrufen müsste ich den doch auch mit $obj-> können, oder?

Bei pi_linkToPage gibt es auch einen 4ten Parameter, doch den bekomme ich auch nicht befüllt.
($str,$id,$target='',$urlParameters=array())	{

### [#14](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/14) · ThBodi · 2009-01-28

Ich habe nichts von einem vierten Parameter geschrieben, sondern vom vierten Teil des "parameter". Wenn Du die Informationen hinter dem Link verstehst und in PHP umsetzt, kommst Du zum gewünschten Ergebnis.

Dieses "Problem" ist aus meiner Sicht einfach zu lösen. Das kann man rauskriegen, indem man ein bisschen recherchiert und ein bisschen ausprobiert.

### [#15](https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen/15) · Dragon8 · 2009-01-28

Danke für deine Hilfe, ich schau mir das mal genau an.

---

Quelle: „Link in eigener Extension erstellen“, typo3.net, https://www.typo3.net/d/86203-link-in-eigener-extension-erstellen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
