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

时间:2018-07-31 07:00:04

标签: dotnetnuke sitemap

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

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

该站点是:https://www.parrot.co.za

1 个答案:

答案 0 :(得分:2)

通常,您可以通过为模块创建SiteMap提供程序来实现此目的。

您可以在我的DNNSimpleArticle module on GitHub

中找到一个有效的示例
 public class Sitemap : SitemapProvider
    {

        public override List<SitemapUrl> GetUrls(int portalId, PortalSettings ps, string version)
        {
            var listOfUrls = new List<SitemapUrl>();

            foreach (Article ai in ArticleController.GetAllArticles(portalId))
            {

                var pageUrl = new SitemapUrl
                              {
                                  Url =
                                      ArticleController.GetArticleLink(ai.TabID, ai.ArticleId),
                                  Priority = (float)0.5,
                                  LastModified = ai.LastModifiedOnDate,
                                  ChangeFrequency = SitemapChangeFrequency.Daily
                              };
                listOfUrls.Add(pageUrl);

            }
            return listOfUrls;
        }
    }

然后您需要在模块安装期间使用的.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>