2016-07-01 12 views
0

私のウェブサイトはhttp://www.bodytshirt.com です。このサイトはDotNetNukeから構築されています。デフォルトのサイトマップはhttp://www.bodytshirt.com/sitemap.aspx です。このサイトマップは、パラメータなしのページURLのみを表示します。自分のサイトマップでデータベース内のすべての製品を表示したい。などhttp://www.bodytshirt.com/product/id/141/key/i-am-a-software-engineerDNNとC#を使用してサイトマップを作成する方法

私の提案をしてください。要件のカスタムサイトマップを作成する必要がありますか?

答えて

1

これは、DNNのサイトマッププロバイダで行うことができます。私のオープンソース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> 
を提出して、あなたがそれを行うことができ、ことを登録する必要があります
+0

ありがとうございます。私はそれを試します:) –

+0

こんにちはクリスハモンド。あなたの提案としてcustom_sitemapを追加し、新しいsitemapProviderをweb.configに追加しました。しかし、custom_sitemapは機能しません。私はcustom_sitemapにデバッグできません。何か不足していませんか? –

+0

こんにちは、私は答えを見つけました。/portal/0_systemのsitemap.xmlを削除してください。カスタムサイトマップの作業が正しい:) –