• 29-06-2010, 18:21:22
    #1
    Üyeliği durduruldu
    Facebook kaynaklı videoları benim gibi birçok arkadaş Pro Player eklentisini kullanarak sitesine eklemiştir. Fakat 15 hazirandan sonra videolar açılmamaya başladı. Embed kodunu direkt yapıştırarak videoları ekleyenler bir çözümünü buldu ve videoları kurtarmayı başardı fakat wordpress kullananlar için durum değişik. BU KONUDA EuroTurk arkadaşın paylaştığı paket üzerinden bir çözüm üretmeye çalıştım. Paket içerisinden çıkan player.swf ve skin dosyası olan modeius.swf dosyalarını proplayer plugin'i içindekilerle değiştirdim. Daha sonra pro-player.php dosyasını açtım ve eklenen videoları sayfaya yazdıran kodları yeni embed kodlarıyla değiştirdim.

    Orijinali şöyle idi:

    			function constructSnippet($attrs, $content = '') {
    				$configurationBuilder = new ConfigurationBuilder($attrs);
    				$configuration = $configurationBuilder->build();
    				
    				$flashvars = $configuration->getFlashVars();
    				$params = $configuration->getParams();
    				$others = $configuration->getOthers();
    				
    				$id = $others[Constants::$ID_KEY].uniqid('pp-single-');
    				
    				$result  = '<!-- ProPlayer by Isa Goksu -->';
    				$result .= '<div name="mediaspace" id="mediaspace"><div class="pro-player-container" width="'.$flashvars[Constants::$WIDTH_KEY].'px" height="'.$flashvars[Constants::$HEIGHT_KEY].'px"><div id="pro-player-'.$id.'"></div></div></div>'.$this->NEW_LINE;
    				$result .= '<script type="text/javascript" charset="utf-8">'.$this->NEW_LINE;
    				
    				$result .= $this->getFlashVars($flashvars, $id, $content);
    				$result .= $this->getParams($params);
    				
    				$result .= 'var attributes = {'.$this->NEW_LINE;
    				$result .= 'id: "obj-pro-player-'.$id.'",'.$this->NEW_LINE;
    				$result .= 'name: "obj-pro-player-'.$id.'"'.$this->NEW_LINE;
    				$result .= '};'.$this->NEW_LINE;
    				
    				$result .= 'swfobject.embedSWF("'.$this->getPlayer().'", "pro-player-'.$id.'", "'.$flashvars[Constants::$WIDTH_KEY].'", "'.$flashvars[Constants::$HEIGHT_KEY].'", "9.0.0", false, flashvars, params, attributes);';
    				
    				$result .= '</script>'.$this->NEW_LINE;
    				$result .= $others[Constants::$AD_SCRIPT_KEY];
    				
    				return $result;
    			}
    Böyle değiştirdim:

    			function constructSnippet($attrs, $content = '') {
    				$configurationBuilder = new ConfigurationBuilder($attrs);
    				$configuration = $configurationBuilder->build();
    				
    				$flashvars = $configuration->getFlashVars();
    				$params = $configuration->getParams();
    				$others = $configuration->getOthers();
    				
    				$id = $others[Constants::$ID_KEY].uniqid('pp-single-');
    				
    				$result  = '<!-- ProPlayer by Isa Goksu -->';
    				$result .= '<object classid="clsid:D27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="500" height="362" id="Untitled-1" align="middle">'.$this->NEW_LINE;
    				$result .= '<param name="allowScriptAccess" value="sameDomain" />'.$this->NEW_LINE;
    				$result .= '<param name="allowFullScreen" value="true" />'.$this->NEW_LINE;
    				$result .= '<param name="movie" value="http://www.site.com/wp-content/plugins/proplayer/players/player.swf?file=VIDEO&amp;skin=http://www.site.com/wp-content/plugins/proplayer/players/skins/modieus.swf&amp;" />'.$this->NEW_LINE;
    				$result .= '<param name="quality" value="high" />'.$this->NEW_LINE;
    				$result .= '<param name="bgcolor" value="#ffffff" />'.$this->NEW_LINE;
    				$result .= '<embed src="http://www.site.com/wp-content/plugins/proplayer/players/player.swf?file=VIDEO&amp;skin=http://www.site.com/wp-content/plugins/proplayer/players/skins/modieus.swf&amp;" quality="high" bgcolor="#ffffff" width="500" height="362" name="mymovie" align="middle" allowFullScreen="true" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />'.$this->NEW_LINE;
    				
    				$result .= '</object>'.$this->NEW_LINE;
    				$result .= $others[Constants::$AD_SCRIPT_KEY];
    				
    				return $result;
    			}
    Bunu yaptıktan sonra daha önce eklediğim tüm videoların player'larının kaynak kodları yeni embed koduna göre olmuş oldu. Fakat

    [proplayer]...[/proplayer]
    tagını kullanarak eklediğim video url'lerini çağırmayı bir türlü yapamadım. Bunun için bir değişken belirtilmemiş eklentide. Abartısız söylüyorum 5 buçuk saattir uğraşıyorum ama beceremedim hala.

    Bu taglar arasına eklediğim .mp4 uzantılı url'leri nasıl çağırabilirim? Koddaki VIDEO yazan yere bu url'leri çağırabilecek bir değişken tanımlasak bütün videolar sorunsuz çalışacak.

    Veritabanından video.ak.facebook diye arattım ve eklediğim tüm url'ler wp_postmeta tablosu içerisinde:



    pro-player.php dosyası içerisine bir SQL sorgusu tanımlayıp bu resimde gözüken url'leri çekip daha sonra kod içerisinde yazdırabilir miyiz?
  • 29-06-2010, 18:44:33
    #2
    Üyeliği durduruldu
    ne facebook muş be ortada site kalmadı... ama az kaldı başlangıcı resmen bütün video siteleri + film siteleri gidecek inş. gitmezde...

    ben eklentiyi hiç kullanmadım o yüzden sadece ön yargıda bulunim dedim... pro player kendi default haliyle kendisi çıkarıyormu ? ekrana playeri oynatmasın ama çıkarıyormu eğer çıkarıyorsa değiştirdiğin kodda çıakrmıyorsa yanlış yer değiştirmiş olmalısın...
  • 29-06-2010, 18:48:33
    #3
    Üyeliği durduruldu
    Player gözüküyor sayfada, ama dediğim gibi url'yi çekemediğim için çalışmıyor player. Url'yi nasıl çekebiliriz bilmek istediğim o.
  • 29-06-2010, 19:14:01
    #4
    Orjinalinde aslında çekiyordu o şekilde. Ama yenisini editleyince çekemiyor url yi. Bir herde hata var ama nerde . (Bu sorunun çözülmesi eminim çoğu kişinin işine yarayacaktır.)
  • 29-06-2010, 19:51:45
    #5
    Üyeliği durduruldu
    $result .= $this->getFlashVars($flashvars, $id, $content);
    URL'yi çeken satır aslında bu ama sadece url değil, yükseklik genişlik gibi daha bir sürü değeri de çekiyor, sadece url olarak vermiyor yani. Database'den belirttiğim yerden çekmek bence daha mantıklı olur, ama SQL komutları hakkında hiçbir bilgim yok.
  • 29-06-2010, 20:00:03
    #6
    veritabanınıza dokunmayın derim

    functions.php de contente bir fitre ekleyin mesela bir (regex)

    [pro][/pro] arasında kalan kodlardan video urlyi çekip önüne arkasına ek satırlar yazarak başka playera aktarabilirsiniz

    tabi bu facebook olayını bilmiyorum oynatırmı oynatmazmı denemeden bilemeyiz
  • 29-06-2010, 20:21:56
    #7
    Üyeliği durduruldu
    Arkadaşlar hadi kodlarla birton içeriği değiştirmeyi birakalım'da, r10 da çok ama çok php uzmanının olduğunu biliyoruz.

    Bu face sorununu Proplayer eklentisi ile çözemezmiyiz ?

    Mesela proplayer da eklediğimiz içerik aşağıdaki gibi ekleniyor :

    [pro-player width='530' height='253' type='video']http://facevideolinki.mp4[/pro-player]

    Peki Çözüm olarakta bazı arkadaşlar çözüm olarak şunu demişler :

    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="535" height="450" id="Untitled-1" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="allowFullScreen" value="true" />
    <param name="movie" value="player-viral.swf?file=http://video.ak.facebook.com/cfs-ak-snc4/33293/889/115414948503000_549.mp4" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <embed src="player-viral.swf?file=http://video.ak.facebook.com/cfs-ak-snc4/33293/889/115414948503000_549.mp4" quality="high" bgcolor="#ffffff" width="500" height="450" name="mymovie" align="middle" allowFullScreen="true" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
    </object>

    Çözümü yukarıdaki gibi verilmiş. Konu burası

    Peki, Madem çözüm bu, Bu kodları Proplayer'a ekleyemez miyiz ?

    Yani Şuan içerik eklendiğinde :

    [pro-player width='530' height='253' type='video']http://facevideolinki.mp4[/pro-player]

    Yukarıdaki gibi ekleneceği yere, Aşağıdaki gibi eklense de embed'i v.s göstermese olmaz mı ?

    [pro-player]<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="535" height="450" id="Untitled-1" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="allowFullScreen" value="true" />
    <param name="movie" value="player-viral.swf?file=http://video.ak.facebook.com/cfs-ak-snc4/33293/889/115414948503000_549.mp4" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <embed src="player-viral.swf?file=http://video.ak.facebook.com/cfs-ak-snc4/33293/889/115414948503000_549.mp4" quality="high" bgcolor="#ffffff" width="500" height="450" name="mymovie" align="middle" allowFullScreen="true" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
    </object>[/pro-player]

    Not : Sadece bir düşüncedir. Olur veya olmaz bilmiyorum. Sonuçta 1 elin nesi var, 2 elin sesi var

    Yeterki bu sorun çözülsün.

    R10.Net 'e güveniyoruz
  • 29-06-2010, 21:07:41
    #8
    Üyeliği durduruldu
    Benim yaptığım da tam senin dediğin zaten. Ek bir BBC tagı ekleyerek embed kodlarını otomatik olarak içeriğe ekleyebiliriz ama bu sonrası için elbette, proplayer standart tagıyla eklenmiş binlerce videoyu kurtarmaya çalışıyoruz ilk önce. Şu file değerini çağırmayı bir bulabilsek

    Aklıma bir fikir daha geldi:

    [proplayer]http://abc.com/video.mp4[/proplayer]
    Videoları bu şekilde eklediysek veritabanında toplu veri değişikliğine giderek proplayer açılış tagı yerine embed kodunun ilk kısmını, yani file= kısmına kadar olan yeri, proplayer kapanış tagını da embed kodunun video url'sinden sonra kalan kısmı ile değiştirerek yapabiliriz. Ama sorun şu ki, video url'si embed kodu içerisinde 2 defa geçiyor, bu da işi bozuyor.

    Benden bu kadar valla, daha fazla birşey gelmiyor aklıma.
  • 29-06-2010, 21:25:40
    #9
    temanızın functions.php dosyasına ekleyiniz.

    dediklerinizi yaparda işe yararmı bilmem (not: flash oynatıcı adı player.swf olmalıdır)

    function face_yap_bi_kiyak($content) {
    $kastir_niphell = $content;
    preg_match_all('#\[pro-player(.*?)\](.*?)\[/pro-player\]#si', $kastir_niphell, $varmi_len);
    for($i=0;$i<count($varmi_len[0]);$i++){
    $artiz_bazarda = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="535" height="450" id="Untitled-1" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="allowFullScreen" value="true" />
    <param name="movie" value="player.swf?file='.$varmi_len[2][$i].'" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <embed src="player.swf?file='.$varmi_len[2][$i].'" quality="high" bgcolor="#ffffff" width="500" height="450" name="mymovie" align="middle" allowFullScreen="true" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
    </object>';
    
    $gozun_sevem = str_replace($varmi_len[0][$i],$artiz_bazarda,$kastir_niphell);
    }
    return $gozun_sevem;
    }
    
    add_filter('the_content', 'face_yap_bi_kiyak');