Zum Inhalt springen

Link mit Anker in class.tx_extname und Einzelansicht

Erstellt am 2. Oktober 2008 · 4 Antworten · letzte Antwort am 7. Oktober 2008

Tags: Links, Frage

kuan yin ·

Hallo,
#angry# Ich versuche gerade die Ergebnisse eine Abfrage als Link in Frontend darzustellen.
Ich will aber für jedes Ergebnis, der Afangbuchstabe als Anker definieren, und auf meine Linkliste von A bis Z ein Verweis zu diese Anker haben.
Wie kann ich das machen?
Das zeigt mir eine Liste mit Links.

$marker = array();
Eine Liste von A bis Z als link
for($i=65; $i<=90;$i++)
 { $items[$j] = chr($i); $j++;  }
$url = 
$this->pi_getPageLink(
$GLOBALS['TSFE']->id,'',
array($this->prefixId=>
  array('mode'=>$items[$j])));
 $marker["###BUCHSTABE###"] = 
$this->pi_linkToPage
($this->pi_list_modeSelector($items),
$GLOBALS['TSFE']->id,'',$url);

Ich will diese links als Verweis zu jeder Ergebnis $result['name']definieren mit Anker.

 $query = 
$GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tx_extname_eintrag', 'deleted = 0');

while($result = mysql_fetch_array($query))
      { 
$content .= $this->pi_list_linkSingle($result['name'],$uid,$cache=FALSE,$mergeArr = array(),$urlOnly= FALSE,$altPageId=0);
  }
return $content

kann mir jemand helfen?

kuan yin ·

Ja! genau sowas meine ich, das will ich haben.
Du meinst für die Linklist sollte ich dann die Anker so setzen:

$j=0;
for($i=65; $i<=90;$i++) { $items[$j] = chr($i); $j++;}

$url = $this->pi_getPageLink($GLOBALS['TSFE']->id,'',
            array($this->prefixId=>array('name'=>$items)));

 $marker["###BUCHSTABE###"] = $this->pi_linkToPage($this->pi_list_modeSelector($items),$GLOBALS['TSFE']->id,'',$url);

Und für die Ergenisse machst du nur eine Abfrage?

foreach($items){
$content .= '<a name="$items" id="$items"></a>';
$content .= $this->pi_list_linkSingle($result['name'],$uid,$cache=FALSE,$mergeArr = array(),$urlOnly= FALSE,$altPageId=0);
}

wie kann ich die angeklickte Buchstabe für die Abfrage nehmen?

Mopps ·

Ohje, das ist schon ziemlich lange her. Ich bin kein guter Programmierer und auf die Extension kann ich nicht mehr zugreifen. Du musst dir halt eine Logik basteln. Die Schritte sind aber nicht so schwer und in etwa so:

1) DB-Abfrage auf deine Tabelle mit den Personen, sortiert nach (z.B.) Nachname absteigend, also von A-Z

2) Für die Buchstabenliste und die eigentlichen Datensätze am besten 2 verschiedene Variablen füllen

3) das Ergebnis bzw. alle zurückgelieferten Datensätze durchgehen und schauen:
-> Anfangsbuchstabe des Datensatzes anschauen. Buchstabe schon in der Liste vorhanden? Ja, dann nicht hinzu. Nein, dann in die Liste aufnehmen und zwar als Link auf einen Anker auf diesen Buchstaben.
-> Die Datensätze an sich sammelst du in der anderen Variablen. Jedes mal, wenn in dieser Liste ein Datensatz hinzukommt, der einen anderen Anfangsbuchstaben hat, dann musst du davor einen Anker für diesen Buchstaben setzen, der als Ziel für die Ankerlinks aus der Buchstabenliste dient.

Überleg dir die Logik (schreib sie auf) und setze sie im Programm um.

kuan yin ·

Das hat Funktionniert, 🙂 nach jeder Buchstabe kommt die Liste mit alle Datensätze, die mit diese Buchstabe anfangen.
Ein weiteres Problem ist das anzeige von der Einzelansicht.
Zum Beispiel Auf Ihre, wie du den Link zu jeder Einzelne Datensatz gemacht?
Gruß