Contao-Camp 2024
Ergebnis 1 bis 15 von 15

Thema: Einbindung eines Audios

  1. #1
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard Einbindung eines Audios

    Ich versuche seit mehreren Stunden erfolglos, die Einbindung eines bzw. mehrerer Audios zu realisieren ...

    So sieht die php-Datei auszugsweise aus:
    PHP-Code:
    'audiodateien' => array(
        
    'label' => array('Audio','Füge eine beliebige Anzahl an Audios ein.'),
        
    'elementLabel' => 'Audio %s',
        
    'inputType' => 'list',
        
    'fields' => array(
            
    'audiodatei' => array(
                
    'label' => array('Ueberschrift (bei mehreren Audios)'''),
                
    'inputType' => 'text',
                
    'eval' => array('tl_class' => 'w50'),
            ),
            
    'audio' => array(
                
    'label' => array('Audiodatei'''),
                
    'inputType' => 'fileTree',
                
    'eval' => array(
                    
    'fieldType' => 'radio',
                    
    'filesOnly' => true,
                    
    'extensions' => 'mp3',
                    
    'tl_class' => 'w50',
                ),
            ),
        ),
    ), 
    Das funktioniert im Backend auch soweit alles, nur im Frontend wird nichts ausgeliefert, weil das dazugehörige Template irgendwie nicht stimmt:

    HTML-Code:
    <?php foreach ($this->audiodateien as $audiodatei): ?>
        <div class="ce_player block">
            <h3><?php echo $this->audiodatei ?></h3>	
            <figure class="audio_container">
                <audio preload="auto" controls="">
                    <source type="<?= $audio->mime ?>" src="<?= $audio->path ?>" title="<?= $audio->title ?>">
                </audio>		   
            </figure>
        </div>
    <?php endforeach ?>
    leider reichen meine dürftigen php-kenntnisse nicht aus, um den Fehler zu finden ...

    Und gleich noch eine Frage hinterher:
    Innerhalb des gleichen Custom Elements kann, aber muss nicht im Backend ein Feld 'inputType' => 'text' ausgefüllt werden. Wenn es nicht ausgefüllt wird, meckert Contao beim Speichern "Bitte füllen Sie das Feld "Text" aus!". Wie kann ich es verhindern, dass das Textfeld automatisch zum Pflichtfeld wird?

    Viele Grüße
    Thekla

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    wenn Du unter C4 bist mach Deine Seite mit app_dev.php auf bzw. bei C 4.8 schalte das im Backend ein

    dann

    PHP-Code:
    <?php dump($this->audiodateien); ?>
    <?php 
    foreach ($this->audiodateien as $audiodatei): ?>
    ...
    und guck dir in der Symfony-Toolbar bei dem "Fadenkreuz" an, was am Template ankommt... dann sollte die Anpassung leicht zu machen sein

  3. #3
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Danke, das hat schon mal geklappt ... :-)

    So sieht das Template jetzt aus:

    HTML-Code:
    					<?php foreach ($this->audiodateien as $audiodatei): ?>
    						<div class="ce_player block col-md-4">
    							<h3><?php echo $audiodatei->audio_title ?></h3>
    							<figure class="audio_container">
    								 <!--<?php if ($audio = $this->arrData['getImageObject']($audiodatei->audio, array(120, 120))): ?>-->
    											<source type="audio/mpeg" src="<?php echo $audio->src ?>" alt="<?php echo $audio->alt ?: $audiodatei->name ?>"<?php echo $audio->size ?>>
    										<!--<?php endif ?>-->
    							</figure>
    						</div>
    					<?php endforeach ?>
    Und der dazugehörige Ausschnitt in der php-Datei:
    PHP-Code:
                    'audiodateien' => array(
                        
    'label' => array('Audio','Füge eine beliebige Anzahl an Audios ein.'),
                        
    'elementLabel' => 'Audio %s',
                        
    'inputType' => 'list',
                        
    'fields' => array(
                            
    'audio_title' => array(
                                
    'label' => array('Überschrift (bei mehreren Audios)'''),
                                
    'inputType' => 'text',
                                
    'eval' => array('tl_class' => 'w50'),
                            ),
                            
    'audio' => array(
                                
    'label' => array('Audiodatei'''),
                                
    'inputType' => 'fileTree',
                                
    'eval' => array(
                                    
    'fieldType' => 'radio',
                                    
    'filesOnly' => true,
                                    
    'extensions' => 'mp3',
                                    
    'tl_class' => 'w50',
                                ),
                            ),
                        ),
                    ), 
    Gibt es eine Möglichkeit, die Größe des Audios vorab anzeigen zu lassen? Das kriege ich leider nicht hin ...

    Und, immer noch aktuell: wie schaffe ich es, dass das Textfeld kein Pflichtfeld mehr ist?

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Lufine Beitrag anzeigen

    Gibt es eine Möglichkeit, die Größe des Audios vorab anzeigen zu lassen?
    Größe als MB oder als Soundlänge?


    ist Dein "audio_title" ein Pflichtfeld? sollte es nicht sein - ggf. bei eval ein "... , 'mandatory' => false " hinzufügen

  5. #5
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Größe als MB oder als Soundlänge?
    Als MB ...


    Zitat Zitat von zonky Beitrag anzeigen
    ist Dein "audio_title" ein Pflichtfeld? sollte es nicht sein - ggf. bei eval ein "... , 'mandatory' => false " hinzufügen
    An der Stelle geht es nicht um den audio_title sondern um eine Bescheibung:
    PHP-Code:
                    'text' => array(
                        
    'label' => array('Beschreibung''Hier kann, aber muss keine Beschreibung stehen'),
                        
    'inputType' => 'standardField',
                        
    'eval' => array('tl_class' => 'clr'),
                    ), 


    Noch ein Problem: im Template führt diese Abfrage in der Toolbox leider zu einem Fehler:
    Image "files/content/features/schorsch/Auf_der_Suche_nach_Schorsch_Folge_1.mp3" could not be processed: Image type "mp3" was not allowed to be processed

    HTML-Code:
    <?php if ($audio = $this->arrData['getImageObject']($audiodatei->audio, array(120, 120))): ?>

    Ist ja irgendwie auch logisch, weil kein Bild sondern Audio ... Aber wie muss ich es umschreiben?

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    * Größe: guck in deine Debugausgaben => steht da irgendwas mit Dateigröße? wenn nicht, müsste man das nochmal separat abfragen...
    * Textfeld: mach inputType text
    * was willst Du den mit "<?php if ($audio = $this->arrData['getImageObject']($audiodatei->audio, array(120, 120))): ?>" erreichen? lass es einfach weg!

  7. #7
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    * Größe: guck in deine Debugausgaben => steht da irgendwas mit Dateigröße? wenn nicht, müsste man das nochmal separat abfragen...
    Nein, da werden nur diese Angaben übermittelt:
    Code:
    array:5 [?
      0 => {#751 ?
        +"audio_title": "Hier eine Überschrift"
        +"audio": "23f3fe95-33c8-11ea-b9e1-00163e0519a7"
      }
      1 => {#750 ?}
      2 => {#749 ?}
      3 => {#748 ?}
      4 => {#747 ?}
    ]
    Zitat Zitat von zonky Beitrag anzeigen
    * Textfeld: mach inputType text
    Klar, das geht, aber dann steht mir der Texteditor ja nicht mehr zur Verfügung und den brauchen wir leider a der Stelle.

    Zitat Zitat von zonky Beitrag anzeigen
    * was willst Du den mit "<?php if ($audio = $this->arrData['getImageObject']($audiodatei->audio, array(120, 120))): ?>" erreichen? lass es einfach weg!
    Den Codeschnipsel hat ich von einem Beispiel übernommen. Ohne diesen Schnipsel wird der Audiocontainer leider nicht mit Inhalt gefüllt ...

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    teste mal

    PHP-Code:
    src="{{file::<?= $audio ?>}}"...
    über eval kannst Du auch den tiny aktivieren

  9. #9
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    teste mal

    src="{{file::<?= $audio ?>}}"...
    Das funktioniert leider nicht ... Die Ausgabe bleibt dann leer:
    HTML-Code:
    <audio preload="auto" controls="">
    <source type="audio/mpeg" src="" alt="" title="">
    </audio>

    Zitat Zitat von zonky Beitrag anzeigen
    über eval kannst Du auch den tiny aktivieren
    Super, danke! Das hat geklappt :-)

  10. #10
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    Ausgabe so dass dann "src="{{file::23f3fe95-33c8-11ea-b9e1-00163e0519a7}}" steht

  11. #11
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Ausgabe so dass dann "src="{{file::23f3fe95-33c8-11ea-b9e1-00163e0519a7}}" steht
    Super, es klappt mit
    Code:
    src="{{file::<?php echo $audiodatei->audio ?>}}"
    Jetzt fehlt eigentlich nur noch die Angabe der Dateigröße ...

  12. #12
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    dann kannst (musst) du dir die Infos nochmal abholen z.B. per ModelFiles...

    Beispiel https://community.contao.org/de/show...l=1#post467512

  13. #13
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Oooops, das ist mir 'ne Nummer zu hoch ...

  14. #14

  15. #15
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Ich weiß ... ;-)

    So wichtig ist es allerdings nicht, d.h. ich lass die Funktion erst einmal weg.

    Danke auf jeden Fall für Deine Hilfe!

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
  •