2009-01-29 5 views
4

Un scénario simple:SharePoint/MOSS - Suppression d'autres décochée dans les articles des personnes d'une liste

Je veux supprimer un pagelayout qui est hors daté de notre site de publication MOSS. Un ex-collègue a créé une nouvelle page en utilisant cette mise en page et il ne l'a pas cochée. Je ne peux pas supprimer le pagelayout car son fichier le fait référence. Je ne peux pas 'voir' le fichier parce qu'il n'a pas été archivé, pour l'enlever.

J'ai essayé SPFolder.Items, SPList.GetItemById(), deux autres méthodes de modèle objet. Mais SharePoint ne montrera tout simplement pas cet élément pour moi. J'ai même piqué autour SPList.GetItem (nouveau SPQuery() {IncludeAllUserPermissions = true;})

Quelqu'un sait comment se débarrasser de cet élément? :-)

Répondre

5

Si vous êtes administrateur de la collection de sites, vous pouvez également forcer l'archivage du fichier extrait de l'autre personne. L'astuce est que vous devez savoir ce que la bibliothèque est dans Si vous savez que, vous pouvez accéder à cette bibliothèque, puis faire les choses suivantes:

  1. Cliquez sur Paramètres -> bibliothèque de documents (ou . Paramètres de la liste, je suppose)
  2. cliquez sur Gérer les fichiers extraits dans les Autorisations et gestion colonne
  3. vous devriez voir une liste des fichiers extraits, que vous pouvez sélectionner, puis cliquez sur Take O wnership de Selection dans la barre d'outils.
  4. Une fois que vous avez fait cela, vous pouvez vérifier le fichier vous-même.
+0

Ceci est une excellente astuce qui nous conduit à résoudre le problème dans le modèle d'objet. Voir mon commentaire ci-dessous. Merci Abs. –

0

essayez SharePoint Sushi à partir de codeplex.

Bonne chance.

+0

dont la fonction SharePoint Sushi-vous référence? –

+0

Salut, de codeplex .. le lien est sur ma réponse .. –

0

D'abord, vous devez disposer d'autorisations d'administrateur sur la collection de sites. Puis:

  1. Cliquez sur Actions du site, Gérer le contenu et la structure.
  2. Accédez à la mise en page que vous souhaitez supprimer dans la galerie de pages maîtres.
  3. Cochez la case correspondant à la mise en page que vous souhaitez supprimer.
  4. Cliquez sur Afficher les ressources connexes.

Cette devrait vous permet de voir chaque page connectée à cette mise en page.

+0

oui il me montre ce qui est lié, mais ne me laisse pas les supprimer si le gars n'a pas check-in au moins une fois. Je reçois un 404 quand j'essaie d'aller à cette ressource. –

0

rapide & facile solution non-SharePoint: Si c'est un ex -coworker est-il possible de demander une utilisation temporaire de son compte avec un nouveau mot de passe afin que vous puissiez vous connecter au portail et vérifier revenir ou rejeter l'enregistrement?

+0

mon scénario est un peu simplifié - le site MOSS est une restauration de site à partir d'un autre site MOSS, et les utilisateurs sont actuellement sur un système Active Directory différent. Donc, il n'y a aucun moyen de se connecter comme eux dans mon réseau :-( –

7

La réponse de Abs nous a donné un indice: comment la page ManageCheckedOutFiles peut-elle voir les fichiers qui n'ont pas encore été archivés par d'autres utilisateurs?

  1. Aller à ~ layouts/ManageCheckedOutFiles.aspx
  2. hérite de réflecteur Microsoft.SharePoint.ApplicationPages.ManageCheckedOutFilesPage
  3. 12 \ CONFIG \ BIN \ Microsoft.SharePoint.ApplicationPages.dll
  4. dans PrepareContent protected void() nous lisons les lignes de clé:
  5. IList checkedOutFiles = this.CurrentList.CheckedOutFiles;

donc de retour dans notre code

SPDocumentLibrary doclib = PublishingWeb.PagesList as SPDocumentLibrary; 
foreach(var checkedoutfile in doclib.CheckedOutFiles) 
{ 
    checkedoutfile.TakeOverCheckOut(); 
    var file = doclib.GetItemById(checkedoutfile.ListItemId); 
    file.CheckIn(); 
} 

:-) Merci à tous

Questions connexes