web-dev-qa-db-ja.com

メディアアップローダの操作

OK。私ができるかぎりこれを最もよく説明して説明しようとしているので、私と一緒に裸で。とにかく、私は私のプラグインの一部としてデフォルトのメディアアップローダを含めようとしています。

現在、ほとんどの入力フィールドを非表示にして、カスタム送信ボタンの横にタイトルと代替テキストフィールドのみを残すために、フィルタattachment_fields_to_editを使用することに成功しました。クリックすると、このボタンは画像のURLを取得し、それを親ページのdivに配置します。

とにかく、これが私の問題です。アップローダ自体に関するすべては私が望むように機能していますが、現在フィルタは投稿、ページ、メディアライブラリなどでメディアアップローダにそれ自身を適用しています、私は私のプラグイン内に表示する代替フィールドとカスタムボタンだけが欲しいです。しかし他ではありません。

私はすべてを試しましたが、私はそれを働かせることができません。 media-upload.phpのURLに独自のクエリを適用することができたので、代わりにthickboxの[library]タブのプラグイン内に代替フィールドを表示することができましたが、新しい画像をアップロードするとデフォルトフィールドが表示されました。 Wordpressは代替ファイルを使って画像をアップロードします。 async-upload.php.

これが全体の機能です: http://Pastebin.com/5vpecMvL

さまざまな関数に関する情報がいくつかあります。riva_slider_pro_info()は値の配列を返す関数です。 riva_slider_pro_uri( $search )は$ _SERVER ['REQUEST_URI']を取得してそれを変数に格納し、$ searchパラメータを検索してtrueまたはfalseを返します。

メディアアップローダのthickbox内の 'libary'タブで、私はmedia-upload.php URLに追加のクエリを渡したのでtrueを返しています(例えば 'media-upload.php?post_id = 0 $ slideshow = true&type = image&TB_iframe = 1 ')しかし、代わりにasync-upload.phpファイルを使用するため、ユーザーが同じthickbox内に新しい画像をアップロードした直後にfalseを返しています。それがそのように機能させることが可能であるなら、私がこのURLにどのようにクエリを渡すことができるかわからない。

私はこれが従うのが難しいかもしれないことを理解します、しかし私はそれを説明するために全力を尽くしました。私は文字通りこの髪の毛を引き抜いてそれを理解しようとするとばかげた時間を費やしました。任意のコメントや提案、または理想的には解決策を感謝します!前もって感謝します。

4
Matthew Ruddy

私がやってしまったのはjquery clickイベントを介して手動でアップロードされたthickboxの起動でした。それからsetIntervalで私は欲しい部分を隠すことができました。

jQuery(document).ready(関数($){

  $('.specialclass').click(function() { 
       //get post id from somewhere (for me this was the row column
    string = $(this).parents('tr.type-portfolio').attr('id'); 
    if(/post-(\d+)/.exec(string)[1]) post_id = parseInt(/post-(\d+)/.exec(string)[1], 10);

    tbframe_interval = setInterval(function() {

       //remove url, alignment and size fields- auto set to null, none and full respectively                        
       $('#TB_iframeContent').contents().find('.url').hide().find('input').val('');
       $('#TB_iframeContent').contents().find('.align').hide().find('input:radio').filter('[value="none"]').attr('checked', true);
       $('#TB_iframeContent').contents().find('.image-size').hide().find('input:radio').filter('[value="full"]').attr('checked', true);

    }, 2000);

    if(post_id) tb_show('', 'media-upload.php?post_id='+post_id+'&type=image&tab=library&TB_iframe=true'); //tab sets the opened TB window to show library by default

    return false;
   });
});
1
helgatheviking