J'ai créé une fonctionnalité personnalisée pour sharepoint 2007 en utilisant Visual Studio 2010. Lorsque j'active la fonctionnalité, elle se déclenche bien sûr sur toutes les bibliothèques de documents de la collection de sites. Quelqu'un peut-il me donner un exemple de comment faire fonctionner la fonction sur une bibliothèque/instance de liste de documents spécifique.Comment activer une fonctionnalité sharepoint 2007 sur une bibliothèque de documents spécifique
0
A
Répondre
0
D'abord, vous devrez ajouter un EventReceiver à votre fonction, puis dans votre xml Feature ajouter un ReceiverClass, comme ceci:
<Feature Id="f68efad8-ea0a-42a2-9994-db3b74aa67f8"
Title="My features title"
Description="Blah blah blah"
Version="12.0.0.0"
Hidden="FALSE"
Scope="Web"
DefaultResourceFile="core"
ReceiverAssembly="MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4f34f956cd0552b"
ReceiverClass="MyProject.FeatureCode.EventHandler" <!-- This is where you set the EventReceiver -->
xmlns="http://schemas.microsoft.com/sharepoint/">
EventHandler étant le EventReceiver lorsque vous êtes fonction est activée.
Mon exemple
D'abord, mon eventreceiver:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
var assembly = typeof(PermissionHandler).Assembly.ToString();
var classList = typeof(PermissionHandler).FullName;
var web = SPContext.Current.Web;
web.AllowUnsafeUpdates = true;
try
{
var list = web.Lists["MyList"];
list.EventReceivers.Add(SPEventReceiverType.ItemAdded, assembly, classList);
list.EventReceivers.Add(SPEventReceiverType.ItemUpdated, assembly, classList);
}
catch (Exception ex)
{
EventLogger.LogError("Sample feature failed to run.", this, ex);
}
}
Dans l'exemple ci-dessus, je veux ajouter quelques autorisations aux éléments MyList. Comme vous pouvez le voir, je fais 2 variables qui est le typeof (PermissionHandler), qui est une classe publique que j'ai créée pour faire le travail.
J'ai ajouté 5 éléments à la liste avant d'activer cette fonctionnalité. Je souhaite donc que les éléments déjà existants obtiennent également les autorisations que je définis pour les nouveaux éléments.
Voici comment je le fais:
private void updateItemPermissions(SPItemEventProperties properties)
{
DisableEventFiring();
SPListItem listItem = properties.ListItem;
SPSecurity.RunWithElevatedPrivileges(() =>
{
SPSite site = new SPSite(listItem.ParentList.ParentWeb.Site.ID);
SPWeb web = site.OpenWeb(listItem.ParentList.ParentWeb.ID);
SPList list = web.Lists[listItem.ParentList.ID];
SPListItem item = list.Items.GetItemById(properties.ListItem.ID);
item.BreakRoleInheritance(true);
if (item.RoleAssignments.Count > 0)
{
for (var i = item.RoleAssignments.Count - 1; i >= 0; i--)
item.RoleAssignments.Remove(i);
}
var group = item.Web.Site.RootWeb.Groups["Visitors"];
AddPermissions(item, web, SPRoleType.Reader, group);
});
EnableEventFiring();
}
private static void AddPermissions(SPListItem curItem, SPWeb web, SPRoleType roleType, SPPrincipal principal)
{
SPRoleDefinition roleDefinition = web.RoleDefinitions.GetByType(roleType);
SPRoleAssignment roleAssignment = new SPRoleAssignment(principal);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
curItem.RoleAssignments.Add(roleAssignment);
curItem.Update();
}
J'espère que cela vous a aidé :)
Questions connexes
- 1. Comment désinstaller une fonctionnalité dans sharepoint 2007?
- 2. Sharepoint 2007 gestion de documents
- 3. Comment trouver rapidement une bibliothèque de documents sharepoint par identifiant?
- 4. Accès aux documents Sharepoint 2007 hors réseau
- 5. Comment ajouter des fichiers à une bibliothèque de documents dans une définition de site dans SharePoint 2007?
- 6. Accès par programme à une bibliothèque de documents SharePoint?
- 7. Identifier le dossier "Forms" dans une bibliothèque de documents Sharepoint
- 8. comment activer l'affichage de l'explorateur dans sharepoint 2010 et moss 2007 pour les bibliothèques de documents?
- 9. SharePoint Designer 2007 - créer un lien vers une bibliothèque de documents sur un site à partir d'un autre site?
- 10. Icônes personnalisées dans la vue de bibliothèque de documents sharepoint 2007
- 11. Surveillance d'une bibliothèque de documents SharePoint
- 12. comment savoir KBs de document dans une bibliothèque de document dans Sharepoint 2007?
- 13. Ouvrir un document à partir d'une bibliothèque de documents SharePoint
- 14. comment définir des autorisations exclusives sur une bibliothèque de documents SharePoint?
- 15. Comment activer SSL SharePoint
- 16. Intégration de bibliothèques de documents SharePoint dans une page ASP.NET
- 17. Les utilisateurs du site SharePoint 2010 peuvent modifier les documents dans une bibliothèque de documents.
- 18. Ajout d'une invisible bibliothèque de documents sur un site SharePoint
- 19. Comment créer un document Microsoft Word "en lecture seule" dans une bibliothèque de documents SharePoint?
- 20. Copier la bibliothèque de documents sharepoint 2003 inclure l'historique
- 21. courriels glisser-déposer vers une bibliothèque SharePoint
- 22. SharePoint/WSS: comment localiser une fonctionnalité
- 23. Sharepoint bibliothèque de documents Schema.xml Personnalisation
- 24. Fonctionnalité similaire à SharePoint pour les documents Office
- 25. Modifier des images sur une Masterpage en fonction des documents de la bibliothèque de documents
- 26. Le nom du fichier s'affiche en tant que champ obligatoire dans une bibliothèque de documents dans Sharepoint 2007
- 27. Sharepoint 2007 - Ajouter une colonne à la vue "Tous les documents" pour qu'elle apparaisse dans toutes les bibliothèques de documents
- 28. Télécharger un fichier .pdf dans une bibliothèque de documents Sharepoint à l'aide d'Access vba
- 29. SharePoint 2007: réduire une base de données
- 30. Télécharger un document dans un dossier spécifique dans une bibliothèque de documents SharePoint à l'aide de WebClient