如何让 DNN 为自定义模块创建站点地图链接?
How to get DNN to create a sitemap links for custom modules?
我们有一个带有自定义模块的 DNN 网站,它使用 Ajax 来加载网格项。
如何让 DNN 也为这些链接创建站点地图?我目前正在使用外部程序,但希望 DNN 自动生成包含我们所有链接的站点地图。
您通常会通过为您的模块创建 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>
我们有一个带有自定义模块的 DNN 网站,它使用 Ajax 来加载网格项。
如何让 DNN 也为这些链接创建站点地图?我目前正在使用外部程序,但希望 DNN 自动生成包含我们所有链接的站点地图。
您通常会通过为您的模块创建 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>