Ergebnis 1 bis 16 von 16

Thema: Backendmodulentwicklung Werte aus vorhandener Tabelle holen aber wie ?

  1. #1
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard Backendmodulentwicklung Werte aus vorhandener Tabelle holen aber wie ?

    Hallo,

    ich habe mal eine frage zum Thema backendmodul

    'label' => &$GLOBALS['TL_LANG']['tl_groups']['de_group'],
    'inputType' => 'select',
    'options_callback' => array('tl_groups', 'getgroup'),
    'search' => true,
    'eval' => array('mandatory'=>true, 'maxlength'=>64)
    )

    ich bin gerade dabei ein backendmodul zu entwickeln.
    nun möchte ich ähnlich wie bei der sprache in diesen modul auf ein bereits vorhandene tabelle zugreifen und bei der anlage eines kataloges auf
    vorhande tabelle zurückgreifen. ich habe mir also eine klasse angelegt mit den namen tl_groups und eine methode mit den namen getgroups.
    nun denke ich das ich in der methode die datenbanktabelle auslesen muss und den wert bei options callback zurück übergebe.
    ist mein ansatz richtig oder wie macht man das ? gibt es ein buch wo das erklärt ist und hat jemand ein tip.
    ich wäre für jede hilfe dankbar.

    viele grüße claudia.

  2. #2
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Hallo,

    hier ein Beispiel um Members auszulesen:
    Code:
    public function getMembers($dc)
    	{
    		$return = array();
    		$objMembers = $this->Database->prepare("SELECT * FROM tl_member")->execute();
    
    		if ($objMembers->numRows < 1)
    		{
    			return array();
    		}
    		
    		while ($objMembers->next())
    		{
    			
    			$return[$objMembers->id] = $objMembers->firstname . " " . $objMembers->lastname . "(" . $objMembers->username . ")";
    			
    		}
    		
    		return $return;
    	}
    Meine Erweiterungen: League Manager | Forum

  3. #3
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard box zeigt seltsame werte an.

    Hallo ,

    erstmal danke für deine antwort.
    ich habe das umgebaut und nun bekomme ich die angestrebten daten in der combobox angezeigt.
    nun will ich aber die id des feldes in die neue tabelle speichern also müsste ich wieder ein methode machen ?


    viele grüße claudia
    Geändert von moori (29.02.2012 um 19:25 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard geänderter datensatz wird nicht abgespeichert.

    hallo,

    ich habe eine tabelle kunde den kundennamen lass ich mir in einer box als auswahl anzeigen und stelle somit einen neuen datensatz zusammen.
    die id der tabelle kunden soll nun in das feld id_ku in der neuen tabelle gespeicht werden.ist mein ansatz richtig ?
    Code:
    public function setgrouptocatalog($varValue, DataContainer $dc)
    	{
    		
    			$ret=$this->Database->prepare("INSERT INTO tl_catalog (gr_id) VALUES (?)")->execute($VarValue,$dc->activeRecord->id);
    			
    		return $varValue;
    	
    	}
    vielen dank im vorraus claudia

    @ bandit ich habe gesehen das du ein ähnliches problem hattest.
    Geändert von moori (02.03.2012 um 06:29 Uhr)

  5. #5
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard Backendmodulentwicklung funktionsweise nirgend beschrieben.

    hallo,

    hat denn keiner einen Tip für mich, es gibt keine vernüftige lektüre über die Modulentwicklung im Backend.
    Vielleicht könnte mir jemand hier im Forum helfen.

    Viele Grüße Claudia

  6. #6
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard Keine Vernüftige Dokumentation

    Hallo,

    nach vielen Tagen des versuches Daten in eine Datenbank zu speichern mittels Save_Callback oder onsubmit_Callback bin ich leider an eine Stelle gekommen wo ich Denke
    das es besser ist Contao nicht weiter zu benutzen und wieder zu Jommla zurück zukehren. Ich habe noch nie eine so schlecht dokumentiertes CMS gesehen. Ich habe mir 2 Bücher gekauft unter anderen
    das von Leo Feyer und bin einfach nur entäuscht.
    Nirgends wir beschrieben wie man die Callbacks benutzt. Hätte ich zwischendurch nicht mal eine Antwort von Bandyt bekommen wäre hier im Forum auch nichts passiert.
    Es kann doch nicht so schwer sein sich in der Dropdownbox der Text anzeigen zu lassen und dann aber die ID wegzuspeichern.

    momentan habe ich das , vielleicht hat ja doch von den Profi einer das nachsehen und gibt mir nochmal einen tip was ich verkehrt mache.
    PHP-Code:
     'label'                   => &$GLOBALS['TL_LANG']['tl_groups']['de_group'],
     
    'inputType'               => 'select',
    #'foreignKey'              => 'tl_groups.de_group',
     
    'options_callback'           => array('tl_groups','getgroup'),
     
    'search'                  => true,
     
    'eval'                    => array('mandatory'=>true'maxlength'=>64)
    'save_callback'        => array('tl_groups''setgrouptocatalog'




    Code:
    public function setgrouptocatalog($var, $dc)
    	{
    	
     $ret=$this->Database->prepare("INSERT INTO tl_catalog (gr_id) VALUES (?)")->execute($VarValue,$dc->activeRecord->id);
    			
    	return $var = $ret;

    vielen dank im voraus Claudia

  7. #7
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Hallo Claudia,

    Halte dich doch an meinen code.

    Du musst im callback einen array wie folgt übergeben:

    $arrVariable[id des eintrags]='Text zum anzeigen'

    Und das mit allen werten.

    Ich kann den ganzen code nicht Posten, da ich unterwegs bin...

    Sent from my GT-I9100 using Tapatalk
    Meine Erweiterungen: League Manager | Forum

  8. #8
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard Backendmodulentwicklung Werte aus vorhandener Tabelle holen aber wie ?

    Hallo Bandyt,

    das habe ich doch für load_callback so gemacht wie du es geschrieben hattest und das funktioniert ja auch ohne Problem.
    siehe hier :
    PHP-Code:
    public function getcategory($dc)
        {
            
    $return = array();
            
    $objMembers $this->Database->prepare("SELECT * FROM tl_category")->execute();

            if (
    $objMembers->numRows 1)
            {
                return array();
            }
            
            while (
    $objMembers->next())
            {
                
                
    $return[$objMembers->id] = $objMembers->de_category;
                
            }
            
            return 
    $return;
        } 
    was nun nicht funktioniert ist folgendes .

    ich will nun den neuen Datensatz in eine neue noch leere Tabelle abspeichern.

    in der box steht nun der text den ich anzeigen will der valuewert ist aber die id 33 und diese möchte ich mit save_callback oder submit_callback speichern in eine neue tabelle speichern.
    nun dachte ich das man da ein insert machen kann und gut ist ich bekomme aber immer wieder eine fehlermeldung.


    Code:
    Fatal error: Could not load class t in /is/htdocs/wp1158054_PZ7BFQS70G/www/system/functions.php on line 106
    viele grüße claudia
    Geändert von moori (03.03.2012 um 11:47 Uhr)

  9. #9
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Du brauchst hier keinen save callback. Der options callback erledigt alles für dich und das speichern übernimmt contao

    Sent from my GT-I9100 using Tapatalk
    Meine Erweiterungen: League Manager | Forum

  10. #10
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard Thema: Backendmodulentwicklung Werte aus vorhandener Tabelle holen aber wie ?

    Aber ich möchte doch die id weggespeichert habe , die tabellen sind nicht über kindtabellen mit einanderverknüft weil das bei contao ja nicht mehren
    tabellen funktioniert.

    wenn ich jetzt auf speichern klicke wird doch der wert der im feld steht gespeichert aber nicht die id der tabelle oder sehe ich das falsch.


    lg claudia

    ich habe das mal umgesetzt und bekomme nun mit recht ein fehler der datenbank
    PHP-Code:

    Query error
    Unknown column 'de_group' in 'field list' (UPDATE tl_catalog SET de_group='33' WHERE id='75'
    Geändert von moori (03.03.2012 um 13:21 Uhr)

  11. #11
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Klar, du musst natürlich auch in der Tabelle ein Feld mit dem Namen "de_group" haben. Die id wird (Wie du siehst) korrekt eingetragen.
    Meine Erweiterungen: League Manager | Forum

  12. #12
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard Backendmodulentwicklung Werte aus vorhandener Tabelle holen aber wie ?

    aber das feld heißt doch gr_id und das feld de_group ist doch aus einer anderen tabelle bekommt man den das nicht beigebracht wo der den feldwert einsetzen soll
    HTML-Code:
    [CODE]
    $objMembers = $this->Database->prepare("UPDATE tl_Catalog SET gr_id=? where id=?")
    		                             ->limit(1)
    					   ->execute($dc->id);[/CODE]

    vielleicht so ?

  13. #13
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Wäres es möglich, dass du den ganzen DCA hier postest und am besten noch die Tabelledefinition aus der database.sql?
    Meine Erweiterungen: League Manager | Forum

  14. #14
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard Thema: Backendmodulentwicklung Werte aus vorhandener Tabelle holen aber wie ?

    hallo,

    klar wäre es möglich aber ich habe vorher noch eine andere idee , bei den fields array werden ja die felder defeniert die zur anzeige gebracht werden sollen. wenn ich hier schon schreibe das er das feld

    id_gr anzeigen soll und ich mit options_callback den inhalt aus der anderen tabelle fülle dann muss ich nur noch übersetzten. oder nicht ?


    Genauso funktioniert es , die zahl steht drin und die übersetzung bring die überschrift.

    Besten Dank für deine Mühe.

    Liebe Grüße

    Claudia.
    Geändert von moori (03.03.2012 um 14:49 Uhr)

  15. #15
    Contao-Nutzer
    Registriert seit
    11.02.2012.
    Beiträge
    29

    Standard

    THEMA GELÖST
    Geändert von moori (03.03.2012 um 19:44 Uhr)

  16. #16
    Contao-Nutzer
    Registriert seit
    11.09.2009.
    Beiträge
    55

    Standard

    Könntest du deinen Code dafür posten?

    Bei mir will das nicht so richtig...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •