Ergebnis 1 bis 5 von 5

Thema: Formular in Rocksolid Custom Element auswählen?

  1. #1
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard Formular in Rocksolid Custom Element auswählen?

    Gibt es eine Möglichkeit, wie man in einem Rocksolid Custom Element ein Formular auswählen könnte, das man im Formulargenerator von Contao 5 angelegt hat?
    Idealerweise so, dass zur Auswahl alle Formulare stehen, die die redaktionell arbeitende Person im Backend sehen darf?

    Diese Anforderung hatte ich bisher nie und weiß daher momentan keinen Ansatz dafür. Daher wäre ich für Hilfe sehr dankbar.

  2. #2
    Contao-Fan
    Registriert seit
    24.02.2021.
    Beiträge
    455

    Standard

    Hey Nina,
    habe Formulare mal in einem RSCE unter Contao 4.13 bereitgestellt, kann dir aber nicht sagen ob es so noch unter Contao 5 funktioniert.

    Sofern du es als type content und/oder module einbindest, nutze folgenden Code ganz oben in deiner rsce_x_config.php um die Formulare laden zu können.

    PHP-Code:
    use Contao\Controller;

    Controller::loadDataContainer('tl_module');
    Controller::loadDataContainer('tl_content'); 
    Als field in deiner rsce_x_config.php

    PHP-Code:
    'form' => array(
      
    'label' => array(
        
    'de' => array('Form'''),
        
    'en' => array('Formular'''),
      ),
      
    'inputType' => 'select',
      
    'eval' => array('includeBlankOption' => true'tl_class' => 'w50 clr'),
      
    'options_callback' => array('tl_module''getForms')
    ), 
    in deinem Template (rsce_x.html5) kannst du dann folgendermaßen darauf zugreifen:

    PHP-Code:
    {{insert_form::<?= $this->form?>}}
    Wenn es in einer Liste ist, dann über eine foreach und auf das item zugreifen

  3. #3
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Danke, ich werde es zeitnah ausprobieren.

    Wenn es klappt, werde ich das ganze Template online stellen.

  4. #4
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Vielen Dank! Es funktioniert
    Erstmal ganz banal:

    rsce_ctaForm_config.php
    PHP-Code:
    <?php
    // rsce_ctaForm_config.php
    // Daten reinladen fuer Formulareinbindung
     
    use Contao\Controller;
    Controller::loadDataContainer('tl_module');
    Controller::loadDataContainer('tl_content'); 

    return array(
        
    'label' => array('Call-to-Action''Call-to-Action Element mit eingebundenem Formular.'),
        
    'types' => array('content''module'),
        
    'contentCategory' => 'Spezialelemente',
        
    'moduleCategory' => 'Spezialmodule',    
        
    /* 'beTemplate' => 'be_callToAction', */
        
    'standardFields' => array('cssID','class'),
        
    'wrapper' => array(
            
    'type' => 'none',
        ),

        
    'fields' => array(    
            
    // START FORMULAR
            
    'form' => array(
                
    'label' => array(
                  
    'en' => array('Form''Choose a form for the call-to-action element.'),
                  
    'de' => array('Formular''Formular für das Call-to-Action Element auswählen.'),
                ),
                
    'inputType' => 'select',
                
    'eval' => array(
                    
    'includeBlankOption' => true
                    
    'tl_class' => 'w50 clr'
                
    ),
                
    'options_callback' => array('tl_module''getForms')
            ), 
            
    // STOP FORMULAR
        
    ),
    );
    rsce_ctaForm.html5
    PHP-Code:
    <div class="<?php echo $this->class ?> block"<?php echo $this->cssID ?>>

        <?php if ($this->form): ?>
          {{insert_form::<?= $this->form?>}}
        <?php endif; ?>
     
    </div>
    Voraussetzung ist natürlich, dass es im Backend zumindest schon ein angelegtes Formular gibt.

    Das eigentliche Call-to-Action Element ist bei mir wesentlich umfangreicher, aber hier poste ich erstmal nur die reduzierte Form, falls andere Leute auch das Beispiel für die Einbindung suchen.
    Bei Interesse könnte ich mal die Templates für das vollständige Call-to-Action-Element bei Zeiten in meinem Blog veröffentlichen.

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Der {{insert_form::*}} Insert-Tag ist nicht notwendig. Einfach:
    PHP-Code:
    <?= Contao\Controller::getForm($this->form?>
    » sponsor me via GitHub or PayPal or Revolut

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
  •