Dotnetnuke 如何让DNN为自定义模块创建站点地图链接?

Dotnetnuke 如何让DNN为自定义模块创建站点地图链接?,dotnetnuke,sitemap,Dotnetnuke,Sitemap,我们有一个带有自定义模块的DNN网站,它使用Ajax加载网格项 如何让DNN也为这些链接创建站点地图?我目前正在使用一个外部程序,但希望DNN自动生成这些网站地图与我们的所有链接 该站点是:您通常会通过为模块创建站点地图提供程序来实现这一点 你可以在我的 公共类站点地图:站点地图提供程序 { 公共覆盖列表getURL(int-portalId、PortalSettings-ps、字符串版本) { var listOfUrls=新列表(); foreach(ArticleController.Ge

我们有一个带有自定义模块的DNN网站,它使用Ajax加载网格项

如何让DNN也为这些链接创建站点地图?我目前正在使用一个外部程序,但希望DNN自动生成这些网站地图与我们的所有链接


该站点是:

您通常会通过为模块创建站点地图提供程序来实现这一点

你可以在我的

公共类站点地图:站点地图提供程序
{
公共覆盖列表getURL(int-portalId、PortalSettings-ps、字符串版本)
{
var listOfUrls=新列表();
foreach(ArticleController.GetAllArticles(portalId)中的Article ai)
{
var pageUrl=新站点映射URL
{
网址=
ArticleController.GetArticleLink(ai.TabID,ai.ArticleId),
优先级=(浮动)0.5,
LastModified=ai.LastModifiedOnDate,
ChangeFrequency=站点地图ChangeFrequency.每日
};
添加(页面URL);
}
返回列表;
}
}
然后,您需要在模块安装期间使用的.DNN文件中使用DNN注册站点地图

<component type="Config">
          <config>
            <configFile>web.config</configFile>
            <install>
              <configuration>
                <nodes>
                  <node path="/configuration/dotnetnuke/sitemap/providers" action="update" key="name" collision="overwrite">
                    <add name="DNNSimpleArticleSiteMapProvider" type="Christoc.Modules.dnnsimplearticle.Providers.Sitemap.Sitemap, DNNSimpleArticle" providerPath="~\DesktopModules\dnnsimplearticle\Providers\Sitemap\" />
                  </node>
                </nodes>
              </configuration>
            </install>
            <uninstall>
              <configuration>
                <nodes />
              </configuration>
            </uninstall>
          </config>
        </component>

web.config

如何更改foreach循环?目前,我们的详细产品视图模块根据URL中的SKU(查询字符串)加载特定产品。选项卡ID保持不变,因此我们使用一个模块在模板上动态加载我们的产品详细信息。getarticlelink中FOR循环调用的示例
<component type="Config">
          <config>
            <configFile>web.config</configFile>
            <install>
              <configuration>
                <nodes>
                  <node path="/configuration/dotnetnuke/sitemap/providers" action="update" key="name" collision="overwrite">
                    <add name="DNNSimpleArticleSiteMapProvider" type="Christoc.Modules.dnnsimplearticle.Providers.Sitemap.Sitemap, DNNSimpleArticle" providerPath="~\DesktopModules\dnnsimplearticle\Providers\Sitemap\" />
                  </node>
                </nodes>
              </configuration>
            </install>
            <uninstall>
              <configuration>
                <nodes />
              </configuration>
            </uninstall>
          </config>
        </component>