private FileAggItem[] FetchAutoAggregatedPageFiles(CmsPage aggregatorPage, int aggIdentifier, CmsLanguage aggLang, RenderParameters renderParams, CmsUrlFormat pageLinkUrlFormat, CmsUrlFormat fileLinkUrlFormat)
        {
            CmsPage rootPageToGatherFrom = aggregatorPage;

            if (renderParams.PageIdToGatherFilesFrom >= 0)
            {
                rootPageToGatherFrom = CmsContext.getPageById(renderParams.PageIdToGatherFilesFrom);
            }

            CmsContext.PageGatheringMode gatherMode = CmsContext.PageGatheringMode.ChildPagesOnly;
            if (renderParams.RecursiveGatherFiles)
            {
                gatherMode = CmsContext.PageGatheringMode.FullRecursion;
            }

            List <string> phTypesToSearchFor = new List <string>();

            phTypesToSearchFor.Add("FileLibraryDetails");
            CmsPage[]   pageFilePages = CmsContext.getAllPagesWithPlaceholder("PageFiles", rootPageToGatherFrom, gatherMode);
            PageFilesDb pageFilesDb   = new PageFilesDb();

            PageFilesItemData[] fileItems = pageFilesDb.getPageFilesItemDatas(pageFilePages, aggLang);

            return(FileAggItem.FromPageFilesItemData(fileItems, pageLinkUrlFormat, fileLinkUrlFormat));
        }
        }     // NewsAggItem class

        private NewsAggItem[] FetchAutoAggregatedNewsArticleDetails(CmsPage aggregatorPage, int aggIdentifier, CmsLanguage aggLang, RenderParameters renderParams, CmsUrlFormat linkUrlFormat)
        {
            CmsPage rootPageToGatherFrom = aggregatorPage;

            if (renderParams.PageIdToGatherNewsFrom >= 0)
            {
                rootPageToGatherFrom = CmsContext.getPageById(renderParams.PageIdToGatherNewsFrom);
            }

            CmsContext.PageGatheringMode gatherMode = CmsContext.PageGatheringMode.ChildPagesOnly;
            if (renderParams.RecursiveGatherNews)
            {
                gatherMode = CmsContext.PageGatheringMode.FullRecursion;
            }

            CmsPage[] newsDetailsPages = CmsContext.getAllPagesWithPlaceholder("NewsArticleDetails", rootPageToGatherFrom, gatherMode);
            NewsArticleDb.NewsArticleDetailsData[] newsToShow = new NewsArticleDb().getNewsDetailsByYear(newsDetailsPages, renderParams.AggregatorData.YearToDisplay, aggLang);

            return(NewsAggItem.FromNewsArticleDetailsData(newsToShow, linkUrlFormat));
        }
        private FileAggItem[] FetchAutoAggregatedFileLibraryDetails(CmsPage aggregatorPage, int aggIdentifier, CmsLanguage aggLang, RenderParameters renderParams, CmsUrlFormat pageLinkUrlFormat, CmsUrlFormat fileLinkUrlFormat)
        {
            CmsPage rootPageToGatherFrom = aggregatorPage;

            if (renderParams.PageIdToGatherFilesFrom >= 0)
            {
                rootPageToGatherFrom = CmsContext.getPageById(renderParams.PageIdToGatherFilesFrom);
            }

            CmsContext.PageGatheringMode gatherMode = CmsContext.PageGatheringMode.ChildPagesOnly;
            if (renderParams.RecursiveGatherFiles)
            {
                gatherMode = CmsContext.PageGatheringMode.FullRecursion;
            }

            List <string> phTypesToSearchFor = new List <string>();

            phTypesToSearchFor.Add("FileLibraryDetails");
            CmsPage[] fileDetailsPages = CmsContext.getAllPagesWithPlaceholder("FileLibraryDetails", rootPageToGatherFrom, gatherMode);
            List <FileLibraryDetailsData> filesToShow = db.fetchDetailsData(fileDetailsPages, aggLang);

            return(FileAggItem.FromFileLibraryDetailsData(filesToShow.ToArray(), base.categoryList, pageLinkUrlFormat, fileLinkUrlFormat));
        }