public override List <SitemapUrl> GetUrls(int portalId, PortalSettings ps, string version) { var ctl = new DNNArticleController(); var lst = ctl.GetTopArticlesBySQL(portalId, "", "", "publishdate desc", 5000, DisplayType.ActivedOnly, ApprovedDisplayType.ApprovedOnly, -1, FeaturedDisplayType.All, -1, true, -1, Null.NullDate, Null.NullDate); var urls = new List <SitemapUrl>(); foreach (var dnnArticleInfo in lst) { var blogUrl = GetBlogUrl(dnnArticleInfo); urls.Add(blogUrl); } return(urls); }
private List <DNNArticleInfo> GetDNNList() { var ctl = new DNNArticleController(); string modules = ""; modules = !MultiModules?SelectedModule.ToString(CultureInfo.InvariantCulture) : SelectedModules; int displaynumber = 64000; //if (!string.IsNullOrEmpty(Convert.ToString(_settings[MySettings.RssDisplayNumber]))) //{ // displaynumber = int.Parse(Convert.ToString(_settings[MySettings.RssDisplayNumber])); //} FeaturedDisplayType featured = FeaturedType(_settings); var condition = new SearchCondition(); condition.SearchKey = ""; condition.portalid = _selectedPortalID; condition.modules = modules; if (!string.IsNullOrEmpty(SelectedCategory)) { condition.categories.Add(SelectedCategory); } condition.activeType = DisplayType.All; condition.ApprovedType = ApprovedDisplayType.All; condition.recent = -1; condition.featuredType = featured; //condition.CreatedByUserID = uid; condition.BeginDate = Null.NullDate; condition.EndDate = Null.NullDate; // Return ctl.GetTopArticlesBySQL(SelectedPortalID, modules, SelectedCategory, "publishdate desc", displaynumber, DisplayType.ActivedOnly, ApprovedDisplayType.ApprovedOnly, -1, featured, uid, Me.CheckPermission, -1, Null.NullDate, Null.NullDate) // return ctl.GetPageArticlesBySQL(condition, "publishdate desc", -1, uid, CheckPermission, 0, displaynumber); if (DataCache.GetCache("DNNARSS-" + SelectedModule + "_" + SelectedCategory) != null) { return((List <DNNArticleInfo>)DataCache.GetCache("DNNARSS-" + SelectedModule + "_" + SelectedCategory)); } var lst = ctl.GetPageArticlesBySQL(condition, "publishdate desc", -1, -1, true, 0, displaynumber); //DataCache.SetCache("DNNARSS-" + SelectedModule + "_" + SelectedCategory, lst, TimeSpan.FromDays(1)); return(lst); }
public override List <UrlRule> GetRules(int portalId) { var rules = new List <UrlRule>(); var articleController = new DNNArticleController(); var ctl = new ArticleAssignedCategoriesController(); var ctlrel = new RelatedArticleController(); try //sometimes a error occurs. we need to know about it. //todo log the error { ArrayList modulesByDefinition; if (!Debugger.IsAttached) { var catlist = new List <string>(); var modlist = new List <int>(); //CategoryArticleList modules modulesByDefinition = GetModulesByDefinition(portalId, "CategoryArticleList"); foreach (ModuleInfo module in modulesByDefinition.OfType <ModuleInfo>()) { if (module.PortalID == portalId && !modlist.Contains(module.ModuleID)) { var categories = GetCategories(module); foreach (CategoryInfo category in categories) { var catname = category.ItemID.ToString(CultureInfo.InvariantCulture) + "/" + module.ModuleID.ToString(CultureInfo.InvariantCulture); // + "/" + FullCategoryTitleAsPath(category, module.ModuleID); if (!catlist.Contains(catname)) { AddRule(rules, GetCategoryRule(category, module, rules)); catlist.Add(catname); } } modlist.Add(module.ModuleID); } } } //Gather information of DNNArticleSearch List modules and exclude them from processing //because the display all article List <int> lstSeachtModules = new List <int>(); modulesByDefinition = GetModulesByDefinition(portalId, "DNNArticleSearch"); foreach (ModuleInfo module in modulesByDefinition.OfType <ModuleInfo>()) { if (ModuleSetting("ShowInDNNArticleList", module, false) == true) { lstSeachtModules.Add(ModuleSetting("DNNArticleListTab", module, -1)); } } List <string> urlTemplates = LoadConfig(portalId); // DNNA LIST // For each DNNA list, load all articles in the defined view modulesByDefinition = GetModulesByDefinition(portalId, "DNNArticleList"); var listModules = modulesByDefinition.OfType <ModuleInfo>(); foreach (ModuleInfo listModule in listModules) { if (lstSeachtModules.Contains(listModule.TabID)) { continue; } var repos = new ArticleListRepository(); var viewmoduleTabid = ModuleSetting("ViewTab", listModule, -1); if (viewmoduleTabid == -1) { //DnnLog.Error(string.Format("DNNArticle module with id [{0}] ", listModule.ModuleID)); //DnnLog.Error(string.Format("on Portal [{0}]", portalId)); //DnnLog.Error(string.Format("tab [{0}] ", listModule.TabID)); //DnnLog.Error(string.Format(" with name [{0}] has no View Module defined", listModule.ContentTitle)); DnnLog.Error(string.Format("DNNArticle module with id [{0}] on Portal [{3}], tab [{1}] with name [{2}] has no View Module defined", listModule.ModuleID, listModule.TabID, listModule.ContentTitle, portalId)); } else { List <DNNArticleInfo> lst = repos.GetArticles(listModule, portalId); foreach (var article in lst) { AddRule(rules, GetArticleRule(article, listModule, urlTemplates, rules)); foreach (CategoryInfo category in ctl.GetArticleCategoriesByArticleID(article.ItemId)) { AddRule(rules, GetCategoryLinkRule(article, category, listModule, rules)); } List <DNNArticleInfo> relatedArticles = ctlrel.GetRelatedDNNArticles(article.ItemId); foreach (var relarticle in relatedArticles) { AddRule(rules, GetArticleRule(relarticle, listModule, urlTemplates, rules)); List <DNNArticleInfo> relatedArticles2 = ctlrel.GetRelatedDNNArticles(relarticle.ItemId); foreach (var relarticle2 in relatedArticles2) { AddRule(rules, GetArticleRule(relarticle2, listModule, urlTemplates, rules)); } } } } } // DNNA DYNAMIC LIST //Not all articles are accessible via DNNAlist modules or via related articles. Some are maybe just used in html modules. //So we will fetch them all and see if we missed some. Those will we displayed in a default viewModule modulesByDefinition = GetModulesByDefinition(portalId, "DNNArticle"); foreach (ModuleInfo sourceModule in modulesByDefinition.OfType <ModuleInfo>()) { // Analyse top 60000 articles List <DNNArticleInfo> articles = articleController.GetTopArticlesBySQL(portalId, sourceModule.ModuleID.ToString(CultureInfo.InvariantCulture), "", "publishdate desc", 60000, DisplayType.All, ApprovedDisplayType.All, -1, FeaturedDisplayType.All, -1, false, -1, Null.NullDate, Null.NullDate); foreach (DNNArticleInfo article in articles) { var param = "ArticleId=" + article.ItemId; var found = rules.Any(rule => (rule.Parameters == param)); if (!found) { AddRule(rules, GetArticleRule(article, sourceModule, urlTemplates, rules)); } } } } catch (Exception ex) { var a = ex.Message; DnnLog.Error(string.Format("Error HolonCom.DNNArticleURLProvider: Portal [{0}] failed with error [{1}]. Stacktrace: [{2}] ", portalId, ex.Message, ex.StackTrace)); } return(rules); }