Как мне установить целевую аудиторию по умолчанию для события календаря в Sharepoint?

StackOverflow https://stackoverflow.com/questions/1278883

Вопрос

У меня есть некоторые опасения по поводу подхода, который я использую для централизации календаря в MOSS.Сценарий заключается в том, что существует 1 календарь для Предприятия, и События фильтруются с помощью таргетинга на аудиторию.Включить таргетинг на аудиторию в календаре довольно просто, моя проблема возникает, когда клиент хочет автоматически заполнить это событие значением по умолчанию в разделе "Целевые аудитории".

Например, если менеджер магазина публикует событие, целевой аудиторией будет только магазин, аналогично, если менеджер округа публикует событие, это будет относиться только к магазинам в его / ее районе.Идея состоит в том, чтобы выбрать группу по умолчанию из рекламы или даже Глобальной аудитории, если это необходимо, чтобы “настроить по умолчанию” Целевую аудиторию в зависимости от того, кто создает мероприятие.

Я предполагаю, что мне нужно будет использовать класс AudienceManager и обработчик событий, чтобы добиться этого.

Могу ли я настроить Целевую аудиторию с помощью jQuery для группы объявлений?Нужно ли мне переопределять обработчик событий, такой как ItemAdding, чтобы перейти и извлечь группу?

Похоже, что это был бы довольно распространенный запрос при использовании целевой аудитории с помощью события календаря, но я потратил довольно много времени, пытаясь найти примеры, и ничего не добился.

Это было полезно?

Решение

Мое лучшее предположение заключается в том, что вам действительно следует использовать ItemEventReceiver , переопределяющий события ItemAdding и ItemUpdating (в случае редактирования элемента?), оба вызывающие один и тот же метод SetAudience , в этом методе вы устанавливаете аудиторию на основе SPContext.Current.Web.CurrentUser и групп, в которых он находится, или, возможно, какого-то пользовательского уровня разрешений, который вы создаете

Неполный код:

protected override ItemAdding(properties)
{
  SetAudience(properties.ListItem)
}

protected override ItemUpdating(properties)
{
  SetAudience(properties.ListItem)
}

private void SetAudience(SPListItem item)
{
  // get current user's groups
  // check if user is a member of store managers / district managers group
  // get all audiences below this user (i.e. all stores in district or single store
  // add relevant audiences to item
}

}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top