コード例 #1
0
        public string getGalleryView(SingleImageGalleryPlaceholderData placeholderData, SingleImageData[] imageDatas, CmsPage[] pagesToGatherImagesFrom, CmsLanguage langToRenderFor)
        {
            if (imageDatas.Length == 0)
            {
                return("<p><strong>There currently aren't any images to view in this gallery</strong></p>");
            }

            StringBuilder html = new StringBuilder();

            string pagerHtml = getThumbnailPagerOutput(imageDatas, placeholderData);

            html.Append("<p>" + pagerHtml + "</p>");

            int startAtItemNumber = PageUtils.getFromForm("gn", 0);

            if (startAtItemNumber >= imageDatas.Length)
            {
                startAtItemNumber = imageDatas.Length - 1;
            }
            int endAt = Math.Min(startAtItemNumber + placeholderData.NumThumbsPerPage - 1, imageDatas.Length - 1);


            if (startAtItemNumber == 0 && endAt == 0 && imageDatas.Length == 1)
            {
                html.Append(renderThumbnail(placeholderData, imageDatas[0], langToRenderFor));
            }
            else
            {
                html.Append("<table>" + Environment.NewLine);
                bool rowStarted = false;

                for (int i = startAtItemNumber; i <= endAt; i++)
                {
                    if (endAt <= 0)
                    {
                        break;
                    }

                    if (i % placeholderData.NumThumbsPerRow == 0)
                    {
                        if (rowStarted)
                        {
                            html.Append("</tr>" + Environment.NewLine);
                        }
                        html.Append("<tr>" + Environment.NewLine);
                        rowStarted = true;
                    }

                    SingleImageData image = imageDatas[i];
                    html.Append("<td>");
                    html.Append(renderThumbnail(placeholderData, image, langToRenderFor));
                    if (CmsContext.currentPage.currentUserCanWrite)
                    {
                        CmsPage pageContainingImage = image.getPageContainingImage(pagesToGatherImagesFrom);
                        if (pageContainingImage != null)
                        {
                            html.Append("<br />");
                            html.Append("<a title=\"found on page '" + pageContainingImage.Title.Replace("\"", "") + "'\" href=\"" + pageContainingImage.Url + "\">( found here )</a>");
                        }
                    }
                    html.Append("</td>" + Environment.NewLine);
                } // for
                if (rowStarted)
                {
                    html.Append("</tr>");
                }
                html.Append("</table>" + Environment.NewLine);
            } // else

            html.Append("<p>" + pagerHtml + "</p>");

            return(html.ToString());
        } // RenderView