Ergebnis 1 bis 18 von 18

Thema: ce_player mit mm_attr_file kombinieren

  1. #1
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard ce_player mit mm_attr_file kombinieren

    Hallo ich würde gerne mit dem Attribut-Typ "Datei" ("file") nicht eine Bilddatei auswählen können, sondern eine Audio-Datei, die dann mit dem content element "Video/Audio" (template: ce_player) ausgegeben wird. So die grobe Theorie.

    Ich habe nun ein neues Template aufgrund "mm_attr_file" erstellt (und "mm_attr_file_audio") genannt. Inhalt:
    PHP-Code:
    <?php if (is_array($this->src)): ?>
    <ul class="file<?= $this->additional_class ?>">
    <?php foreach($this->src as $arrFile): 
    $strTitle = ($arrFile['title']) ? $arrFile['title'] : (($arrFile['alt']) ? $arrFile['alt'] : $arrFile['file']);
    $strAlt   = ($arrFile['caption']) ? $arrFile['caption'] : '';
    ?>    
    <li class="<?= $arrFile['class'?>">
        <?php if ($this->isVideo): ?>
        <video<?= $this->size ?><?php if ($this->poster): ?> poster="<?= $this->poster ?>" preload="none"<?php endif; ?><?php if ($this->autoplay): ?> autoplay<?php endif; ?> controls>
          <?php foreach ($this->files as $file): ?>
            <source type="<?= $file->mime ?>" src="<?= $file->path ?>" title="<?= $file->title ?>">
          <?php endforeach; ?>
        </video>
      <?php else: ?>
        <audio<?= $this->size ?> preload="none"<?php if ($this->autoplay): ?> autoplay<?php endif; ?> controls>
          <?php foreach ($this->files as $file): ?>
            <source type="<?= $file->mime ?>" src="<?= $file->path ?>" title="<?= $file->title ?>">
          <?php endforeach; ?>
        </audio>
      <?php endif; ?>
    </li>
    <?php endforeach; ?>
    </ul>
    <?php endif; ?>
    Das ergibt zwar die Ausgabe des Players, aber dem ist keine Quelle zugewiesen (im Quelltext ist leer: src="").

    Wie bekomme ich im Template die Quelldatei, die ich im Attribut Datei ausgewählt habe, in den Player?

    Übrigens, wenn ich die Quelldatei zu Testzwecken hart ins Template reinschreibe
    PHP-Code:
    src="https://meineurl.com/files/audio.mp3" 
    wird diese zwar im Quellcode korrekt ausgegeben und kann über den Inspektor auch in einem neuen Tab geöffnet und nativ im Browser abgespielt werden, aber nicht im Player auf der Homepage...

    Im Endeffekt soll natürlich auch das Array resp. ul und li entfernt werden. Aber das ist im Moment nicht so wichtig.
    Geändert von 4lmnts (05.02.2018 um 10:32 Uhr)

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

    Standard

    Du könntest in dem Template mm_file_player das Contao Template einbinden und die Quelldatei übergeben. Debug dir mal $this->src

    Siehe Handbuch

  3. #3
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Du könntest in dem Template mm_file_player das Contao Template einbinden und die Quelldatei übergeben. . Debüt dir mal $this->src

    Siehe Handbuch
    Du meintest vermutlich mein eigens dafür angelegtes Template mm_attr_file_audio (!?)
    (Du weisst es ja, ich bin PHP-Anfänger) Ich habe nun verschiedenes probiert. Z.B. mit $this->extend und parent:
    PHP-Code:
    <?php $this->extend('ce_player'); ?>
       <?php $this->block('content'); ?>
          <?php $this->parent(); ?>
          <p><?php echo $arrItem['liedtitel']; ?></p>
          <?php foreach ($this->data as $arrItem): ?>
             <?php echo $arrItem['raw']['liedaudio']['path']['0']; ?>
       <?php endforeach; ?>
    <?php $this
    ->endblock(); ?>
    ... damit habe ich zwar den Player von ce_player geerbt, aber natürlich noch keinen Wert an <audio src=""> übergeben. (wäre das aber der richtige Ansatz???)

    Ich bin nochmal einen Schritt als Anfänger zurück gegangen, und wollte mir einfach mal gewisse Werte Ausgeben lassen. Debug ergibt folgendes:
    HTML-Code:
    <!-- DEBUG START 
    <pre>
    Array
    (
        [0] => Array
            (
                [raw] => Array
                    (
                        [id] => 1
                        [pid] => 0
                        [sorting] => 512
                        [tstamp] => 1517930720
                        [liedtitel] => Ob ich will oder nicht
                        [liedbild] => Array
                            (
                                [bin] => Array
                                    (
                                        [0] => ? ?
    ?
    (
                                    )
    
                                [value] => Array
                                    (
                                        [0] => f3bf208d-010a-11e8-a9b7-02000a140028
                                    )
    
                                [path] => Array
                                    (
                                        [0] => files/inhalte/liedersammlung/bilder/IMAGE022.jpg
                                    )
    
                                [meta] => Array
                                    (
                                        [0] => Array
                                            (
                                            )
    
                                    )
    
                            )
    
                        [liedaudio] => Array
                            (
                                [bin] => Array
                                    (
                                        [0] => ?\m?
    ?
    (
                                    )
    
                                [value] => Array
                                    (
                                        [0] => dd5c6de8-010a-11e8-a9b7-02000a140028
                                    )
    
                                [path] => Array
                                    (
                                        [0] => files/inhalte/liedersammlung/audio/victor-torriani_ob-ich-will-oder-nicht.mp3
                                    )
    
                                [meta] => Array
                                    (
                                        [0] => Array
                                            (
                                                [de] => Array
                                                    (
                                                        [title] => 
                                                        [link] => 
                                                        [caption] => 
                                                    )
    
                                            )
    
                                    )
    
                            )
    
                        [liedvideo] => Array
                            (
                                [0] => 
                                [1] => hO7EqVfkwpI
                            )
    
                        [liedinterpret] => Victor Torriani
                    )
    
                [text] => Array
                    (
                        [liedinterpret] => Victor Torriani
                        [liedtitel] => Ob ich will oder nicht
                        [liedbild] => files/inhalte/liedersammlung/bilder/IMAGE022.jpg
                        [liedaudio] => files/inhalte/liedersammlung/audio/victor-torriani_ob-ich-will-oder-nicht.mp3
                        [liedvideo] => hO7EqVfkwpI 
                    )
    
                [attributes] => Array
                    (
                        [liedinterpret] => Interpret
                        [liedtitel] => Titel
                        [liedbild] => Bild
                        [liedaudio] => Audio
                        [liedvideo] => Video
                    )
    
                [html5] => Array
                    (
                        [liedinterpret] => <span class="text">Victor Torriani</span>
                        [liedtitel] => <span class="text">Ob ich will oder nicht</span>
                        [liedbild] => <ul class="file">
    	
    <li class=" first last even">
    					
    						<img src="assets/images/c/IMAGE022-2101daac.jpg" width="1620" height="1095" alt="">					
    	</li>
    </ul>
    
                        [liedaudio] => 
    <p><span> </span><p>
    
                        [liedvideo] => 
    <iframe width="810" height="456" src="https://www.youtube.com/embed/hO7EqVfkwpI?rel=0" frameborder="0" allowfullscreen></iframe>
    
    
                    )
    
                [class] => first last even
                [actions] => Array
                    (
                    )
    
                [jumpTo] => Array
                    (
                        [page] => 53
                        [pageDetails] => Array
                            (
                                [id] => 53
                                [pid] => 52
                                [sorting] => 128
                                [tstamp] => 1516797249
                                [title] => Liedersammlung-Detailseite
                                [alias] => liedersammlung-detailseite
                                [type] => regular
                                [pageTitle] => Liedersammlung-Detailseite
                                [language] => de
                                [robots] => noindex,nofollow
                                [description] => 
                                [redirect] => permanent
                                [jumpTo] => 0
                                [url] => 
                                [target] => 
                                [dns] => 
                                [staticFiles] => 
                                [staticPlugins] => 
                                [fallback] => 
                                [adminEmail] => 
                                [dateFormat] => Y-m-d
                                [timeFormat] => H:i
                                [datimFormat] => Y-m-d H:i
                                [createSitemap] => 
                                [sitemapName] => 
                                [useSSL] => 
                                [autoforward] => 
                                [protected] => 
                                [groups] => 
                                [includeLayout] => 
                                [layout] => 1
                                [mobileLayout] => 0
                                [includeCache] => 
                                [cache] => 
                                [includeChmod] => 
                                [cuser] => 0
                                [cgroup] => 0
                                [chmod] => a:9:{i:0;s:2:"u1";i:1;s:2:"u2";i:2;s:2:"u3";i:3;s:2:"u4";i:4;s:2:"u5";i:5;s:2:"u6";i:6;s:2:"g4";i:7;s:2:"g5";i:8;s:2:"g6";}
                                [noSearch] => 
                                [cssClass] => 
                                [sitemap] => map_never
                                [hide] => 1
                                [guests] => 
                                [tabindex] => 0
                                [accesskey] => 
                                [published] => 1
                                [start] => 
                                [stop] => 
                                [mainAlias] => liedersammlung
                                [mainTitle] => Liedersammlung
                                [mainPageTitle] => Liedersammlung
                                [parentAlias] => liedersammlung
                                [parentTitle] => Liedersammlung
                                [parentPageTitle] => Liedersammlung
                                [folderUrl] => liedersammlung/
                                [rootId] => 1
                                [rootAlias] => embrach
                                [rootTitle] => Embrach
                                [rootPageTitle] => Embrach
                                [domain] => 
                                [rootLanguage] => de
                                [rootIsPublic] => 1
                                [rootIsFallback] => 1
                                [rootUseSSL] => 1
                                [rootFallbackLanguage] => de
                                [trail] => Array
                                    (
                                        [0] => 1
                                        [1] => 52
                                        [2] => 53
                                    )
    
                            )
    
                        [filter] => 
                        [filterSetting] => 
                        [language] => de
                        [label] => Details
                        [params] => Array
                            (
                            )
    
                        [deep] => 
                        [url] => liedersammlung-detailseite.html
                    )
    
            )
    
    )
    </pre>
    
     DEBUG END -->
    Also habe ich mit verschiedenen Befehlen (nicht alle zusammen, sondern einzeln) versucht:
    PHP-Code:
    <?php $audiosrc specialchars($arrItem['raw']['liedaudio']['path']); ?>
    <?php 
    echo $audiosrc?>
    <audio src="$audiosrc"; />
    PHP-Code:
    <audio src="{{file::<?php echo $arrItem['raw']['liedaudio']['path']['0']; ?>}}" >
    PHP-Code:
    <audio src="{{file::<?php echo $arrItem['html5']['liedtitel']; ?>}}" >
    oder
    PHP-Code:
    <p>Hallo Welt! <span><?php echo $arrItem['html5']['liedtitel']; ?> </span></p>
    <p>Hallo Welt! <span><?php echo $arrItem['raw']['liedtitel']; ?> </span></p>
    ... die Werte rauszubekommen (habe dementsprechend auch bei den Rendereinstellungen zw. "-" und "html5" gewechselt).
    Aber da kommt immer nur "Hallo Welt! " raus.

    Was mache ich falsch?

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

    Standard

    Guck mal wie in Contao das Template ce_text das picture-Element einbindet...

  5. #5
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Du meinst so?
    PHP-Code:
    <?php $this->insert('ce_player',$this->src); ?>

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

    Standard

    Im Prinzip ja... oder du kopierst den Krempel einfach in dein Template und tauscht alles „$this...“ aus

  7. #7
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Mmmh, ce_text macht ja grundsätzlich nur das:
    PHP-Code:
    <?php $this->insert('ce_picture',$this->picture); ?>
    Darum habe ich mal im ce_picture nachgesehen. Komplett steht da:
    PHP-Code:
    <?php if ($this->sources): ?>
      <picture>
        <!--[if IE 9]><video style="display: none;"><![endif]-->
        <?php foreach ($this->sources as $source): ?>
          <source srcset="<?= $source['srcset'?>"<?php if (!empty($source['sizes'])) echo ' sizes="' $source['sizes'] . '"'?><?php if (!empty($source['media'])) echo ' media="' $source['media'] . '"'?>>
        <?php endforeach; ?>
        <!--[if IE 9]></video><![endif]-->
    <?php endif; ?>

    <img src="<?= $this->img['src'?>"<?php if ($this->img['srcset'] !== $this->img['src']) echo ' srcset="' $this->img['srcset'] . '"'?><?php if (!empty($this->img['sizes'])) echo ' sizes="' $this->img['sizes'] . '"'; elseif (!$this->sources) echo ' width="' $this->img['width'] . '" height="' $this->img['height'] . '"'?> alt="<?= $this->alt ?>"<?php if ($this->title) echo ' title="' $this->title '"'?><?php if ($this->class) echo ' class="' $this->class '"'?><?= $this->attributes ?>>

    <?php if ($this->sources): ?>
      </picture>
    <?php endif; ?>

    <?php if ($this->sources || $this->img['src'] !== $this->img['srcset']): ?>
      <script>
        window.respimage && window.respimage({
          elements: [document.images[document.images.length - 1]]
        });
      </script>
    <?php endif; ?>
    Da müsste ich jetzt
    PHP-Code:
    $this->img['src'
    mit
    PHP-Code:
    $this->audio['src'
    ersetzen...(?) ... bringt irgendwie nichts.

    Mir würde auch helfen zu verstehen, warum eine einzelne Zeile im Template wie
    PHP-Code:
    <p>Hallo Welt! <span><?php echo $arrItem['row']['liedtitel']; ?> </span></p>
    Nicht die erhoffte Ausgabe ergibt? Da die Variablenausgabe mir ja dies anzeigt:
    HTML-Code:
     [row] => Array
            (
                [id] => 1
                [pid] => 0
                [sorting] => 512
                [tstamp] => 1517930720
                [liedtitel] => Ob ich will oder nicht

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

    Standard

    Zitat Zitat von 4lmnts Beitrag anzeigen
    Mir würde auch helfen zu verstehen, warum eine einzelne Zeile im Template wie
    PHP-Code:
    <p>Hallo Welt! <span><?php echo $arrItem['row']['liedtitel']; ?> </span></p>
    Nicht die erhoffte Ausgabe ergibt?

    wenn dein
    PHP-Code:
    <p>Hallo Welt! <span><?php echo $arrItem['row']['liedtitel']; ?> </span></p>
    keine Ausgabe ergibt, dann prüfe

    a) ob $arrItem['row']['liedtitel'] was beinhaltet

    PHP-Code:
    <p>Hallo Welt! <span><?php var_dump($arrItem['row']['liedtitel']); ?> </span></p>
    bzw. b) ob Dein PHP "funktioniert"

    PHP-Code:
    <p>Hallo Welt! <span><?php echo 'Moin, Moin!'?> </span></p>

    Nachtrag: ähhh....... du hast aber das
    PHP-Code:
    <p>Hallo Welt! <span><?php echo $arrItem['row']['liedtitel']; ?> </span></p>
    nicht in mm_attr_file_wasauchimmer.html5 eingefügt - oder?

  9. #9
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    wenn dein
    PHP-Code:
    <p>Hallo Welt! <span><?php var_dump($arrItem['row']['liedtitel']); ?> </span></p>
    ['row']['liedtitel'] ergibt NULL. -> Dann scheine ich grundlegend was nicht zu verstehen... Ich dachte showTemplateVars() zeigt einem, was überhaupt vorhanden ist... Welche Quellen können mir diese Wissenslücken denn füllen???

    Zitat Zitat von zonky Beitrag anzeigen
    Nachtrag: ähhh....... du hast aber das
    PHP-Code:
    <p>Hallo Welt! <span><?php echo $arrItem['row']['liedtitel']; ?> </span></p>
    nicht in mm_attr_file_wasauchimmer.html5 eingefügt - oder?
    Doch, das ist im eingebundenen mm_attr_file_audio.html5 drin. Ist das falsch?

  10. #10
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Wenn ich das template, das beim attribute file ausgewählt wurde, komplett leere, dann bekomme ich im Frontend die relative URL der in der Maskeneingabe im Backend ausgewählten Datei.
    Bsp.: files/inhalte/liedersammlung/audio/victor-torriani_ob-ich-will-oder-nicht.mp3

    Im Quelltext steht dann ganz einfach:
    HTML-Code:
    <div class="field liedaudio">
       <div class="label">Audio:</div>
       <div class="value"> files/inhalte/liedersammlung/audio/victor-torriani_ob-ich-will-oder-nicht.mp3</div>
    </div>
    Mit der Variablenausgabe
    PHP-Code:
    <?php $this->showTemplateVars(); ?>
    kommt eine riesig lange Liste raus. Die einzigen Felder, die den oben genannten Dateipfad enthalten, ergeben aber mit folgender Abfrage immer NULL:
    PHP-Code:
    <?php var_dump($arrItem['row']['liedaudio']['path']['0']); ?>
    <?php var_dump
    ($arrItem['raw']['path']['0']); ?>
    <?php var_dump
    ($arrItem['files'][0]); ?>
    <?php var_dump
    ($arrItem['src'][0]['file']); ?>
    <?php var_dump
    ($arrItem['path']); ?>
    Dann habe ich höchst wahrscheinlich hier in der Anwendung von ($arrItem[]) irgendwas falsch verstanden? Oder wie muss ich $arrItem[] aufbauen, dass ich den Wert des Feldes ausgegeben bekomme???

    Nochmal zum Aufbau des Metamodels:
    Das Metamodel heisst 'mm_liedersammlung'. Darin befindet sich ein File-Attribut mit dem Spaltennamen 'liedaudio'.

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

    Standard

    mm_attr_file_one_mp3.html5

    PHP-Code:
    <?php
    echo "<!-- DEBUG START \n";
    echo 
    "<pre>\n";
    print_r($this->src);
    echo 
    "</pre>\n";
    echo 
    "\n DEBUG ENDE -->";
    ?>

    <?php if (is_array($this->src)):
    $arrFile  $this->src['0'];
    $strTitle = ($arrFile['title']) ? $arrFile['title'] : (($arrFile['alt']) ? $arrFile['alt'] : $arrFile['file']);
    ?>
    <!-- indexer::stop -->
    <div class="<?= $arrFile['class'?>
        <audio preload="none" controls>
            <source type="audio/mpeg" src="<?= $arrFile['url'?>" title="<?= $strTitle ?>">
        </audio>
    </div>
    <!-- indexer::continue -->
    <?php endif; ?>
    ??

  12. #12
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Hallo zonky

    Danke dir. Das sieht sehr vielversprechend aus. Leider funzt das nicht. Von mir aus müsste noch diese Zeile ausgetauscht werden (anstatt url, file):
    PHP-Code:
    src="<?= $arrFile['file'?>"
    Aber auch das funzt nicht.

    Das ist das ausgegebene HTML, wenn man "Quellcode anschauen" macht:

    HTML-Code:
    <div class="field liedaudio">
    <div class="label">Audio:</div>
    <div class="value"> <!-- DEBUG START 
    <pre>
    Array
    (
        [0] => Array
            (
                [file] => files/inhalte/liedersammlung/audio/victor-torriani_ob-ich-will-oder-nicht.mp3
                [mtime] => 1516800680
                [alt] => Victor-torriani ob-ich-will-oder-nicht
                [caption] => 
                [title] => victor-torriani_ob-ich-will-oder-nicht.mp3
                [metafile] => Array
                    (
                        [title] => 
                        [link] => 
                        [caption] => 
                    )
    
                [icon] => assets/contao/images/iconAUDIO.gif
                [extension] => mp3
                [size] => 512016
                [sizetext] => (500,02 KiB)
                [url] => liedersammlung-detailseite/victor-torriani-ob-ich-will-oder-nicht.html?file=files%2Finhalte%2Fliedersammlung%2Faudio%2Fvictor-torriani_ob-ich-will-oder-nicht.mp3&amp;fileKey=662583301f0a07ded5ee3733e9765254
                [isGdImage] => 
                [isSvgImage] => 
                [class] =>  first last even
            )
    
    )
    </pre>
    
     DEBUG ENDE --> 
    
     
    <!-- indexer::stop --> 
    <div class=" first last even 
        <audio preload="none" controls> 
            <source type="audio/mpeg" src="files/inhalte/liedersammlung/audio/victor-torriani_ob-ich-will-oder-nicht.mp3" title="victor-torriani_ob-ich-will-oder-nicht.mp3"> 
        </audio> 
    </div> 
    <!-- indexer::continue --> 
    </div>
    </div>
    Das scheint ja korrekt zu sein. Aber da ist nicht mal ein audio-Element auf der Webseite zu sehen:
    kein-audio-element.JPG
    Da ist auch kein CSS, das die Darstellung verhindern würde. Habe das hiermit geprüft:
    HTML-Code:
    <div class="  
        <audio preload=" none"="" controls="" style="
        display: block;
        overflow: visible;
        height: 40px;
        width: 200px;
        opacity: 1;
    ">
    Wenn ich im Template nur das audio-tag mit statisch eingetragener source eintrage, funzt das:
    PHP-Code:
    <audio preload="none" controls
        <
    source type="audio/mpeg" src="files/inhalte/liedersammlung/audio/victor-torriani_ob-ich-will-oder-nicht.mp3"
    </
    audio
    ein-audio-element.JPG

    ojeoje :/

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

    Standard

    PHP-Code:
    <?php if (is_array($this->src)):
    $arrFile  $this->src['0'];
    $strTitle = ($arrFile['title']) ? $arrFile['title'] : (($arrFile['alt']) ? $arrFile['alt'] : $arrFile['file']);
    ?>
    <!-- indexer::stop -->
    <div class="<?= $arrFile['class'?>">
        <audio preload="none" controls>
            <source type="audio/mpeg" src="<?= $arrFile['file'?>" title="<?= $strTitle ?>">
        </audio>
    </div>
    <!-- indexer::continue -->
    <?php endif; ?>
    dann so

  14. #14
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Hi zonky

    Da hast du
    PHP-Code:
    src="<?= $arrFile['url'?>"
    mit
    PHP-Code:
    src="<?= $arrFile['file'?>"
    ersetzt, richtig? Das hatte ich schon probiert. Obiges Ergebnis (vom 15.2.)

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

    Standard

    ja und natürlich das vergessene ">

    PHP-Code:
    <div class="<?= $arrFile['class'?>">
    ;-)

  16. #16
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard Tutorial Anleitung mm_attr_file für Audio

    Gerne möchte ich mit euch die Lösung teilen, wie man im Metamodels eine Audio-Datei auswählen und als Player im Frontend abspielen kann:

    Eine neue Template-Datei unter Templates anlegen:
    mm_attr_file_audio.html5

    Inhalt der Datei:

    PHP-Code:
    <?php if (is_array($this->src)): 
    $arrFile  $this->src['0']; 
    $strTitle = ($arrFile['title']) ? $arrFile['title'] : (($arrFile['alt']) ? $arrFile['alt'] : $arrFile['file']); 
    ?> 
    <!-- indexer::stop --> 
    <div class="<?= $arrFile['class'?>"> 
        <audio preload="none" controls> 
            <source type="audio/mpeg" src="<?= $arrFile['file'?>" title="<?= $strTitle ?>"> 
        </audio> 
    </div> 
    <!-- indexer::continue --> 
    <?php endif; ?>

    Mit folgenden zusätzlichen Zeilen am Anfang der Datei könnt ihr die bestehenden Variablen und deren Werte des Metamodels im Quelltext ausgeben lassen:
    PHP-Code:
    <?php 
    echo "<!-- DEBUG START \n"
    echo 
    "<pre>\n"
    print_r($this->src); 
    echo 
    "</pre>\n"
    echo 
    "\n DEBUG ENDE -->"
    ?>
    Nur für Testzwecke drinnen lassen!


    Dann im Metamodels
    ein Attribut: Datei [file] erstellen.

    In den Rendereinstellungen muss das vorhin erstellte Attribut Audio [file] hinzugefügt werden. Bearbeitet dann dieses Attribut und unter dem Dropdown „Angepasstes Template für die Ausgabe“ das mm_attr_file_audio.html5 auswählen.

    Nochmals herzlichen Dank an zonky für seine Hilfe!

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

    Standard

    In Ergänzung dazu:

    * man sollte bei den Einstellungen des Attributes nur die Extension "mp3" zulassen oder das im Template abfangen und nur die Auswahl einer Datei zulassen
    * möchte man das für Video machen, dann mehrere Dateien Zulassen mit "mp4", "aac", "webm", "ogg" usw. und im Template bei "source" die entsprechenden Zuweisungen von "type" je Extension einrichten, ggf. weiteres Attribut für "Poster-Image"

  18. #18
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    In Ergänzung dazu:

    * man sollte bei den Einstellungen des Attributes nur die Extension "mp3" zulassen oder das im Template abfangen und nur die Auswahl einer Datei zulassen
    * möchte man das für Video machen, dann mehrere Dateien Zulassen mit "mp4", "aac", "webm", "ogg" usw. und im Template bei "source" die entsprechenden Zuweisungen von "type" je Extension einrichten
    Danke zonky für die Ergänzungen. Das würde ich auch empfehlen.

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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