2
在一把umbraco 6.1.6的開發者部分有一個關係類型節點。一把umbraco關係類型
有人能解釋什麼關係類型,如果他們有一個實際的應用。我看過一些文檔,但我仍然不確定爲什麼我需要使用它們。
它們在v6和v7中仍然相關嗎?
在一把umbraco 6.1.6的開發者部分有一個關係類型節點。一把umbraco關係類型
有人能解釋什麼關係類型,如果他們有一個實際的應用。我看過一些文檔,但我仍然不確定爲什麼我需要使用它們。
它們在v6和v7中仍然相關嗎?
我最近開始記錄了Relations Service,應提供一些見解,你可以用它做什麼。我偶爾使用它來維護內容樹中節點之間的關係。
如果你曾經在一把umbraco複製節點你到相關的新節點,它使用所謂的「相關文件在複製」的關係類型原來的選項。作爲一個例子,通過適當的關係,您可以掛鉤事件,例如保存事件,並且只要父代更新,您也可以更新相關的子節點。此技術有時用於希望內容在各種語言間同步的多語言網站。
以下是最近的一個項目,我的工作中重複發生的事件可能會創建一個簡短的例子。我們需要知道系列中的第一個事件以及事件(孩子)的所有後續事件。
public class Events : ApplicationEventHandler
{
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
ContentService.Saved += ContentServiceSaved;
}
private void ContentServiceSaved(IContentService sender, SaveEventArgs<IContent> e)
{
var rs = ApplicationContext.Current.Services.RelationService;
var relationType = rs.GetRelationTypeByAlias("repeatedEventOccurence");
foreach (IContent content in e.SavedEntities)
{
var occurences = rs.GetByParentId(content.Id).Where(r => r.RelationType.Alias == "repeatedEventOccurence");
bool exists = false;
foreach (var doc in occurences.Select(o => sender.GetById(o.ChildId)))
{
// Check if there is already an occurence of this event with a matching date
}
if (!exists)
{
var newDoc = sender.Copy(content, eventsDoc.Id, true, User.GetCurrent().Id);
// Set any properties you need to on the new node
...
rs.Relate(content, newDoc, relationType);
}
}
}
}