Orchardcms 将MediaPicker添加到常规站点设置

Orchardcms 将MediaPicker添加到常规站点设置,orchardcms,orchardcms-1.6,Orchardcms,Orchardcms 1.6,我目前的项目是利用租户的网站。对于每个站点,我们希望能够通过修改其设置(在管理页面上,设置>常规)来更改整个租户站点的徽标 我通过以下方式向站点设置中添加了两个文本字段。但是,我希望用户能够使用媒体选择器而不是键入路径来选择徽标 目前,我有一个LogoBarSettings部分及其记录、驱动程序和处理程序。我不知道如何将媒体选择器添加到我的LogoBarSettings中,即使我添加了,我还必须为它创建另一个处理程序、驱动程序和记录吗?我无法想象我会这么做,但我在这一点上被卡住了 有人能提供一些

我目前的项目是利用租户的网站。对于每个站点,我们希望能够通过修改其设置(在管理页面上,设置>常规)来更改整个租户站点的徽标

我通过以下方式向站点设置中添加了两个文本字段。但是,我希望用户能够使用媒体选择器而不是键入路径来选择徽标

目前,我有一个LogoBarSettings部分及其记录、驱动程序和处理程序。我不知道如何将媒体选择器添加到我的LogoBarSettings中,即使我添加了,我还必须为它创建另一个处理程序、驱动程序和记录吗?我无法想象我会这么做,但我在这一点上被卡住了

有人能提供一些指导吗

这是我的LogoBarSettings

public class LogoBarSettings : ContentPart<LogoBarSettingsPartRecord>
{
    public string ImageUrl
    {
        get { return Record.ImageUrl; }
        set { Record.ImageUrl = value; }
    }

    public string ImageAltText
    {
        get { return Record.ImageAltText; }
        set { Record.ImageAltText = value; }
    }
}
public类LogoBarSettings:ContentPart
{
公共字符串ImageUrl
{
获取{return Record.ImageUrl;}
设置{Record.ImageUrl=value;}
}
公共字符串ImageAltText
{
获取{return Record.ImageAltText;}
设置{Record.ImageAltText=value;}
}
}

MediaPicker是通过Javascript调用的,因此您不需要更改任何模型类。为页面加载MediaPicker时,它会为页面上的所有表单元素设置jQuery事件处理程序。触发orchard admin pickimage open事件将打开MediaPicker。提供回调函数以捕获拾取的介质

下面是一个快速示例,您可以在Firebug或Chrome Developer工具中从加载了MediaPicker的页面运行,例如页面编辑器:

$('form').trigger("orchard-admin-pickimage-open", { 
    callback: function(data) { 
        console.log(data); 
}})
这应该打印类似于以下内容的内容:

Object {img: Object}
    img: Object
        align: ""
        alt: ""
        class: ""
        height: "64"
        html: "<img src="/Media/Default/images/test.jpg" alt="" width="64" height="64"/>"
        src: "/Media/Default/images/test.jpg"
        style: ""
        width: "64"
    __proto__: Object
__proto__: Object
Object{img:Object}
img:对象
对齐:“”
alt:“”
类别:“
身高:“64”
html:“
src:“/Media/Default/images/test.jpg”
风格:“
宽度:“64”
__原型:对象
__原型:对象

BodyPart
编辑器集成了Orchard的MediaPicker和TinyMce,因此您可以开始查看该模块以获得更完整的示例,特别是
Modules\TinyMce\Scripts\plugins\MediaPicker\editor\u plugin\u src.js

这里有什么新闻吗?:)我已尝试将
MediaLibraryPickerField
添加到我的自定义网站设置中,但字段模板根本无法呈现。@teran抱歉,我不记得了。不幸的是,那是几年前的事了。是的,差不多两年前了:)无论如何,谢谢!:)我发布了一个新问题,因为这些设置是在
v1.8
中重新设计的。如果您以后还记得,请告诉我:)