Em DotNetNuke, como posso obter um objeto moduleInfo se eu só tenho um ModuleId (e não um tabid)
-
05-07-2019 - |
Pergunta
O único método fornecido pelo quadro DNN para obter um módulo de ID também exige a identificação guia. O que posso fazer se eu não fizer Have a ID guia?
Solução
O método GetModule fora da classe DotNetNuke.Entities.Modules.ModuleController aceitará um valor "nulo" para ID guia se você não tiver um ID guia. Ou seja, tente o seguinte:
new ModuleController().GetModule(moduleId, DotNetNuke.Common.Utilities.Null.NullInteger)
Veja também meu blog sobre o assunto .
Outras dicas
Uma coisa que atente para quando passar uma tabid nulo para GetModule é que se você tem um módulo que está instalado em um número de diferentes guias, você estará recebendo a primeira volta, então os valores para tabid, TabModuleId e ModuleOrder será com base nesse primeiro momento, que pode ou não pode ser o exemplo que você queria.
HTH,
Don
Brian, eu só dei uma olhada no código para GetModule (), e não há qualquer código VB específica no quadro que verifica a tabid sendo nula. O que é que interessante é que o procedimento armazenado que faz parte das fileiras do SqlDataProvider seleciona a partir da visão módulos que têm um moduleId correspondência, não importa o que tabid é ...
ALTER PROCEDURE [dbo].[dnn_GetModule]
@ModuleId int,
@TabId int
AS
SELECT *
FROM dbo.dnn_vw_Modules
WHERE ModuleId = @ModuleId
AND (TabId = @TabId or @TabId is null)
Se eu entendi corretamente, isso iria retornar todas as linhas onde moduleId é o que você especificou, não importa se @tabid é nulo ou não. Isso faz com que o @TabId bastante inútil, você não acha?