2014-09-04 2 views
0

Я создаю веб-сервис для клиента, который извлекает данные из Sitefinity CMS. Проблема в том, что они хотят передать в Руководство для службы и получить информацию об этом элементе. Нет проблем, кроме как только я смог найти «живое» руководство для одного элемента (и это было путем расчесывания через HTML в конце).Sitefinity: Где я могу найти главный GUID для элемента контента?

Я собирался посмотреть на таблицы в SQL Server, но я не уверен, на какую таблицу посмотреть. Элементы контента имеют, конечно, несколько таблиц, все из которых связаны, и нет никакой документации о том, как смотреть на это. Я могу найти много документации по запросу мастера Guid, но не найти его.

О, и это специальные типы контента, созданные модулем Builder.

Любая помощь была бы оценена SOOOOO!

ответ

1
var master = DynamicModuleManager.GetManager().Lifecycle.GetMaster(<liveGuidHere>); 
2

Одним из крупнейших потребителей веб-сервисов Sitefinity является Sitefinity. Лучшее место, чтобы начать поиск этого руководства, - это посмотреть, какие вызовы веб-сервисов выполняются, когда вы поднимаете свой собственный список элементов контента в бэкэнд. Я использовал инструменты разработчика Chrome и проверил вкладку в сети.

Один я нашел для модуля хранит сделанный с модулем строителем был что-то к эффекту http://www.testsite.com/Sitefinity/Services/DynamicModules/Data.svc/?managerType=Telerik.Sitefinity.DynamicModules.DynamicModuleManager&providerName=OpenAccessProvider&itemType=Telerik.Sitefinity.DynamicTypes.Model.Stores.Store&provider=OpenAccessProvider&sortExpression=LastModified%20DESC&skip=0&take=50

JSon это возвращает список всех мастеров с их идентификаторами (примечание в списке, что элементы контента все имеют статус 0) http://www.sitefinity.com/documentation/documentationarticles/developers-guide/sitefinity-essentials/modules/content-lifecycle

0

Когда вы перейдете в администратор/модуль Builder/ваш модуль, вы увидите ссылку на API в верхнем правом углу.

Эта ссылка переведена на страницу с полным описанием API для вашего конкретного модуля, который является своего рода прохладным.

В принципе, вам нужно будет сначала найти свой товар, используя LINQ и метод расширения GetValue. Как только у вас есть предмет, вы можете получить его ID или любое другое свойство.

using Telerik.Sitefinity.Utilities.TypeConverters; 
using Telerik.Sitefinity.DynamicModules; 
using Telerik.Sitefinity.Model; 
.... 
var mgr = DynamicModuleManager.GetManager(); 
var countrymasters = from ctry in mgr.GetDataItems(TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.Destinations.Destination")) 
           where ctry.GetValue<string>("culture") == siteid && 
           (ctry.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live && ctry.Visible == true) 
           select new 
           { 
            airport_cd = ctry.GetValue<string>("airport_cd"), 
            country_master_cd = ctry.GetValue<string>("country_master_cd") 
           }; 
+0

Да, я знаю об этом. Моя проблема, с которой я сталкиваюсь, заключается в том, что это настраиваемый модуль, и я пытаюсь получить информацию о содержимом дополнительного модуля. –

+0

Таблицы, используемые Dynamic Module Builder, являются sf_dynamic_content, и в зависимости от имени вашего модуля может быть что-то вроде Flight_Flight или Destinations_Destination. Обратите внимание, что они не имеют префикса sf_, поэтому обязательно найдите их в верхней части дерева таблиц в SQL Management Studio :) К ним присоединяется столбец base_id. Существуют и другие связанные таблицы, например. для данных языка (sf_language_data) + некоторые другие, но те, что указаны выше, вероятно, являются тем, что вы ищете. –

Смежные вопросы