Используйте Web Money - это очень удобно

вторник, 30 октября 2007 г.

Поиск в Sharepoint. AdvancedSearchBox.

Кратко:
Задумал я сделать поиск по узлу используя вебчасти Sharepoint.
И столкунулся со следующим:
Если делать через фильтры, то соединить можно только один фильтр с одной вьюшкой,
Если AdvancedSearchBox то выбор параметров ограничен стандартным набором.
AdvancedSearchBox - нашел свойство в закладке свойство, там лежит xml схема удалить из нее свойства получилось сразу, а добавить нет,
Нашел вроде как сделать:
http://msdn2.microsoft.com/en-us/library/bb428648.aspx
Столкнулся со след проблемой:
В настройках поиска в общих службах есть "Сопоставления свойств метаданных", в нем я могу создать свой тип метаданных и ассоциировать его с типа данных на узле.
Но в этом списке находятся не все типы данных, часть типов которые я добавлял находятся а часть нет ,
Провел обход содержимого, появились необходимые метаданные.
Итак порядок действий примерно такой:
1. Обходим содержимое семейства узлов.
2. В
"Сопоставления свойств метаданных" создаем необходимые нам "управляемые свойства"
3. Цепляем к ним нужные нам "свойства обхода"
4. Кладем
AdvancedSearchBox на страницу поиска, настраиваем все параметры, и переделываем XML, в пункте "свойства". Удаляем все ненужное сохраняя его структуру, добавляем орпеделения наших "управляемые свойства" с указанием типа и имени подстановки, создаем свой раздел и наполняем его ссылками на определения.
Готово!

Обсуждение темы на GotDotNet
Использование вебчастей Sharepoint - поиск

вторник, 23 октября 2007 г.

Создание узла и управление правами.

Первое создаем подузел
SPSite site = new SPSite((String)url);
SPWeb web = site.OpenWeb();
SPWebTemplate webTemplate = site.GetCustomWebTemplates(1049)[WEB_TEMPLATE_NAME];
web.Webs.Add((String)webUrlName, (String) webName, "", 1049, webTemplate, true, false);
web.Update();
Второе создаем или используем разрешения:
SPWeb newWeb = web.Webs[ (String) webUrlName];
SPRoleDefinition readersRD = readersPermission(newWeb);
SPRoleDefinition readerC = web.RoleDefinitions[GLOBAL_ROLE_READER];
...
private static SPRoleDefinition readersPermission(SPWeb newWeb)
{
SPRoleDefinition readersRD;
readersRD = new SPRoleDefinition();
readersRD.Name = LOCAL_GROUPS_READERS;
readersRD.BasePermissions =
SPBasePermissions.ViewVersions | SPBasePermissions.ViewPages | SPBasePermissions.ViewListItems | SPBasePermissions.ViewFormPages
| SPBasePermissions.UseRemoteAPIs | SPBasePermissions.UseClientIntegration | SPBasePermissions.OpenItems | SPBasePermissions.Open
| SPBasePermissions.CreateAlerts | SPBasePermissions.BrowseUserInfo;
readersRD.Description = DCB.CM.Common.CM_LOCAL_GROUPS_READERS;
newWeb.RoleDefinitions.Add(readersRD);
readersRD = newWeb.RoleDefinitions[readersRD.Name];
readersRD.Update();
return readersRD;
}
Назначаем разрешения:

private static void setPermissionsToAdmins(SPWeb web1, SPWeb newWeb, SPRoleDefinition managersRD, SPRoleDefinition readersRD, SPRoleDefinition adminsRD, SPRoleDefinition readerC)
{
SPGroup adminsG = newWeb.SiteGroups[GLOBAL_GROUPS_ADMINS];
{
SPRoleAssignment ra = new SPRoleAssignment(adminsG);
ra.RoleDefinitionBindings.Add(adminsRD);
newWeb.RoleAssignments.Add(ra);
}
{
SPUser sysUser = web.SiteUsers.GetByID(1073741823);
SPRoleAssignment ra = new SPRoleAssignment(sysUser);
ra.RoleDefinitionBindings.Add(managersRD);
ra.RoleDefinitionBindings.Add(adminsRD);
newWeb.RoleAssignments.Add(ra);
}
newWeb.Update();
}
для списков тоже самое.
Будет время дополню новой инфой.

вторник, 2 октября 2007 г.

Шаблон страницы

Выкладываю пример дизайна страницы под Sharepoint.

Шаблон

Вот положил в архив - файл закачайте на сервер и смотрите через дизайнер.