我们希望通过 Sitecore &amp ;;将媒体上传到 Amazon S3 将上传媒体的路径保存到自定义字段。
因此,我们创建了一个自定义字段,其中包含一个用于上传媒体的菜单按钮。
这是我的自定义字段类:
public class ExternalImage : Edit
{
public ExternalImage()
{
this.Class = "scContentControl";
}
public override void HandleMessage(Message message)
{
Assert.ArgumentNotNull(message, "message");
base.HandleMessage(message);
string name;
if (message["id"] == this.ID && (name = message.Name) != null)
{
if (name == "externalimage:open")
{
// Need help to open media upload popup here
}
}
}
}
更新
经过一些研究后我才知道我需要在代码中调用/调用media:upload命令,所以这就是我所做的(没有任何成功):
if (name == "externalimage:open")
{
string text = "media:upload(load=1,tofolder=1,id={3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1})";
var item2 = Client.ContentDatabase.GetItem("{3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1}");
Command command = CommandManager.GetCommand(text);
if (command == null)
{
SheerResponse.Alert(Translate.Text("Edit command not found."), new string[0]);
return;
}
CommandState commandState = CommandManager.QueryState(text, item2);
command.Execute(new CommandContext(item2));
return;
}