如何使用DNN和c#创建站点地图

本文关键字:创建 站点 地图 何使用 DNN | 更新日期: 2023-09-27 17:53:46

我的网站是http://www.bodytshirt.com这个网站是由DotNetNuke建立的。它的默认站点地图是http://www.bodytshirt.com/sitemap.aspx这个站点地图只显示页面URL,没有任何参数。我想我的网站地图显示所有产品在我的数据库。例如http://www.bodytshirt.com/product/id/141/key/i-am-a-software-engineer

请给出我的建议。我应该为我的需求创建一个自定义的站点地图吗?

如何使用DNN和c#创建站点地图

您可以使用DNN中的Sitemap提供程序完成此操作。我的开源DNNSimpleArticle模块有一个这样的例子:

https://github.com/ChrisHammond/dnnsimplearticle/blob/6d5d2c5bb074dd2bdede40fac4eb3c78408ab884/Providers/Sitemap/Sitemap.cs

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文件

https://github.com/ChrisHammond/dnnsimplearticle/blob/6d5d2c5bb074dd2bdede40fac4eb3c78408ab884/dnnsimplearticle.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>