Oszlop név korrekció WSS (MOSS) szerveren
Az adminisztrációs felület a Windows SharePoint Service 3.0-ban önmagában egy kincs, amin szinte mindent meg lehet valósítani, át lehet konfigurálni. Ugyanakkor egy átok is lehet, ha valaki keveset értve SharePoint logikájából össze-vissza kattintgatva megváltoztatgat ezt-azt.
A tartalom típusok kezelésénél (content type) lehetőség van megváltoztatni az egyes tartalomtípusokban található oszlopok nevét. Ez praktikusan azt jelenti, hogy például a névjegy, vagy a naptár tartalomtípusnak a standard, beépített oszlopainak a fejlécét globálisan át lehet írni.
Aki nem tudná, hogy ezt hol kell elvégezni:
Először ki kell választani egy kiszemelt listát - olyat, ami egy módosítani kívánt tartalomtípusra épül - majd a lista beállításoknál a speciális beállítások között engedélyezni kell a tartalomtípusok kezelését.
Eztuán visszatérve a lista beállítások lapra már kiválaszthatjuk a módosítani kívánt tartalom típust.
A tartalom típusból kiválasztva a módosítandó mezőt, átírhatjuk annak tetszőleges mezőjének megjelenített nevét és bármely egyéb adatát.
Itt most legyünk figyelmesek: a módosítást az FldEdit.aspx oldalon végezzük úgy, hogy közben az oldal paramétereként az url-ben a szerkesztett mező statikus neve jelenik meg.
Apró probléma, hogy van olyan mező, amit ha átnevezünk, akkor nem tudjuk később visszanevezni, mármint szabályosan nem. Ilyen mező például a feladat listának a cím mezője is. Azzal a problémával kerülünk szembe, mikor vissza akarjuk nevezni a mezőt, hogy a kiválasztott mezőnév (cím) már létezik.
Ez persze teljesen igaz - meg is találjuk a cím mezőt a naptár típus mezőjeként - csakhogy nekünk az átnevezett mező a feladatoknál nem mindig megfelelő. Ekkor több dolgot tehetünk: kódból átírhatjuk a tartalom típus mezőjének a nevét, vagy egy apró hackeléssel visszanevezhetjünk a mezőnket.
A visszanevezésnél azt használjuk ki, hogy a SharePoint számos adminisztrációs oldalán kizárólag kliens oldalon - javascript-ből - ellenőrzi az egyes mezők helyességét.
A mező átnevezéséhez - akár más létező mezőnévre is - a következő lépéssort kell végrehajtanunk:
- Lépjünk be a mappába: %commonprogramfiles%\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS
- Keressük meg az FldEdit.aspx fájlt és nyissuk meg jegyzettömbbel
- Keressük meg benne a következő kódrészletet:
if (doesFieldNameConflict(DisplayName))
{
alert(L_alert3_Text);
frm.DisplayName.focus();
return false;
}
Elegendő, ha a doesfieldnameconflict szóra keresünk rá, mert mindössze egy helyen fordul elő a fájlban
- Majd tegyük commentté ezt a részt egyszerűen // jeleket téve a sorok elé.
- Adjunk ki egy IISRESET parancsot
- Most már szabadon módosíthatjuk a tartalomtípus mezők neveit
- Ezután csináljuk vissza a módosítást a biztonság kedvéért
Fontos, hogy ez a megoldás nem biztos, hogy támogatott a Microsoft által, de a tapasztalatok szerint működik. A kipróbálásáért természetesen felelősséget mi sem vállalunk.
|