代码之家  ›  专栏  ›  技术社区  ›  Tig7r

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

  •  1
  • Tig7r  · 技术社区  · 6 年前

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

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

    网站是: https://www.parrot.co.za

    1 回复  |  直到 6 年前
        1
  •  2
  •   Chris Hammond    6 年前

    通常,您可以通过为模块创建站点地图提供程序来完成此操作。

    你可以在我的 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>