2012-01-09 7 views
0

私は?私はdrupalを使用しているので(私はdrupalまたは静的なサイトに関係ないと思うが)。カラーボックスのURLのParams for Facebookのように

私が持っている各メディアコンテンツタイプは、ローカルホスト/メディア/ビデオのパスを必要ですか?オープン=?cbox10

自動エイリアス設定モジュールモジュールは、各メディア資産のコンテンツタイプのためにこれを持っています。 メディア/ビデオ?オープン=?CBOX [NID]

は、ノードのURLは、私が間違っているが、私は、私は今、PHPを使用して、URLをデコード/エンコードする必要があると考えているなら、私に教えてください http://localhost/media-gallery/images%3Fopen%3D%3Fcbox14

のように見えます。これらのノードのURLのそれぞれは、ビデオページのカラーボックスを直接開く必要があります。

私はurlEncodeComponentを調べていましたが、実装方法がわかりませんでした。私はそれが私のpage.tpl.phpにあり、それらの文字が存在するときはいつでもデコードされるだろうと想像します。

URLの値をjqueryまたはPHP内でエンコードすることはできますか?

私が利用していないパス自動モジュールの知識を持っている人は、私に教えてください。私は既にエイリアシングされたURLの特定の文字を置き換えないようにしようとしましたが、それはまだデコードされているので、期待通りに機能しません。

ページのユニークなコンテンツごとに、開いているグラフタグへの正しいリンクを渡すために、このURLをエンコードする必要があります。 ??メディア/動画にエンコードする必要が

<meta property="og:url" content="http://localhost/media- 
gallery/images%3Fopen%3D%3Fcbox14" /> 

= cbox14

jqueryのオープンは、直接オープンカラーボックスユニークなアセットIDに従ってする:

は現在、この各ビデオアセットページの表示を持っています

// Colorbox direct linking 
    // Get the cb id in url or set false if not found 
    var colorboxId = (window.location.href.indexOf('open=')==-1) ? 
     false : 
     window.location.href.slice(window.location.href.indexOf('open=') + 'open='.length + 1).split('&')[0]; 

    // Instantiate all colorboxes on the page 
    $(".colorbox-inline").colorbox(); 

    // If id of colorbox was sent in url, open it now 
    if(colorboxId !== false) { 
    $("#" + colorboxId).colorbox({open:true}); 
    } 

現在テスト...は動作しません:

<script> 

$(document).ready(function() { 
    var ogurl = $('meta[property="og:url"][content]').prop("content"); 

     $(ogurl).prop("content", 
      decodeURIComponent(ogurl); 
}); 


    </script> 

これは動作しますが、Facebookのog:urlがデコードされたURLを取得できるように、URLが正しくエンコードされるようにするにはどうすればよいですか。

ありがとうございます!

+0

考えている人はいますか? – arkjoseph

+0

ありがとう、非常に明確です。これをより動的にする方法を教えてください。新しいページが追加されるたびに新しいjを追加する必要はありません。私はvarにmetaプロパティog urlを割り当てようとします。絶対パスの代わりに、varが代わりになります。 – arkjoseph

答えて

1

これをPHPで書いているのであれば、それをPHPでもうまく解読できます。

echo '<meta property="og:url" content="' . urldecode("http://localhost/media- 
gallery/images%3Fopen%3D%3Fcbox14") . '" />'; 

そうでない場合はjQueryを使用しますが、私はFacebookがあまりにもJavaScriptを実行して、あなたはおそらくのためにそれを修正する必要があるので、これを行うことができるかはわからない(例:イベントをクリックしてください)。

$('meta[property="og:url"][content]').each(function() { 
    $(this).prop("content", decodeURIComponent($(this).prop("content"))); 
}); 
+0

テンプレートヘッドの上にPHPを実装するにはどうしたらいいですか? – arkjoseph

+0

CMSに依存してみてください。 – noob

関連する問題