Ergebnis 1 bis 19 von 19

Thema: Ein Formular aus dem F-generator im eigenem Modul einfügen wenn man die Id weiß?

  1. #1
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Frage Ein Formular aus dem F-generator im eigenem Modul einfügen wenn man die Id weiß?

    Hallo,
    Ich habe es im Moment im Template über:
    PHP-Code:
    echo $this->replaceInsertTags'{{insert_module::'.$this->ModulId.'}}' ); 
    Ich muss noch extra Modul für disen Formular erstellen.

  2. #2
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.621
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du könntest die Form Klasse aufrufen...
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  3. #3
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Du könntest die Form Klasse aufrufen...
    Hi!
    währe das dann so:
    PHP-Code:
    $this->import('Form'); 
    und die compile Funktion mit der meiner ID defenieren? Z.B:
    PHP-Code:
    $this->import('Form');

      protected function 
    compile()

        {
     
    // Get all form fields

            
    $objFields $this->Database->prepare("SELECT * FROM tl_form_field WHERE pid=? AND invisible!=1 ORDER BY sorting")

                                        ->
    execute($this->Meine_id);
    //+ alles andere in dieser Funktion aus der Form.php

    kann das aus dem template machen? ist es nicht komplizierter und langsamer als mit dem Inserttag?
    Ich hatte auch gerne so viele Code nicht im template stehen, aber mein Modul hat ja auch schon eine compile();
    oder kann ich irgendwie bei Aufruf von Form Klasse im die richtige id übergeben?
    wie sith es dann aus?

  4. #4
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.621
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich denke wenn du nichts anpassen musst, kannst du auch einfach den InsertTag benutzen. Die Klasse erlaubt dir natürlich mehr Kontrolle. Wenn ich mich richtig erinnere musst du lediglich die Klasse mit den entsprechenden Formulardaten instantiieren, bzw. deinen eigenen (die des Moduls/Inhaltselement).
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  5. #5
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    kannst du es nähe erklaren mit einem beispiel code, ungetestet natürlich?

  6. #6
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.621
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    PHP-Code:
    new Form($this->arrData); 
    Du musst dann allerdings im Modul auch die Einstellung eines Formulars (so wie im Original) zulassen, oder die entsprechenden Daten simulieren.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  7. #7
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    ich weiss, dass du mir nicht kommpletten code schreiben kannst, aber jtzt weiß gar nciht ob ich es importiren muss, wo das ganze hin soll in meine Compile oder doch im template. was beinhaltet dieses arrData;
    Kannst du vilelleicht sagen wo ich das im Core nachgucken kann? welche dateien. in der Form.php ist nicht ersichtlich wie du zu dieser Zeile kommst:
    PHP-Code:
    new Form($this->arrData); 

  8. #8
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.621
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Die Form-Klasse ist ein sogenannter Hybrid, der sowohl als Frontend-Modul als auch als Inhaltselement funktionieren kann. Am besten schaust du dir an was passiert, wenn du ein entsprechendes Inhaltselement auf einer Seite einbindest. Dann solltest du verstehen welche Daten dem Objekt übergeben werden - vorausgesetzt du verstehst genug PHP
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  9. #9
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    Hallo,
    ich bekomme immer diesen Fehler, ich kann auch irgenwie die construct metode für Formular nicht aufrufen; egal wo ich sie einfüge habe ich folgenden Fehler:
    HTML-Code:
    Recoverable error: Argument 1 passed to Hybrid::__construct() must be an instance of Database_Result, none given, called in
    Mein modul hat die Construct metode nicht gebraucht, wenn ich da aber die einfüge und $this->import('Form') oder new Form() aufrufe,
    dann wird es trotzdem diese Fehlermeldung ausgegeben.
    mein Modul erwetert Module. (extends Module).
    Ist es möglich in eigenem Modul ein Formular aus dem Formulargenerator ausgeben?
    wie schicke ihn an das template weiter?
    ich will diesen code nicht im Template haben.
    Ich finde die Stelle nicht wo im Core die Formklasse aufgerufen wird.

  10. #10
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.621
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich hatte schon versucht das zu erklären. Du musst der Klasse einen Datensatz übergeben.

    PHP-Code:
    $objModule $this->Database->execute("SELECT * FROM tl_module WHERE id={$this->id}");
    $objForm = new Form($objModule); 
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  11. #11
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    Jetzt ist im $objForm ,die ganzen Formular einstellungen wie
    PHP-Code:
    [id] => 2
                
    [tstamp] => 1279265001
                
    [title] =>  Register
                
    [jumpTo] => 0
                
    [sendViaEmail] => 
                [
    recipient] => 
                [
    subject] => 
                [
    format] => raw
                
    [skipEmpty] => 
                [
    storeValues] => 
                [
    targetTable] => 
                [
    method] => POST
                
    [attributes] => a:2:{i:0;s:0:"";i:1;s:0:"";}
                [
    formID] => Reg
                
    [tableless] => 
                [
    allowTags] => 
                [
    sendFormattedMail] => 1
                
    [formattedMailRecipient] =>
    +++ 
    aber nicht das Formular.
    es funktioniert auch wundersamer weise, weil ich im modul das Feld für auswahl von formularen habe, das Arraa ändert sich aus entsprechend welchen Formular man genommen hat.
    Wieso hat er der die DB-Abfrage mit meinem Modul gebraucht? (Form klasse)
    Und was ist eigenlich hier passiert?
    ist jetzt Das Formular angebunden oder fehlt noch was?
    Wie kann ich ihn an das Template übergeben?

  12. #12
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.621
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Die DB-Abfrage auf dein Modul brauchst du, weil dem Form-Objekt eine DB-Abfrage übergeben werden muss.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  13. #13
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    @Andreas
    Hi, ich wurde gerne verstehen was ist hier passiert und was ist als nächstes zu tun.
    Woher weißt du genau diese Abfrage gebraucht wird, ich dachte es wird id des formulars gebraucht.
    kanst du mir vielleicht ein paar Dateine nennen wo ich es nachvolzihen kann?
    hier komme ich nicht wirklich weiter. http://api.contao.org/Controller/Form.html

  14. #14
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.621
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich weis dass diese Daten benötigt werden, weil ich das System kenne. Wie kommst du auf die Idee dass eine ID benötigt wird? Vermutlich nur durch überlegen, nicht durch nachvollziehen, oder?

    Um das ganze zu verstehen, musst du den Quellcode lesen (und verstehen). Die API ist dafür nicht wirklich zu gebrauchen...
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  15. #15
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    Ja, hast du recht, ich finde leider nicht die richtige Dateien um es nachvollziehen.
    Kannst mir sagen was habe ich jetzt erreicht und was brauche ich um diesen Formular im Template darstellen?
    Oder mir wurde helfen:
    hier wird es gemacht Z.B.: Article.php -> Form.php-> Hybrid.php template oder ich weiß es leider nicht. Ich wurde es gern verstehen und auch das Ganze System ein wenig kennen lernen.

  16. #16
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.621
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Schau dir doch mal die Form.php und deren Parent-Klassen an.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  17. #17
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    Form.php hat die gleichen Function wie meine Erweiterung, complile, generate. in der compile wird die ID fom Formular gebracht, wenn ich es richtig verstehe.
    deswegen habe ich nicht verstanden was die Zeile, new Form(abfrage mit meinem Modul) macht - zu welcher datei das ganze geht(wo wird es aufgerufen) in der Form.php finde ich es nicht.
    Die parent klasse ist Hybrid.php? oder gibt es noch mehr?

  18. #18
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    Vielen Dank Andreas!!!
    Hat endlich geklappt, ich habe es bei generateFronentmodule abgeschaut.
    das was gefehlt hat war:
    PHP-Code:
    $strBuffer $objForm->generate(); 
    dann wird das Ganze noch in der Compile Funktion an den Template übergeben.
    Wäre aber schön wenn jemand erklären wurde wie das ganze funktioniert.
    Ich denke das wird vielen Helfen die Abläufe in Contao zu verstehen.
    ich fasse zusammen:
    PHP-Code:
    public function myForm ()
    {    
    $objModule $this->Database->execute("SELECT * FROM tl_module WHERE id={$this->id}");
    $objForm = new Form($objModule);  
    $strBuffer $objForm->generate();
    return 
    $strBuffer;
    }

    protected function 
    compile()
        {
    // + eigener modul code
    $Mform=$this->myForm ();
    $this->Template->mForm =$Mform;


  19. #19
    Contao-Nutzer
    Registriert seit
    28.07.2009.
    Ort
    Eisenach
    Beiträge
    137

    Standard

    Hi,
    PHP-Code:
    $strBuffer $objForm->generate(); 
    in diesem Code generiere ich ein Formular, was ich noch brauche ist die Senderadresse zu verändern z.B.(
    PHP-Code:
    ['formattedMailRecipient'
    ).
    kann ich das irgendwie hier machen oder muss ich über ein hook gehen?
    Sieh mein Code oben.

    Danke euch!

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 02.09.2010, 18:10
  2. Formular-Generator: Problem mit Checkbx-Menü
    Von pod1987 im Forum Layout / Templates / Holy Grail
    Antworten: 2
    Letzter Beitrag: 27.07.2010, 16:05
  3. Korrekte Reply-Adresse bei Formular-Generator
    Von nuun im Forum Formulare
    Antworten: 4
    Letzter Beitrag: 25.01.2010, 13:43
  4. formular in eigenem modul
    Von Marcel im Forum Entwickler-Fragen
    Antworten: 5
    Letzter Beitrag: 16.08.2009, 00:39

Lesezeichen

Lesezeichen

Berechtigungen

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