2015-08-27 15 views
0

在媒体库中我已经创建了一个节点称为产品的PDF文件这个项目下我已经上传一个PDF,现在一个子项儿童PDF 1在发布中删除创建于产品pdfs包含pdf文件的节点。如何存储在其他位置的媒体文件,然后才会慢慢在Sitecore的

现在我删除儿童PDF 1个节点,如果我发布产品的PDF文件节点PDF文件也将被删除。 但是,在发布产品pdfs节点时,我想将其存储在其他位置的某个位置的PDF文件。 我该如何做到这一点。

我们可以通过使用EventQueue 或 来实现这一点我们必须对流水线处理器进行更改。

感谢

+0

为什么你不能将项目移动到一个存档文件夹或只是[归档它](https://doc.sitecore.net/sitecore_experience_platform/managing_items/archive_and_restore_an_item?sc_lang=en)? – jammykam

回答

0

为了存储/复制你的媒体项被删除之前,您可能需要实现一个事件处理程序。你正在寻找的事件被称为项目:删除(不要与项目混淆:删除)。所以,在你的配置寄存器的事件处理程序:

<event name="item:deleting"> 
    <handler type="Your.Assembly.Name.And.Handler.Class, Your.Assembly.Name" method="OnItemDeleting" /> 
    ... other event handlers ... 
</event> 

实现这个类中的OnItemDeleting方法,像下面:

protected void OnItemDeleting(object sender, EventArgs args) 
{ 
     if (args == null) 
      return; 

    Item obj = Event.ExtractParameter(args, 0) as Item; 
    Assert.IsNotNull((object) obj, "No item in parameters"); 

    // do some actions to manipulate your media here, before it is deleted 
} 

希望帮助!

+0

感谢Martin给予快速回复。 所以要做到这一点,我们必须实现事件处理程序NOT事件队列或管道。 – Sukhjeevan

+0

这一切都取决于你的架构,如果这发生在独立的CD服务器上,或者不是。您需要非常清楚体系结构,如何以及在哪里存储媒体项目以及它们如何同步。如果你想同步在你的一张CD上完成的对CM的修改,并从那里重新发布到CD的其余部分 - 请阅读我的博客文章,了解如何使用EventQueue完成此操作。但是在任何情况下,您都需要实现事件处理程序(本地到特定服务器),就像我上面所写的那样。 http://blog.martinmiles.net/post/editing-content-on-a-cd-server-part-2-event-queue-to-sync-data-with-master –

相关问题