---
title: "Extension anpassen an RealURL"
url: "https://www.typo3.net/d/105240-extension-anpassen-an-realurl"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","RealURL"]
created: "2011-05-05"
last_reply: "2011-05-11"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# Extension anpassen an RealURL

Extensions › Entwicklung · 6 Antworten · gestartet 2011-05-05

## Eröffnungsbeitrag

**mitche** · 2011-05-05 · [Beitrag #1](https://www.typo3.net/d/105240-extension-anpassen-an-realurl/1)

Hallo,
ich nutze ein einfaches Glossar (td_glossar) welches nicht mit RealUrl zusammenarbeitet mag. Das Problem besteht darin, das sobald ich einen Buchstaben anklicke der eigentliche "ausgeschriebene Pfad" (Beispiel: www.muster.de/produkt/glossar/ wieder als index.php?id=23&letter=E angezeigt wird.

```php
	 function letters(){
	       	       
	       function letter_link ($chr, $text=0) {

    	       $letter = $_REQUEST['letter'];

	           if (!$text) {
	               $text = $chr;
	           } 
	           if ($chr == $letter) {
	               $aktiv = ' class="aktiv"';
	           }
	           $out = '<li><a href="index.php?id='.$GLOBALS['TSFE']->id.'&letter='.$chr.'"'.$aktiv.'>';


//.$this->cObj->typolink( $this->thumbnails[$plant_uid]['html'], array('parameter' => 118, 'additionalParams' => '&item='.$plant_uid, 'useCacheHash' => 1))

//$out = '<li>'.$this->cObj->typolink( $GLOBALS['TSFE']->id, array('parameter' => 95, 'additionalParams' => '?letter='.$chr, 'useCacheHash' => 1)).'</li>';
//.$this->cObj->getTypoLink_URL($GLOBALS['TSFE']->id)
//getTypoLink_URL($params,$urlParameters=array(),$target='')

//$out = '<li>'.$this->cObj->getTypoLink_URL($GLOBALS['TSFE']->id,array('?letter='.$chr),'_self').


	           //$out = '<li><a href="?letter='.$chr.'"'.$aktiv.'>';
	           $out .= $text;
	           $out .= '</a></li>';

//$out .= 'hjkh<a href="'.($GLOBALS['TSFE']->id).'#">sa</a>';
//$out .= '<div id="tx-tdglossar-pi1-backtotop"><a href="'.$this->cObj->getTypoLink_URL($GLOBALS['TSFE']->id).'#">zum Seitenanfang</a></div>';
//$this->pi_linkToPage(linktext,id,target,parameter);
//$out .= '<b>'.$this->pi_linkToPage("linktext",95,"","&letter=".$chr).'</b>';
//$out .= $this->pi_linkToPage("Testlink",384,"",array($this->prefixId."[key]"=>1));

	           return $out;
}
```

Das ganze liegt an dieser Zeile

```php
$out = '<li><a href="index.php?id='.$GLOBALS['TSFE']->id.'&letter='.$chr.'"'.$aktiv.'>';
```

hab dort schon hin und her probiert und komme auf keinen Nenner.

## Antworten

### [#2](https://www.typo3.net/d/105240-extension-anpassen-an-realurl/2) · aemka · 2011-05-05

Du solltest deine Extension Parameter richtig prefixen also ...&tx_deineextension_pi1[letter]=X statt ...&letter=x. Benutze dazu die API zur Linkgenerierung, dann geht auch Realurl automatisch:
<http://doc-typo3.ameos.com/4.1.0/classtslib__pibase.html>

### [#3](https://www.typo3.net/d/105240-extension-anpassen-an-realurl/3) · mitche · 2011-05-06

danke für den hinweis, doch komme ich mit z.B.

```php
$out = $this->pi_getPageLink($GLOBALS["TSFE"]->id,'',array("tx_tdglossar_pi1[letter]" => $chr));
```

auch nicht weiter. Hier wird die Seite dann nicht geladen...

### [#4](https://www.typo3.net/d/105240-extension-anpassen-an-realurl/4) · mitche · 2011-05-09

Bin nun ein Stück weiter gekommen. Habe die $_REQUEST rausgefowrfen und druch

```php
$formValues = t3lib_div::_GP('tx_tdglossar_pi1');
$var_letter = $formValues['letter'];
```

ersetzt.

Jetzt erhalte ich schon mal fogende URL <http://127.0.0.1/index.php?id=95&tx_tdglossar_pi1%5Bletter%5D=S> (als Beispiel). Die EXT läuft, RealURL ist an doch wandeltdie URL nicht um.

Ich vermute es liegt immer noch am Link selber, da er nicht einer Funktion aus der API generiert wird.
Jetzt:

```php
$out = '<li><a  href="index.php?id='.$GLOBALS['TSFE']->id.'&tx_tdglossar_pi1[letter]='.$chr.'"'.$aktiv.'>';  //eigenfügt
```

Bei einem Typolink erhalte ich nur eine leere Seite

```php
$out = $this->pi_getPageLink($GLOBALS["TSFE"]->id,'',array("tx_tdglossar_pi1[letter]" => $chr)); //eigenfügt
```

```php
     function letters(){
                      
           function letter_link ($chr, $text=0) {

               //$letter = $_REQUEST['letter']; //rausgeworfen

$formValues = t3lib_div::_GP('tx_tdglossar_pi1');
$var_letter = $formValues['letter'];

               if (!$text) {
                   $text = $chr;
               }
               if ($chr == $var_letter) {
                   $aktiv = ' class="aktiv"';
               }
               //$out = '<li><a href="index.php?id='.$GLOBALS['TSFE']->id.'&letter='.$chr.'"'.$aktiv.'>'; //ORG
              
$out = '<li><a href="index.php?id='.$GLOBALS['TSFE']->id.'&tx_tdglossar_pi1[letter]='.$chr.'"'.$aktiv.'>'; //eigenfügt
              
               //$out = 'dsa'.$this->pi_getPageLink($GLOBALS["TSFE"]->id); //eigenfügt
               //$out = $this->pi_getPageLink($GLOBALS["TSFE"]->id,'',array("tx_tdglossar_pi1[letter]" => $chr)); //eigenfügt
               //$out = '<li><a href="index.php?id='.$GLOBALS['TSFE']->id.'&bloed='.$chr.'"'.$aktiv.'>'; //eigenfügt

               $out .= $text;
               $out .= '</a></li>';
      
               return $out;
            }
          
           $out = '<div id="tx-tdglossar-pi1-letters">
                       <ul>
           ';
          
           // Link for all chars
           $out .= letter_link("",$this->pi_getLL('all_letters'));
          
           for ($i=65;$i<=90;$i++) {
                $out.=letter_link(chr($i));
           }
          
           $out .= "";
          
           $out .= '   </ul>
                   </div>';
           return $out;

     }
    
    /**
     * Creates a list from a database query
     *
     * @param    ressource    $res: A database result ressource
     * @return    A HTML list if result items
     */
    function makelist($res)    {
        //$letter = $_REQUEST['letter'];  //rausgeworfen

$formValues = t3lib_div::_GP('tx_tdglossar_pi1');
$var_letter = $formValues['letter'];


        $searched = $this->piVars['sword'];
        $items=array();
            // Make list table rows
        while($this->internal['currentRow'] = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))    {
            $alternatives = array(
                'A' => array('Ä'),
                'O' => array('Ö'),
                'U' => array('Ü'),
            );

            if(substr($this->getFieldContent('headline'),0,1) == $var_letter || $var_letter=="" || $searched || (in_array(mb_substr($this->getFieldContent('headline'),0,2), $alternatives[$letter]))){
                 $items[]=$this->makeListItem();
            }
        }
    
        $out = '<div'.$this->pi_classParam('listrow').'>
            '.implode(chr(10),$items).'
            </div>';
        return $out;
    }
```

### [#5](https://www.typo3.net/d/105240-extension-anpassen-an-realurl/5) · lisardo · 2011-05-09

Hallo,

das wird nie klappen, wenn du dich nicht mit der API von TYPO3 auseinandersetzt. Schau dir das mal an:
[Links in Extensions](http://www.typo3-lisardo.de/home/blog-post/2010/08/30/links-in-extensions.html).
Und als Doku das hier:
[tslib_pibase](http://api.typo3.org/typo3v4/current/html/classtslib__pibase.html)

Peter, [TYPO3 @ lisardo (Augsburg)](http://www.typo3-lisardo.de)

### [#6](https://www.typo3.net/d/105240-extension-anpassen-an-realurl/6) · mitche · 2011-05-09

Hallo, hab schon hin und her probiert, jedoch kommt ich zu keinem Ergebnis.
Sobald ich einen Typolink generieren möchte ala **pi_getPageLink** oder **pi_linkToPage**  etc. bekomme ich nur eine leere Seite angezeigt. da wird noch ein andere Bock drin sein.

Bin noch ein Laine was das Typo3 angeht...

### [#7](https://www.typo3.net/d/105240-extension-anpassen-an-realurl/7) · mitche · 2011-05-11

Sollte diese Zeile nicht korrekt sein!¿

```php
$out = $this->pi_getPageLink($GLOBALS["TSFE"]->id,'',array("tx_tdglossar_pi1[letter]" => $chr));
```

Warum bekomme ich eine leere Seite angezeigt??? Bin schon ganz wirre im Kopf

---

Quelle: „Extension anpassen an RealURL“, typo3.net, https://www.typo3.net/d/105240-extension-anpassen-an-realurl
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
