27 avril 2006

Comment ouvrir des document de SharePoint dans une nouvelle fenêtre

Objet
Documentation sur la modification effectuée sur le portail, pour permettre aux utilisateurs du portail d’ouvrir les documents dans une nouvelle fenêtre du navigateur.

1 Contexte
Actuellement tous les documents de SharePoint exceptés ceux issus de la gamme Microsoft Office, s’ouvrent dans la fenêtre courante. Cette fonctionnalité de SharePoint pose des désagréments aux utilisateurs. En effet, ces derniers en fermant le document, ferme le navigateur, et perde tous « l’historique » de navigation.
2 Solutions envisagées
Plusieurs solutions ont été envisagées :
2.1 Clef de registre
Supprimer la clef de registre correspondant à l’extension du document dans l’entrée suivante [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Content Type\] au niveau du poste client. Cette modification sera à déployer par script + GPO sur les postes clients.

Cette solution est la plus couramment utilisée.

Plus d’infos :
Handling MIME Types in Internet Explorer
MIME Type Detection in Internet Explorer
2.2 Contrôle ActiveX
SharePoint offre une solution pour que les documents soient éditables et ouvrables par des applications tierces. Cette solution est utilisée notamment pour les documents issus de la gamme Microsoft Office. En effet, le contrôle ActiveX gérant les extensions Office, est déployé dans la dll OWSSUPP.DLL à l’emplacement Local_Drive :\Program Files\Microsoft Office\OFFICE11 directory.

Cette solution est assez complexe à mettre en œuvre, et il existe aucun exemple (autre que celui de Microsoft) implémentant cette solution.

Plus d’infos :
Adding a Document Template, File Type, and Editing Application to a Site Definition
OpenDocuments Control

2.3 Modification d’un script SharePoint
Lorsqu’un utilisateur clique sur un lien hypertexte d’une bibliothèque de document, un évènement onclick est levé et attrapé par la fonction DispDocItemEx du fichier javascript ows.js.

Cette solution est la plus simple à mettre en place.
3 Solution retenue
La solution retenue consiste à la modification du fichier javascript ows.js.
3.1 Implémentation
L’implémentation est très simple. Il suffit de réaliser dans le corps de la fonction une condition qui vérifie l’extension du fichier, ensuite il suffit de spécifier la propriété target à l’objet qui a envoyé l’évènement.

Voici un exemple :

function DispDocItemEx(ele, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId)
{
if (!browseris.ie || !browseris.win32)
{
itemTable = FindSTSMenuTable(ele);
if (itemTable == null)
return true;
var createCtx = new Function("setupMenuContext(" +
itemTable.getAttribute("CTXName") + ");");
createCtx();
var RootFolder = GetRootFolder(currentCtx);
if (itemTable.getAttribute("FSObjType") != 1 &&
currentCtx.displayFormUrl != null)
{
ele.href = currentCtx.displayFormUrl+"?ID="+
itemTable.getAttribute("ItemId") +
"&Source=" + GetSource() + RootFolder;
}
return true;
}

var stsOpen;
var szHref;
var szExt;
var fRet;
var ele;
var tblFileDlg = document.getElementById("FileDialogViewTable");
if (tblFileDlg != null)
{
event.cancelBubble = false;
event.returnValue = false;
return;
}
szHref = ele.href;
szExt = SzExtension(szHref);
if (szExt == "pdf")
{
ele.target = "_blank";
}
if(strProgId != '')
stsOpen = StsOpenEnsureEx(strProgId);
if (stsOpen == null)
{
if (fTransformServiceOn == 'TRUE' &&
fShouldTransformExtension == 'TRUE' &&
fTransformHandleUrl == 'TRUE')
{
itemTable = FindSTSMenuTable(ele);
if (itemTable == null)
return;
event.cancelBubble = true;
event.returnValue = false;
var getHttpRoot = new Function("return " + itemTable.getAttribute("CTXName") + ".HttpRoot;");
GoToPage(getHttpRoot() + "/_layouts/" + L_Language_Text +
"/htmltrverify.aspx?doc=" + escapeProperly(szHref));
}
return;
}
fRet = stsOpen.ViewDocument2(window, szHref);
stsOpen = null;
if (fRet)
{
event.cancelBubble = true;
event.returnValue = false;
}
return;
}

26 avril 2006

Nouvelle version de Windows Desktop Search

Microsoft a publié la version 2.6.5 de Windows Desktop Search. Cette version est censé améliorer les performance de Windows Desktop Search.

 

Pour ma part, j’étais déjà sur le beta de la 2.6.5 et j’ai pu remarqué que cette version était beaucoup plus stable.