মিডিয়া মডেল বাক্সে ফিল্টার ফাংশন যুক্ত করুন


12

আমি মিডিয়া মডেলটি প্রসারিত করার চেষ্টা করছি তবে আমি এটি সম্পর্কে কোনও ডকুমেন্টেশন / টিউটোরিয়াল খুঁজে পাচ্ছি না। আমি খুব হাড়ের মাস্টার নই ;-)

আমি সংযুক্তি পোস্টের ধরণের সাথে সংযুক্ত প্রতিটি শ্রমশৈলীর জন্য একটি নির্বাচন বাক্স যুক্ত করতে চাই। এই মুহুর্তে কেবল একটি নির্বাচিত বাক্স দেখানো হয়েছে।

তাই এই আমি সঙ্গে নিয়ে এসেছি। এটি ডিফল্ট টুলবারটি প্রতিস্থাপন করে তা দুর্দান্ত কাজ করে।


কোড

/**
 * Extended Filters dropdown with taxonomy term selection values
 */
jQuery.each(mediaTaxonomies,function(key,label){

    media.view.AttachmentFilters[key] = media.view.AttachmentFilters.extend({
        className: key,

        createFilters: function() {
            var filters = {};

            _.each( mediaTerms[key] || {}, function( term ) {

                var query = {};

                query[key] = {
                    taxonomy: key,
                    term_id: parseInt( term.id, 10 ),
                    term_slug: term.slug
                };

                filters[ term.slug ] = {
                    text: term.label,
                    props: query
                };
            });

            this.filters = filters;
        }

    });

    /**
     * Replace the media-toolbar with our own
     */
    media.view.AttachmentsBrowser = media.view.AttachmentsBrowser.extend({
        createToolbar: function() {

            media.model.Query.defaultArgs.filterSource = 'filter-media-taxonomies';

            this.toolbar = new media.view.Toolbar({
                controller: this.controller
            });

            this.views.add( this.toolbar );

            this.toolbar.set( 'terms', new media.view.AttachmentFilters[key]({
                controller: this.controller,
                model:      this.collection.props,
                priority:   -80
            }).render() );
        }
    });

});

মূল

এখানে চিত্র বর্ণনা লিখুন


আমার ফলাফল

এখানে চিত্র বর্ণনা লিখুন


আমি যা চাই

এখানে চিত্র বর্ণনা লিখুন


সম্পূর্ণ কোড

https://github.com/Horttcore/Media-Taxonomies

উত্তর:


8

ব্যাকবোন.জেএস এবং ডাব্লুপি এর বিস্ময়কর বিশ্ব (যার মধ্যে আমি সবেমাত্র কিছুই জানি না)।

আমি মনে করি সমস্যাটি হ'ল আপনি কেবল একই ডিফল্ট কল করছেন media.view, পরিবর্তে আমি বিশ্বাস করি যে আপনাকে একটি নতুন সূচনা করার প্রয়োজন।

উদাহরণ স্বরূপ:

/**
 * Replace the media-toolbar with our own
 */
    var myDrop = media.view.AttachmentsBrowser;

    media.view.AttachmentsBrowser = media.view.AttachmentsBrowser.extend({
    createToolbar: function() {

        media.model.Query.defaultArgs.filterSource = 'filter-media-taxonomies';

        myDrop.prototype.createToolbar.apply(this,arguments);

        this.toolbar.set( key, new media.view.AttachmentFilters[key]({
            controller: this.controller,
            model:      this.collection.props,
            priority:   -80
        }).render() );
    }
});

আপনাকে নীচের মতো কিছু দেবে (আমি কোনও ভাল ত্রুটি যাচাই করি নি তবে এটি কাজ করে)।


এখানে চিত্র বর্ণনা লিখুন


আপনার সাথে এটি করার এবং বিবেচনার সাথে media.view.AttachmentFiltersকাস্টম কিছু বিবেচনা করা উচিত window.wp.media;


দুর্দান্ত আপনাকে ধন্যবাদ! আমার খুব শীঘ্রই ব্যাকবোন.জেগুলি সম্পর্কে পড়া উচিত, কারণ মনে হয় এটি প্রতিটি নতুন ডাব্লুপি সংস্করণে আরও সংহত হয়।
হর্টকकोर

1
এটি একটি প্লাগইন তৈরি করার জন্য আপনাকে ধন্যবাদ তাই উত্তর দেওয়া সহজ হয়েছিল :) আসলে আপনি ডাব্লুপিএসই প্রশ্নের জন্য একটি গিথুব প্লাগইন তৈরি করতে আমাকে অনুপ্রাণিত করেছেন।
উইক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.