Contao-Camp 2024
Ergebnis 1 bis 27 von 27

Thema: Umwandeln eines Youtube-Links?

  1. #1
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard Umwandeln eines Youtube-Links?

    Hi zusammen,

    ich habe jetzt anhand der Wiki-Anleitung das Grundgerüst verstanden.
    Jetzt würde ich gerne noch etwas mehr rumspielen, kann mir folgende Frage aber nicht beantworten:

    Wie kann ich einen eingesandten Link von Youtube als Video im FE darstellen?

    Danke im Voraus.

    Preetz

  2. #2
    Contao-Fan Avatar von Grossvater
    Registriert seit
    20.02.2013.
    Beiträge
    509

    Standard

    Meinst du das es als Video angezeigt wird?
    Geändert von Grossvater (18.12.2013 um 13:34 Uhr)

  3. #3
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Ja genau.

    Man sendet nur den Link ein und später wird im FE dieser Link als Video dargestellt.

  4. #4
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Vielleicht hilft Dir dies hier etwas weiter:
    http://www.youtube.com/watch?v=kCvlEAvqbq4

  5. #5
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Danke!

    In deinem Video hast du aber ein anderes Template für die Augabe als ich es habe.
    Wie bekomme ich dieses Template?

    Preetz
    Angehängte Grafiken Angehängte Grafiken

  6. #6
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Ist mir gar nicht aufgefallen, daß die nicht im MM-core enthalten ist. Ist also nur in der Demo enthalten unter:
    Code:
    \system\modules\mm_demo_movie_database\data\templates
    http://now.metamodel.me/a-movie-database/en/
    Da gibt's auch die mm_attr_text_asin...-Templates für den Amazon-Katalog
    http://www.youtube.com/watch?v=lBPCtu-HtS4
    Könnte man ruhig in das MM-core reinpacken...

  7. #7
    Contao-Nutzer
    Registriert seit
    19.12.2013.
    Beiträge
    96

    Standard

    Hier steht, wie du dein eigenes Template schreibst, anhand deiner Attribute:
    http://de.contaowiki.org/MetaModels_...enes_Templates

    Einen YouTube Link legst du z.B als Text Attribut ( z.B video ) an. Der User muss dann im BE nur die YouTube ID angeben.

    Im FE Template gibst du dann folgendes aus

    PHP-Code:
    <?php if ($arrItem['text']['video']) : ?>
    <iframe id="player" type="text/html" width="650" height="400"
      src="http://www.youtube.com/embed/<?php echo $arrItem['text']['video']; ?>?enablejsapi=1&wmode=opaque"
      frameborder="0">
    </iframe>
    <?php endif; ?>

  8. #8
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Hi und Danke,

    ich glaube ich bin auf dem falschen Weg!

    Ich habe jetzt den Code unterhalb des vorhandenen Teplate "metamodel_prerendered.html5"
    eingefügt. Es ändert sich aber nix :-(

    PHP-Code:
    <?php $strRendersettings = ($this->settings)? 'settings' 'view'?>
    <?php 
    if (count($this->data)): ?>

    <div class="layout_full">

    <?php foreach ($this->data as $arrItem): ?>
    <div class="item <?php echo $arrItem['class']; ?>">

    <?php foreach ($arrItem['attributes'] as $field => $strName): ?>
    <?php 
    if (($strValue $arrItem[$this->getFormat()][$field]) || ($strValue $arrItem['text'][$field])): ?>
    <div class="field <?php echo $field?>">
        <?php if(!$this->$strRendersettings->get('hideLabels')): ?>
            <div class="label"><?php echo sprintf($GLOBALS['TL_LANG']['MSC']['field_label'], $strName); ?></div>
        <?php endif; ?>
        <div class="value"> <?php echo $strValue?></div>
    </div>
    <?php endif; ?>
    <?php 
    endforeach; ?>
    <?php 
    if ($arrItem['jumpTo']['deep']): ?>
    <a href="<?php echo $arrItem['jumpTo']['url']; ?>"><?php echo $this->details?></a>
    <?php endif; ?>
    </div>
    <?php endforeach; ?>
    </div>
    <?php else: ?>
    <p class="info"><?php echo $this->noItemsMsg?></p>
    <?php endif; ?>

     <?php if ($arrItem['url']['link']) : ?>
    <iframe id="player" type="text/html" width="650" height="400"
      src="http://www.youtube.com/embed/<?php echo $arrItem['url']['link']; ?>?enablejsapi=1&wmode=opaque"
      frameborder="0">
    </iframe>
    <?php endif; ?>
    Kann mir jamend helfen?

    Danke Preetz

  9. #9
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Nur um sicher zu gehen:
    BE, dann "neues Template laden", umbenennen, ändern und anschließend in den Rendereinstellungen auswählen.

  10. #10
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    achso!
    Öhm, ich habe jetzt das ganze ohne umbennen gemacht.
    Das geht also nicht?

  11. #11
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Zitat Zitat von KlausGrenoble Beitrag anzeigen
    Nur um sicher zu gehen:
    BE, dann "neues Template laden", umbenennen, ändern und anschließend in den Rendereinstellungen auswählen.
    Auch das hat leider nix geändert:
    http://videos.webmedia-kiel.de/music/easy.html

    Wird einfach als Link angezeigt. Oder muss ich als Atribut text nehmen?

  12. #12
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Bei PHP kann ich Dir leider nicht helfen.

  13. #13
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Ich noch einmal. Selbst am heiligen Abend lässt es mir keiner Ruhe ;-)

    Wird die "Umwandung" der URL von Youtube in eine direkte Darstellung eines Videos im Template "metamodel_prerendered.html5" umgesetzt oder muss ich das im Template "mm_attr_url" machen?

    Danke Preetz

  14. #14
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Meiner Meinung in einem abgeänderten mm_attr_url.html5

    Das mm_attr_url_youtube.html5 sieht so aus:
    Code:
    <?php $arrValues = deserialize($this->raw); 
    
    $videoId=$this->replaceInsertTags($arrValues[1]);
    $comment=$arrValues[0];
    if (strlen($videoId)):
    ?>
    <iframe width="664" height="315" src="http://www.youtube.com/embed/<?php echo $videoId; ?>?rel=0" frameborder="0" allowfullscreen></iframe>
    <?php endif; ?>

  15. #15
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Danke Klaus, dass funktioniert aber leider nicht.

    Hier habe ich unter Url das neue Template ausgewählt und den Cache gelöscht.
    Angehängte Grafiken Angehängte Grafiken

  16. #16
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    was funktioniert gemau nicht?

  17. #17
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Es wird weiterhin nur der YouTube Link angezeigt, nicht aber das eingebettete youtube Video.
    Siehe auch meinen Link weiter oben.

  18. #18
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Da kann aber auch was schief gelaufen sein was du kontrollieren musst:

    • Welches Template hast du genau bearbeitet und wird dieses auch wirklich im Frontend ausgegeben? Einfach mal in dem Attribut Template ein "hallo" reinschreiben
    • Wenn du das "html5" Attribut Template bearbeitet hast, muss auch in dem metamodel_.. Template das HTML5 ausgegeben werden
    • Welches Template hast du im Rendersetting ausgewählt


    Ich glaube eins der Punkte wirds sein. An MetaModels kann ich keinen Fehler in dieser Funktion entdecken, da ich selber diese Varianten auch nutze.

    Und wenn du keine Lust mehr hast, dann machs dir doch ganz einfach und bearbeite nicht das Attribut Template sondern nimm im metamodel_... Template den RAW Wert und bau dir dort das Youtube Video zusammen. Die Attribut Templates zu bearbeiten ist schon was für erfahrene Anwender.

  19. #19
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Danke für die Tipps. War doch relativ einfach ;-)
    Hatte vergessen das entsprechende Template auszuwählen.

    Ich benötige noch einmal ein Denk-Anstoß.
    http://videos.webmedia-kiel.de/

    Ich habe hier als Beispiel von Youtube die "mini-Vorschau-Videos" als Bild eingebunden.
    So soll mein Portal für Tischtennis-Videos ebenfalls aussehen.

    Wie kann ich aber ein Vorschau-Bild verlinken, dass auf die Detailseite des entsprechenden Videos zeigt?

  20. #20
    Contao-Nutzer
    Registriert seit
    04.04.2012.
    Beiträge
    143

    Standard

    Indem du dein Template anpasst …

    HTML-Code:
    <a href="<?php echo $arrItem['jumpTo']['url']; ?>"><?php echo $arrItem['html5']['bild']; ?></a>
    "bild" wäre in diesem Fall dein Attribute für dein Vorschaubild

  21. #21
    Contao-Nutzer
    Registriert seit
    19.12.2013.
    Beiträge
    96

    Standard

    Zitat Zitat von Preetz Beitrag anzeigen
    Danke für die Tipps. War doch relativ einfach ;-)
    Hatte vergessen das entsprechende Template auszuwählen.

    Ich benötige noch einmal ein Denk-Anstoß.
    http://videos.webmedia-kiel.de/

    Ich habe hier als Beispiel von Youtube die "mini-Vorschau-Videos" als Bild eingebunden.
    So soll mein Portal für Tischtennis-Videos ebenfalls aussehen.

    Wie kann ich aber ein Vorschau-Bild verlinken, dass auf die Detailseite des entsprechenden Videos zeigt?
    Du kannst Thumbnails des YouTube Videos ausgeben:

    http://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
    http://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
    http://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
    http://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg

    Das Thumbnails verlinkst du dann entsprechend auf dein Video.

    Hier einmal die Antwort auf stack: http://stackoverflow.com/questions/2...ng-youtube-api

    Bei mir sieht das ganze dann im Template so aus:
    Das Attribut Video gibt nur die ID des Videos aus, die ich im BE angebe.

    PHP-Code:
    <?php if ($arrItem['text']['video']) : ?>
    <img width="240" height="140" src="http://img.youtube.com/vi/<?php echo $arrItem['text']['video']; ?>/hqdefault.jpg" />
    <?php endif; ?>
    Willst du das Bild verlinken schreibst du dann:


    PHP-Code:
    <?php if ($arrItem['text']['video']) : ?>
       <a href="<?php echo $arrItem['jumpTo']['url']; ?>"
         <img width="240" height="140" src="http://img.youtube.com/vi/<?php echo $arrItem['text']['video']; ?>/hqdefault.jpg" />
       </a>
    <?php endif; ?>
    Geändert von geheimgirl (27.12.2013 um 14:01 Uhr)

  22. #22
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Ich habe mir das Thema aufmerksam durchgelesen, habe aber immer noch das Problem, daß ich für das Attribut "Youtube ID", das ich als "Text" angelegt habe, in den Rendereinstellung "FE Listenansicht" nicht mein angepasstes Template auswählen kann.

    PHP-Code:
    <?php if ($arrItem['text']['video']) : ?> 
    <iframe id="player" type="text/html" width="650" height="400" 
      src="http://www.youtube.com/embed/<?php echo $arrItem['text']['video']; ?>?enablejsapi=1&wmode=opaque" 
      frameborder="0"> 
    </iframe> 
    <?php endif; ?>
    Ich sehe wie man auf dem Screenshot sehen kann, ich nur ein Template, daß ich auswählen kann, und das heißt "mm_attr_text (Globaler Gültigkeitsbereich)".

    1mm.jpg

    Muß das angepasste Template überhaupt direkt in dem Ordner /system/modules/metamodelsattribute_text/templates liegen, oder kann man es auch einfach über im Backend über den Menüpunkt "Templates" im Backend anlegen, und direkt /templates ablegen? EDIT: Habe gerade gelesen, das man in den /templates anlegen sollte. Das änder aber nichts daran, daß ich es nicht auswählen kann.
    Geändert von stephangunnar (25.04.2014 um 23:01 Uhr)
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  23. #23
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Ich konnte es jetzt mit den folgenden Schritten selber lösen.

    1. Unter MetaModels > MetaModels > Attribute für MetaModels die Anlage eines Attributes "URL" das ich "youtube" genannt habe.
    2. Unter Layout > Templates die Anlage eines neuen Templates "mm_attr_url_youtube" mit dem folgenden Code angelegt.

    PHP-Code:
    <?php $arrValues deserialize($this->raw); 

    $videoId=$this->replaceInsertTags($arrValues[1]);
    $comment=$arrValues[0];
    if (
    strlen($videoId)):
    ?>
    <iframe width="664" height="315" src="http://www.youtube.com/embed/<?php echo $videoId?>?rel=0" frameborder="0" allowfullscreen></iframe>
    <?php endif; ?>
    3. Unter MetaModels > MetaModels > Render-Einstellungen für MetaModels > Attributeinstellungen > Attribut "youtube" > Feld "Angepasstes Template für die Ausgabe" habe ich das unter Templates angelegte neue Template ausgewählt.
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

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

    Standard iframe leer

    Hallo, der Beitrag mit der Templateanpassung von Klaus war schon mal sehr gut.
    Aber das seltsame ist, dass im HTML Markup mein iframe (body und head tags) leer ist.
    metamodels-url-youtube-empty-iframe.JPG
    HTML-Code:
    <div class="field liedvideo">
       <div class="label">Video:</div>
          <div class="value">  
             <iframe src="http://www.youtube.com/embed/MefeqhnjNvI?rel=0&amp;showinfo=0" allow="autoplay; encrypted-media" allowfullscreen="" width="560" height="315" frameborder="0">
                #document
                   <html>
                      <head></head>
                      <body></body>
             </iframe>
          </div>
       </div>
    </div>
    Hat jemand eine Ahnung, woran das liegen könnte?

    Der Link zum Youtubevideo stimmt und kann auch geöffnet und abgespielt werden.

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

    Standard

    Hast du deine Website über HTTPS geöffnet? Wenn ja, dann musst du auch die YouTube Iframe URL auf https:// oder zumindest // ändern.

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

    Standard

    Danke spooky. Das war das einzige Problem! Wusste nicht, dass das zusammenhängt...

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

    Standard

    Die Konsole im Browser sollte dazu was angezeigt haben...

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
  •