detailView

  • neotron neotron
    Padawan
    0 x
    37 Beiträge
    0 Hilfreiche Beiträge
    09. 03. 2009, 16:21

    Hallo Forum,

    Ich habe eine listView, wo mit

    1. $markerArray['###PROGRAMMLINK###']= $this->pi_linkTP(»Programm,array($this->prefixId.'[prog]'=> $row['veranstaltung_v_id']), $cache=0);

    eine veranstaltung_v_id des Datensatzen übergeben werden soll. Der Link wird richtig generiert, aber im Array landet nicht die richtige veranstaltung_v_id.
    Wie kann ich die ID so übergeben, dass ich im detailView diese in die Select Anweisung einbauen kann?

    1. // Datensatz holen
    2. $record=$this->pi_getRecord=$this->piVars['prog'];
    3. $vcalvid=$record['veranstaltung_v_id'];
    4.  
    5. //Datensätze holen ver_veranstaltung
    6. $resplist=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
    7. '*', //select
    8. 'ver_veranstaltungselement a INNER JOIN ver_veranstaltung b ON a.veranstaltungselement_v_id = b.veranstaltung_v_id', //from
    9. "b.veranstaltung_id = '".$vcalvid."' ", //where
    10. $groupBy='',
    11. $orderBy='a.veranstaltungselement_rang ASC, a.veranstaltungselement_block ASC, a.veranstaltungselement_von ASC, a.veranstaltungselement_typ ASC',
    12. $limit='');

    Würde mich freuen, wenn mir jemand einen Denkanstoss oder änliches geben kann.

    VG


  • 1
  • matin matin
    R2-D2
    0 x
    91 Beiträge
    0 Hilfreiche Beiträge
    11. 03. 2009, 10:01

    das folgende kann nicht stimmen:

    1. $record=$this->pi_getRecord=$this->piVars['prog'];

    du hast in einer zeile zwei "="

    versuch folgendes:

    1. $record=$this->pi_getRecord('tx_deineext_tabelle',$this->piVars['prog']);

    allerdings läuft das normalerweise über die uid des datensatzes (du verwendest veranstaltung_v_id)

  • neotron neotron
    Padawan
    0 x
    37 Beiträge
    0 Hilfreiche Beiträge
    11. 03. 2009, 10:50

    Hallo Matin,

    das habe ich auch gemerkt, leider selbes Ergebnis.
    Mir ist bewusst das normaler Weise die UID der Tabelle übergeben wird, aber laut Syntax kann ich doch jede andere Spalte auch nehmen, wenn ich das richtig verstanden habe. Bei mir ist die Spalte "veranstaltung_v_id" aus Tabelle "ver_veranstaltung" mit Spalte "veranstaltungselement_v_id" aus Tabelle "ver_veranstaltungselement" verknüpft. Aus dieser würde ich gerne die Elemente im detailView per Select rausholen.
    Dazu benötige ich in der WHERE Klausel die "veranstaltung_v_id", deshalb keine "UID".

    Die Ext. soll auch nur lesen, da die Datenbank von anderer Stelle gefüllt wird.

    Ich nutze nun folgenden Code:

    1. // listView
    2. // Programm ausgeben wenn vorhanden
    3. $resvid = $this->pi_RTEcssText($row['veranstaltung_v_id']);
    4. $resprog=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
    5. 'COUNT(*)', #select
    6. 'ver_veranstaltungselement', #from
    7. "veranstaltungselement_v_id = '" . $resvid ."'" ); #where
    8.  
    9. // rowvidp mit 0 wenn kein Programm vorhanden ist
    10. if ($resprog) {
    11. $rowvid = $GLOBALS['TYPO3_DB']->sql_fetch_row($resprog);
    12. $rowvidp = $rowvid[0];
    13.  
    14. // Marker füllen
    15. if ($rowvidp == "0" || $rowvidp == "")
    16. {
    17. $markerArray['###PROGRAMMLINK###']= '';
    18. }
    19. else
    20. {
    21. $markerArray['###PROGRAMMLINK###']= $this->pi_linkTP(»Programm,array($this->prefixId.'[item]'=> $row['veranstaltung_v_id']), $cache=1);
    22. }
    23. }

    Der generierte Link wird richtig erzeugt.

    1. // detailView Programm ausgeben
    2. function detailView()
    3. {
    4. // Subpart definieren
    5. $subpart=$this->cObj->getSubpart($this->template,'###DETAILVIEW###');
    6. // einzelne Reihe definieren
    7. $singlerow=$this->cObj->getSubpart($subpart,'###ROW###');
    8.  
    9. // Datensatz holen
    10. $record=$this->pi_getRecord('ver_veranstaltung',$this->piVars['item']);
    11.  
    12. // Marker der Veranstalltung füllen
    13.  
    14. // Veranstaltungstitel ausgeben
    15. $markerArray['###TITEL###']=$record['veranstaltung_titel'];

    Das Array enhält leider immer noch einen anderen Datensatz aus der Tabelle.

  • 1