我正在尝试构建一个媒体库,用户可以在其中选择从自定义文件夹中检索的图片,他们可以指定其基本文件夹。 我得到了正确的图像,但指定的模板未应用于缩略图。 它确实找到了标题(选择 img 时请参阅边栏)
它说,而不是应用想要的模板
<div class="filename"><div></div></div>
实际上我什至不需要自定义模板,我很乐意让图像显示在标准库中,但我似乎无法获得正确的结果。
在 media-folder-management.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;
}
});
在 media-folder-management.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="https://wordpress.stackexchange.com/questions/115250/{{ 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 功能(特色图像、创建画廊、插入页面/帖子),但具有更结构化的文件夹结构(因为客户已经拥有完整的图像库结构)。
接下来的步骤是:
- 当文件被拖入窗口时,必须上传到打开的文件夹
- 创建/删除文件夹(根据用户角色具有权限)
- 将 img 拖到其他文件夹(可选)
我希望有人能帮我解决这个问题,我对 Backbone.js 还不是很熟悉。
先感谢您!
好的,我现在已经想通了一些事情:我没有将渲染图像返回到任何东西中
在javascript中我有一个渲染函数
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。
不过,我的探索仍在继续,目前我在填充媒体模板中使用的数据对象时遇到了麻烦,但我会为此发布另一个问题,因为这是另一个问题。 如果有兴趣,您可以在这里找到问题:附件媒体模板数据模型(data.size.url)