PRINT_MEDIA_TEMPLATES未应用于媒体管理器插件

时间:2013-09-23 作者:Anneke

我正在尝试构建一个媒体库,用户可以在其中选择从自定义文件夹中检索的图片,用户可以指定其basefolder。我正在取回正确的图像,但指定的模板未应用于缩略图。它确实可以找到标题(选择img时请参见侧栏)

images from 2013_accs folder

它没有应用想要的模板,而是说

<div class="filename"><div></div></div>
enter image description here

实际上,我甚至不需要自定义模板,我很乐意将图像显示在标准库中,但我似乎无法得到正确的结果。

在介质文件夹管理中。js文件我有这个

var MfmView = Backbone.View.extend({
    tagName: "li",
    className: "mfmimage attachment",
    template: wp.media.template(\'mfmimage\'),
    render: function(){
        this.$el.html(this.template(this.model.toJSON()));
        return this;
    }
});
和介质文件夹管理中。php有

public function print_media_templates() {
    if(!$_POST[\'id\']){
        $this->printInit();
    }

    ?>

    <script type="text/html" id="tmpl-mfmimage">
        <p class="test"></p>

        <img id="{{ data.id }}" class="<# if ( typeof(data.folder) !== \'undefined\' ) { #>folder<# } else { #>image<# } #>" src="{{ data.thumbnail }}" alt="{{ data.caption }}" title="{{ data.caption }}" data-full="{{ data.full }}" data-link="{{ data.link }}" />
        <# if ( typeof(data.folder) !== \'undefined\' ) { #>
        <p>{{ data.caption }}</p>
        <# } #>
        <a class="check" id="check-link-{{ data.id }}" href="#" title="Deselect"><div id="check-{{ data.id }}" class="media-modal-icon"></div></a>

    </script>

    <?php

}
目标是保持WP功能(特色图像、创建图库、插入页面/帖子),但使用更结构化的folderstructure(因为customer allready具有完整的图像库结构)。

下一步将是:

将文件拖到窗口时,必须上载到打开的文件夹中创建/删除文件夹(根据用户角色的权限)

  • 将img拖到其他文件夹(可选)
    • 我希望有人能帮我解决这个问题,我对主干不是很熟悉。js还没有。

      提前感谢您!

    1 个回复
    SO网友:Anneke

    好的,我现在已经弄明白了一些事情:我没有将渲染的图像返回到任何内容中

    在javascript中,我有一个render函数

    media.view.AttachmentsBrowser = media.view.AttachmentsBrowser.extend({
            render: function(){
                var that = this;
                if(this.collection){
                    if(this.collection.models.length > 0){
                        this.clearImages();
                        _.each(this.collection.models, function (item){
                            //old way: that.renderImage(item);
                            //now:
                            this.$el.find(\'#lastli\').before(that.renderImage(item));
                        }, this);
                    }
                }
            }
    });
    
    显然我的照片没有显示。。。

    但由于我并不真正需要模板,我删除了这段代码,因此采用了标准tmpl。

    虽然我的任务还在继续,但目前我在填充媒体模板中使用的数据对象时遇到了问题,但我会就此发布另一个问题,因为这是另一个问题。如果有兴趣,您可以在这里找到问题:attachment media-template data model (data.size.url)

    结束

    相关推荐