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.
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
$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.
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
danke für den hinweis, doch komme ich mit z.B.
$out = $this->pi_getPageLink($GLOBALS["TSFE"]->id,'',array("tx_tdglossar_pi1[letter]" => $chr));
auch nicht weiter. Hier wird die Seite dann nicht geladen...
Bin nun ein Stück weiter gekommen. Habe die $_REQUEST rausgefowrfen und druch
$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[letter]=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:
$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
$out = $this->pi_getPageLink($GLOBALS["TSFE"]->id,'',array("tx_tdglossar_pi1[letter]" => $chr)); //eigenfügt
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;
}
Hallo,
das wird nie klappen, wenn du dich nicht mit der API von TYPO3 auseinandersetzt. Schau dir das mal an:
Links in Extensions.
Und als Doku das hier:
tslib_pibase
Peter, TYPO3 @ lisardo (Augsburg)
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...
Sollte diese Zeile nicht korrekt sein!¿
$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