Markieren, wenn Youtube-Video in Node
am 09.03.2008 - 09:09 Uhr in
Hallo,
ich würde gerne schon im Anrisstext irgendwo deutlich machen, wenn eine Node ein eingebettetes Youtube-Video beinhaltet, zB durch ein Icon. Hat jemand eine Idee, wie ich das am besten überprüfen kann? Den gesamten $content nach dem String "youtube" parsen, ist glaub ich eine blöde Idee.
- Anmelden oder Registrieren um Kommentare zu schreiben

Ich hab's jetzt so
am 29.03.2008 - 07:27 Uhr
Ich hab's jetzt so gelöst:
<?php
if (substr_count($content, "http://www.youtube.com/v")>=1) {
echo "<span class="includes_youtube floatright"> </span>";
}
?>
Blöderweise kann es aber sein, dass das Video nicht in den Teaser-Bereich fällt und dann wird nichts angezeigt. Weiss jemand eine Lösung? Dass ich zB nicht $content überprüfe, sondern etwas anderes?
Wie kommt denn ein
am 29.03.2008 - 12:36 Uhr
Wie kommt denn ein Youtube-Video in den Inhalt einer Node? Wie genau fuegst Du das Video ein?
Wenn man das weiss kann man auch nach einer Loesung sehen um im Teaser was anzuzeigen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Ich benutze TinyMCE mit
am 29.03.2008 - 12:54 Uhr
Ich benutze TinyMCE mit einem Plugin. Im Inhalt der Node steht dann so was hier:
<object class="youtube" type="application/x-shockwave-flash" style="width: 425px; height:350px;" data="http://www.youtube.com/v/abcdefgh"><br />
<param name="movie" value="http://www.youtube.com/v/abcdefgh" />
<param name="wmode" value="transparent" />
<!--<embed src="http://www.youtube.com/v/abcdefgh" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed>-->
</object>
Momentan überprüfe ich wie gesagt, ob der $content den substring
http://www.youtube.com/v/enthält. Aber wenn es nur ein Teaser ist, hilft das wohl nicht weiter.optionales Extrafeld zum Einfuegen von Videocode
am 29.03.2008 - 15:04 Uhr
Warum definierst nicht mit CCK ein optionales Extrafeld zum Einfuegen von Videocode. Dann kann man pruefen ob dieses Feld Inhalt hat. Wenn ja, gibst Du im Teaser den Zusatz aus.
Ausserdem koennte man mit CCK field permissions zusaetzlich steuern wer dieses Feld benutzen darf.
Bei dieser Vorgehensweise benoetigst Du allerdings einen separaten Inhaltstyp zum Erstellen von Inhalten mit youtube Videos. Weiterhin musst Du fuer diesen Inhaltstyp mit einem Template arbeiten.
Im Template gibst Du den Inhalt von Teaser und Body getrennt aus. Bei der Ausgabe des Teaserinhaltes pruefst Du ob das Feld mit dem Viedocode Inhalt hat. Wenn ja wird der Inhalt des Teaser entsprechend Deinen Vorstellungen erweitert.
Der Inhalt des Teaser steht im Nodeobjekt zur Verfuegung.
Wenn Du das Template fuer den Nodetyp erstellt hast mach mal folgendes:
print '<pre>';print_r($node);
print </pre>';
Mit dieser Ausgabe kannst Du gut erkennen wie Du an den Teaserinhalt im Nodeobjekt herankommst um ihn zu aendern und veraendert auszugeben.
Mit
$node->teaserund$node->bodykann man im Template Teaser und Body direkt ansprechen.Tipp:
Verwende eventuell
check_markup($node->teaser);bzw.check_markup($node->body);um den Teaser bzw. den Body auszugeben.-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Danke. Die Seite ist bereits
am 29.03.2008 - 21:23 Uhr
Danke. Die Seite ist bereits im laufenden Betrieb und es sind auch schon Videos eingetragen. Ich möchte es so lassen und nur am Theme rumschrauben. Mein Problem ist also, dass ich nur den Teaser angezeigt kriege. Ich möchte aber überprüfen, ob in der Node (im Body) irgendwo der Youtube-String versteckt ist. Wenn ich auf der Teaser Seite dprint_r($node) ausgeben lasse, ist der Youtube-String in keiner Variable enthalten.
Hier sind mal 4 Varianten:
<?php
if (substr_count($content, "http://www.youtube.com/v")>=1)
if (substr_count($node->body, "http://www.youtube.com/v")>=1)
if (substr_count($node->body['content'], "http://www.youtube.com/v")>=1)
if (substr_count($node->body['view'], "http://www.youtube.com/v")>=1)
?>
1. liefert das korrekte Ergebnis, wenn der Youtube-Link im Teaser-Bereich liegt, sonst nicht.
2. - 4. liefern gar nichts.
Mit $node->content['body']['#
am 30.03.2008 - 06:00 Uhr
Mit
$node->content['body']['#value']kann ich offensichtlich auf den Body-Inhalt zugreifen. Aber vom Teaser aus krieg ich auch da nichts angezeigt. Nur bei der Vollansicht. Muss ich da irgendwie den Umweg über die nid gehen?
Ich hol den Thread noch mal
am 23.04.2008 - 06:40 Uhr
Ich hol den Thread noch mal hoch, weil ich immer noch keine Lösung gefunden habe. Ich möchte ja in der Teaser-Sicht schon überprüfen, ob in der Vollansicht der String "youtube/watch?v" oder so vorkommt.