
Cél URL kinyerése a dokumentumtárak hivatkozásaiból
Gyárilag a SharePoint dokumentumtárak a különféle dokumentum tartalomtípusok tárolásán kívül hivatkozások elhelyezését is lehetővé teszik.
Viszonylag egyszerű egy hivatkozás létrehozása, az Új / Hivatkozás menüpont használatával megnyílik egy oldalsáv, ahol vagy a nemrég használt dokumentumok közül választhatunk, vagy megadhatjuk kézzel is az elérési utat, ahova a hivatkozás mutatni fog.
Egyedi frontend / SPFx kijelző (webpart) fejlesztésekor, ha dokumentumtár elemeivel kell dolgoznunk, támogatnunk kell az összes beépített tartalomtípust, így a hivatkozásokat is. A probléma ott kezdődik, hogy ha a dokumentumoknál is használt elérési utat töltjük be és oda irányítjuk a felhasználót, amikor egy ilyen hivatkozásra kattint, a dokumentumtárban található .url végződésű elemet próbálja meg megnyitni a böngésző, és mivel ezt nem tudja kezelni, ezért letölti. Illetve csak letöltené, de az url formátum fekete listán van, ezért a felhasználó egy ilyen hibaüzenetbe fog ütközni:
A(z) greentie.hu.url fájl letöltése le lett tiltva, mert az ilyen típusú fájlok kárt okozhatnak az eszközön.
Ez egyáltalán nem az a működés, amit el akarunk érni, így szükség lesz egy kis kiegészítésre a dokumentumok betöltésekor.
A dokumentumokat általában a
végpontról szoktuk lekérni. A select paraméter segítségével adjuk meg, hogy mely mezőket akarjuk lekérni, az expand pedig az összetett mezők (pl. személy vagy csoport, lista) értékének kibontásához szükségesek.
A fenti végpontnál ezeket kértük le:
-
*: minden nem rejtett mező
-
EncodedAbsUrl: a dokumentum elérési útvonala
-
ServerRedirectedEmbedUri: Azoknál a formátumoknál, ahol a SharePoint biztosít nézegetőt/szerkesztőt, ezzel a linkkel nyithatjuk meg a dokumentumot az alkalmazásban
-
Author/Title: A Létrehozta mezőben tárolt személy neve. Az expand=Author szükséges ahhoz, hogy ki tudjuk bontani a szerző objektumának ezt a mezőjét.
-
Author/Name: A Létrehozta mezőben tárolt személy login neve (általában i:0#.f|membership|FELHASZNÁLÓ EMAIL CÍME). Az expand=Author szükséges ahhoz, hogy ki tudjuk bontani a szerző objektumának ezt a mezőjét.
-
FileLeafRef: A dokumentum neve és formátuma (pl. dokumentum.docx).
-
File_x0020_Type: A dokumentum formátuma
Sajnos az EncodedAbsUrl a konkrét .url fájlra mutat, így ezt a hivatkozásnál nem tudjuk használni. Van aki azt az utat választja, hogy beolvassa a fájlt, kinyeri belőle a linket és úgy kezeli ezt a helyzetet, de van ennél egyszerűbb megoldás is:
Properties/vti_x005f_shortcuturl
A hivatkozás típusú elemeknél egyszerűen csak adjuk hozzá a select paraméterhez a Properties/vti_x005f_shortcuturl értéket, és ne felejtsük el az expand paramétert értékeit is kiegészíteni a Properties-el. Így a fenti végpont erre változik:
A File_x0020_Type értéke alapján tehát szűrhetünk az .url formátumú fájlokra, és ezeknél a ServerRedirectedEmbedUri, vagy az EncodedAbsUrl helyett beállíthatjuk az újonnan lekért mező értékét, így tökéletesen fog működni az átirányítás.