public override void Process(GetPlaceholderRenderingsArgs args, PlaceholderRuleContext ruleContext) { if (!ruleContext.IsEditable) { args.HasPlaceholderSettings = false; args.PlaceholderRenderings = null; } }
public override void Process(GetPlaceholderRenderingsArgs args, PlaceholderRuleContext ruleContext) { if (args.PlaceholderRenderings == null || ruleContext.BlockedRenderings.Count == 0 || !ruleContext.IsEditable) { return; } var comparer = new ItemIdComparer(); args.PlaceholderRenderings.RemoveAll(i => ruleContext.BlockedRenderings.Contains(i, comparer)); }
public override void Process(GetPlaceholderRenderingsArgs args, PlaceholderRuleContext ruleContext) { var rules = CreateRuleList(args); using (new DeviceSwitcher(ruleContext.Device)) using (new ContextItemSwitcher(ruleContext.Item)) { rules.Run(ruleContext); } SetRuleContext(args, ruleContext); }
public override void Process(GetPlaceholderRenderingsArgs args, PlaceholderRuleContext ruleContext) { if (ruleContext.AllowedRenderings.Count == 0 && !ruleContext.IsEditable) { return; } var itemIdComparer = new ItemIdComparer(); args.PlaceholderRenderings = args.PlaceholderRenderings ?? new List <Item>(); foreach (var allowedRendering in ruleContext.AllowedRenderings) { if (!args.PlaceholderRenderings.Contains(allowedRendering, itemIdComparer)) { args.PlaceholderRenderings.Add(allowedRendering); } } }
public override void Process(GetPlaceholderRenderingsArgs args, PlaceholderRuleContext ruleContext) { if (!ruleContext.IsEditable) { return; } // All originally present renderings have been removed, so make placeholder un-editable. if (ruleContext.HasInitialRenderings && args.PlaceholderRenderings.Count == 0) { args.HasPlaceholderSettings = false; args.PlaceholderRenderings = null; } // No renderings / placeholder settings were present, but rules have added some, so make placeholder editable. if (!ruleContext.HasInitialRenderings && args.PlaceholderRenderings != null && args.PlaceholderRenderings.Count > 0) { args.HasPlaceholderSettings = true; args.Options.ShowTree = false; } }
protected void SetRuleContext(GetPlaceholderRenderingsArgs args, PlaceholderRuleContext ruleContext) { args.CustomData[Constants.RuleContextKey] = ruleContext; }
public abstract void Process(GetPlaceholderRenderingsArgs args, PlaceholderRuleContext ruleContext);