public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { List <Rss.RssItem> ret = new List <Rss.RssItem>(); UserImageGalleryDb db = (new UserImageGalleryDb()); UserImageGalleryPlaceholderData placeholderData = db.getUserImageGalleryPlaceholderData(page, placeholderDefinition.Identifier, langToRenderFor, true); string imageStorageDir = placeholderData.getImageStorageDirectory(page); CmsLocalImageOnDisk[] allResources = CmsLocalImageOnDisk.FetchAllImagesInDirectory(imageStorageDir, UserImageGalleryPlaceholderData.ImageExtensionsToDisplay); foreach (CmsLocalImageOnDisk image in allResources) { Rss.RssItem item = new Rss.RssItem(); string title = image.getImageCaption(); if (title == "") { title = image.FileName; } item.Title = title; Dictionary <string, string> pageParams = new Dictionary <string, string>(); pageParams.Add(UrlParamName, image.ResourceId.ToString()); item.Link = new Uri(page.getUrl(pageParams)); item.Description = renderFullSize(placeholderData, image, page, langToRenderFor); ret.Add(item); } // foreach return(ret.ToArray()); }
public override string Render() { StringBuilder html = new StringBuilder(); string thumbDir = CmsContext.UserInterface.ShowThumbnailPage.ThumbImageCacheDirectory; FileInfo[] files = (new DirectoryInfo(thumbDir)).GetFiles(); html.Append("Attempting to delete " + files.Length + " files in the thumbnail cache...<br>"); int deleted = 0; foreach (FileInfo f in files) { try { f.Delete(); deleted++; } catch { } } // foreach int numCached = CmsLocalImageOnDisk.DeleteAllCachedThumbnailUrls(); html.Append(deleted.ToString() + " files and " + numCached + " URLs in the thumbnail cache have been deleted.<br>"); return(html.ToString()); }
public void RenderSelectedItem_InViewMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { UserImageGalleryDb db = (new UserImageGalleryDb()); StringBuilder html = new StringBuilder(); UserImageGalleryPlaceholderData placeholderData = db.getUserImageGalleryPlaceholderData(page, identifier, langToRenderFor, true); CmsLocalImageOnDisk currentImage = getCurrentImageResource(); CmsLocalImageOnDisk[] allResources = CmsLocalImageOnDisk.FetchAllImagesInDirectory(placeholderData.getImageStorageDirectory(page), UserImageGalleryPlaceholderData.ImageExtensionsToDisplay); string action = PageUtils.getFromForm("action_" + currentImage.ResourceId.ToString(), ""); if (String.Compare(action, "updateCaption", true) == 0) { string newCaption = PageUtils.getFromForm("caption_" + currentImage.ResourceId.ToString(), ""); currentImage.setImageCaption(newCaption); currentImage.SaveToDatabase(); } else if (String.Compare(action, "deleteImage", true) == 0) { bool b = CmsLocalImageOnDisk.Delete(currentImage, true); html.Append("<div class=\"UserImageGallery\">" + getImageRemovedText(langToRenderFor) + " <a href=\"" + page.Url + "\">" + getReturnToGalleryText(langToRenderFor) + "</a></div>"); writer.Write(html.ToString()); return; } html.Append("<div class=\"UserImageGallery\">"); html.Append(getSelectedItem_NextPrevLinks(placeholderData, currentImage, allResources, langToRenderFor)); html.Append(renderFullSize(placeholderData, currentImage, page, langToRenderFor)); html.Append("</div>"); writer.Write(html.ToString()); }
protected override void Render(HtmlTextWriter writer) { CmsLanguage lang = CmsContext.currentLanguage; string imgText = CmsConfig.getConfigValue("UserImageGallery.ImageText", "Number of images", lang); string noGalleryText = CmsConfig.getConfigValue("UserImageGallery.NoGalleryText", "No image galleries are currently available", lang); CmsPage galleryPage = CmsContext.currentPage; int numGalleriesOutput = 0; StringBuilder html = new StringBuilder(); CmsPage[] sortedPages = CmsPage.SortPagesBySortOrdinal(galleryPage.ChildPages); for (int i = sortedPages.Length - 1; i >= 0; i--) { CmsPage g = sortedPages[i]; if (true) // g.showInMenu { UserImageGalleryDb db = new UserImageGalleryDb(); UserImageGalleryPlaceholderData data = new UserImageGalleryPlaceholderData(); data = db.getUserImageGalleryPlaceholderData(g, 1, CmsContext.currentLanguage, true); string dirOnDiskToView = data.getImageStorageDirectory(g); if (Directory.Exists(dirOnDiskToView)) { DirectoryInfo di = new DirectoryInfo(dirOnDiskToView); int update = Hatfield.Web.Portal.PageUtils.getFromForm("update", 0); if (update == 1 && g.currentUserCanWrite) { CmsLocalImageOnDisk[] updates = CmsLocalImageOnDisk.UpdateFolderInDatabase(di); } CmsLocalImageOnDisk[] allResources = CmsLocalImageOnDisk.FetchAllImagesInDirectory(di, UserImageGalleryPlaceholderData.ImageExtensionsToDisplay); if (allResources.Length >= 1) { numGalleriesOutput++; string thumbUrl = showThumbPage.getThumbDisplayUrl(allResources[0], 100, 100);; html.Append("<tr><td><a href=\"" + g.Url + "\"><img border=\"0\" src=\"" + thumbUrl + "\"></a></td><td><a href=\"" + g.Url + "\">" + g.Title + "</a><br />(" + allResources.Length + " images)</td></tr>"); } } } } // foreach if (numGalleriesOutput > 0) { writer.Write("<table cellspacing=\"10\">"); writer.Write(html.ToString()); writer.Write("</table>"); } else { writer.Write("<em>" + noGalleryText + "</em>"); } }
/// <summary> /// returns a blank (newly created) resource if not found /// </summary> /// <returns></returns> private CmsLocalImageOnDisk getCurrentImageResource() { int resId = getCurrentImageResourceId(); if (resId >= 0) { return(CmsLocalImageOnDisk.FetchLastRevision(resId)); } return(new CmsLocalImageOnDisk()); }
public PlaceholderDisplay getCurrentDisplayMode() { CmsLocalImageOnDisk r = getCurrentImageResource(); if (r.ResourceId < 0) { return(PlaceholderDisplay.MultipleItems); } else { return(PlaceholderDisplay.SelectedItem); } }
public void RenderSelectedItem_InEditMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { UserImageGalleryDb db = (new UserImageGalleryDb()); StringBuilder html = new StringBuilder(); UserImageGalleryPlaceholderData placeholderData = db.getUserImageGalleryPlaceholderData(page, identifier, langToRenderFor, true); CmsLocalImageOnDisk currentImage = getCurrentImageResource(); html.Append("<div class=\"UserImageGallery\">"); html.Append(renderFullSize(placeholderData, currentImage, page, langToRenderFor)); html.Append("</div>"); writer.Write(html.ToString()); }
public void RenderMultipleItems_InViewMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList) { UserImageGalleryDb db = (new UserImageGalleryDb()); StringBuilder html = new StringBuilder(); UserImageGalleryPlaceholderData placeholderData = db.getUserImageGalleryPlaceholderData(page, identifier, langToRenderFor, true); string imageStorageDir = placeholderData.getImageStorageDirectory(page); if (!System.IO.Directory.Exists(imageStorageDir)) { bool b = placeholderData.createImageStorageDirectory(page); if (!b) { if (CmsContext.currentUserIsSuperAdmin) { html.Append("<h1>System Error: could not create image storage directory: '" + imageStorageDir + "'</h1>"); } else { html.Append("<h1>System Error: could not create image storage directory!!</h1>"); } writer.Write(html.ToString()); return; } } CmsLocalImageOnDisk[] allResources = CmsLocalImageOnDisk.FetchAllImagesInDirectory(imageStorageDir, UserImageGalleryPlaceholderData.ImageExtensionsToDisplay); if (allResources.Length == 0 && page.currentUserCanWrite) { CmsLocalImageOnDisk.UpdateFolderInDatabase(new System.IO.DirectoryInfo(imageStorageDir)); allResources = CmsLocalImageOnDisk.FetchAllImagesInDirectory(imageStorageDir, UserImageGalleryPlaceholderData.ImageExtensionsToDisplay); } html.Append("<div class=\"UserImageGallery\">"); html.Append(getGalleryView(placeholderData, allResources, page, langToRenderFor)); html.Append("</div>"); if (page.currentUserCanWrite) { html.Append(getSwfUploadHtml(page, placeholderData, langToRenderFor)); } writer.Write(html.ToString()); }
} // RenderView private int getCurrentPageNumber(CmsLocalImageOnDisk[] searchResults, CmsLocalImageOnDisk imageToShow, UserImageGalleryPlaceholderData placeholderData) { int numPages = (int)Math.Ceiling((double)searchResults.Length / placeholderData.NumThumbsPerPage); if (numPages <= 0) { numPages = 1; } int startAtItemNumber = 0; if (imageToShow != null && imageToShow.ResourceId >= 0) { for (int i = 0; i < searchResults.Length; i++) { if (searchResults[i].ResourceId == imageToShow.ResourceId) { int rem = 0; Math.DivRem(i, placeholderData.NumThumbsPerPage, out rem); startAtItemNumber = i - rem; break; } } } else { startAtItemNumber = PageUtils.getFromForm("ugp", Int32.MinValue); } if (startAtItemNumber >= searchResults.Length) { startAtItemNumber = searchResults.Length - 1; } else if (startAtItemNumber < 0) { startAtItemNumber = 0; } int currPageNum = (int)Math.Ceiling((double)startAtItemNumber / placeholderData.NumThumbsPerPage) + 1; return(currPageNum); }
/// <summary> /// returns the number of image galleries updated. /// </summary> /// <returns></returns> public static int UpdateDatabaseCacheOfImageInfos() { // -- Update the CmsLocalImageOnDisk database cache from the disk source. int ret = 0; UserImageGalleryDb db = (new UserImageGalleryDb()); UserImageGalleryPlaceholderData[] phs = db.getAllUserImageGalleryPlaceholderDatas(); foreach (UserImageGalleryPlaceholderData ph in phs) { CmsPage p = CmsContext.getPageById(ph.PageId); if (p.ID >= 0) { string dir = ph.getImageStorageDirectory(p); if (dir != String.Empty) { CmsLocalImageOnDisk[] updates = CmsLocalImageOnDisk.UpdateFolderInDatabase(new System.IO.DirectoryInfo(dir)); ret++; } // if } // if } // foreach return(ret); }
public string getGalleryView(UserImageGalleryPlaceholderData placeholderData, CmsLocalImageOnDisk[] imageDatas, CmsPage page, CmsLanguage lang) { if (imageDatas.Length == 0) { return("<p><strong>" + getEmptyGalleryText(lang) + "</strong></p>"); } StringBuilder html = new StringBuilder(); string pagerHtml = getThumbnailPagerOutput(imageDatas, placeholderData, lang); html.Append("<p>" + pagerHtml + "</p>"); int startAtItemNumber = PageUtils.getFromForm("ugp", 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], page)); } 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; } CmsLocalImageOnDisk image = imageDatas[i]; html.Append("<td>"); html.Append(renderThumbnail(placeholderData, image, page)); 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
private string renderThumbnail(UserImageGalleryPlaceholderData placeholderData, CmsLocalImageOnDisk img, CmsPage page) { string caption = img.getImageCaption(); StringBuilder html = new StringBuilder(); html.Append("<div class=\"image\">"); if (caption.Trim() != "" && ( placeholderData.CaptionLocation == UserImageGalleryPlaceholderData.CaptionDisplayLocation.Top || placeholderData.CaptionLocation == UserImageGalleryPlaceholderData.CaptionDisplayLocation.TopAndBottom)) { html.Append("<div class=\"caption top\">"); html.Append(caption); html.Append("</div>"); // caption } string imgTag = img.getImageHtmlTag(placeholderData.ThumbnailDisplayBoxWidth, placeholderData.ThumbnailDisplayBoxHeight, ""); Dictionary <string, string> pageParams = new Dictionary <string, string>(); pageParams.Add(UrlParamName, img.ResourceId.ToString()); html.Append("<a href=\"" + page.getUrl(pageParams) + "\">"); html.Append(imgTag); html.Append("</a>"); if (caption.Trim() != "" && ( placeholderData.CaptionLocation == UserImageGalleryPlaceholderData.CaptionDisplayLocation.Bottom || placeholderData.CaptionLocation == UserImageGalleryPlaceholderData.CaptionDisplayLocation.TopAndBottom)) { html.Append("<div class=\"caption bottom\">"); html.Append(caption); html.Append("</div>"); // caption } html.Append("</div>"); return(html.ToString()); }
private string renderFullSize(UserImageGalleryPlaceholderData placeholderData, CmsLocalImageOnDisk imgToShow, CmsPage page, CmsLanguage lang) { string caption = imgToShow.getImageCaption(); StringBuilder html = new StringBuilder(); html.Append("<div class=\"image\">"); if (caption.Trim() != "" && ( placeholderData.CaptionLocation == UserImageGalleryPlaceholderData.CaptionDisplayLocation.Top || placeholderData.CaptionLocation == UserImageGalleryPlaceholderData.CaptionDisplayLocation.TopAndBottom)) { html.Append("<div class=\"caption top\">"); html.Append(caption); html.Append("</div>"); // caption } string imgTag = imgToShow.getImageHtmlTag(placeholderData.FullSizeDisplayBoxWidth, placeholderData.FullSizeDisplayBoxHeight, ""); html.Append(imgTag); if (page.currentUserCanWrite) { html.Append("<div class=\"caption bottom\">"); string formId = "userImageGallery"; html.Append(page.getFormStartHtml(formId)); html.Append(PageUtils.getHiddenInputHtml(UserImageGallery.UrlParamName, imgToShow.ResourceId.ToString())); html.Append(PageUtils.getHiddenInputHtml("action_" + imgToShow.ResourceId.ToString(), "updateCaption")); html.Append(PageUtils.getInputTextHtml("caption_" + imgToShow.ResourceId.ToString(), "caption_" + imgToShow.ResourceId.ToString(), caption, 40, 200)); html.Append(" <input type=\"submit\" value=\"" + getSetCaptionText(lang) + "\">"); html.Append(page.getFormCloseHtml(formId)); html.Append("</div>"); // caption html.Append(page.getFormStartHtml(formId)); html.Append(PageUtils.getHiddenInputHtml(UserImageGallery.UrlParamName, imgToShow.ResourceId.ToString())); html.Append(PageUtils.getHiddenInputHtml("action_" + imgToShow.ResourceId.ToString(), "deleteImage")); html.Append("<p align=\"right\">"); html.Append(" <input type=\"submit\" value=\"" + getRemoveImageText(lang) + "\">"); html.Append("</p>"); html.Append(page.getFormCloseHtml(formId)); } else if (caption.Trim() != "" && ( placeholderData.CaptionLocation == UserImageGalleryPlaceholderData.CaptionDisplayLocation.Bottom || placeholderData.CaptionLocation == UserImageGalleryPlaceholderData.CaptionDisplayLocation.TopAndBottom)) { html.Append("<div class=\"caption bottom\">"); html.Append(caption); html.Append("</div>"); // caption } html.Append("</div>"); return(html.ToString()); }
private string getSelectedItem_NextPrevLinks(UserImageGalleryPlaceholderData placeholderData, CmsLocalImageOnDisk imageToShow, CmsLocalImageOnDisk[] allImagesInGallery, CmsLanguage lang) { string nextUrl = ""; string prevUrl = ""; for (int i = 0; i < allImagesInGallery.Length; i++) { if (imageToShow.ResourceId == allImagesInGallery[i].ResourceId) { Dictionary <string, string> pageParams = new Dictionary <string, string>(); if (i > 0) { pageParams.Add(UrlParamName, allImagesInGallery[i - 1].ResourceId.ToString()); prevUrl = CmsContext.currentPage.getUrl(pageParams); } if (i < allImagesInGallery.Length - 1) { pageParams.Clear(); pageParams.Add(UrlParamName, allImagesInGallery[i + 1].ResourceId.ToString()); nextUrl = CmsContext.currentPage.getUrl(pageParams); } break; } } // for List <string> navLinks = new List <string>(); if (prevUrl != "") { navLinks.Add("<a href=\"" + prevUrl + "\">« " + getPrevLinkText(lang) + "</a>"); } int currentPageNum = getCurrentPageNumber(allImagesInGallery, imageToShow, placeholderData); navLinks.Add("<a href=\"" + getPagerUrl(currentPageNum, placeholderData) + "\">" + getReturnToGalleryText(lang) + "</a>"); if (nextUrl != "") { navLinks.Add("<a href=\"" + nextUrl + "\">" + getNextLinkText(lang) + " »</a>"); } return("<p class=\"pager\">" + (String.Join(" | ", navLinks.ToArray())) + "</p>"); }
protected void FolderTreeView_SelectedNodeChanged(object sender, EventArgs e) { int imagesPerRow = 2; FolderTreeView.SelectedNode.Expand(); DirectoryInfo di = new DirectoryInfo(FolderTreeView.SelectedNode.Value); CmsLocalImageOnDisk[] dirResources = CmsLocalImageOnDisk.UpdateFolderInDatabase(di); // CmsResource.GetResourcesInDirectory(di.FullName); CmsLocalImageOnDisk[] imgResources = FilterOutNonImageFiles(dirResources); StringBuilder html = new StringBuilder(); List <string> filenames = new List <string>(); filenames.Add(di.FullName); int fileNum = 0; bool rowStarted = false; html.Append("<table cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">"); foreach (CmsLocalImageOnDisk res in imgResources) { bool updateResource = false; string imgHtmlTag = res.getImageHtmlTag(120, -1, ""); // -- create the file's Url string fileUrl = res.getUrl(Context); string fiName = res.FileName; if (fiName.IndexOf("'") > -1) { fiName = fiName.Replace("'", "\\'"); fileUrl = fileUrl.Replace("'", "\\'"); } if (!fileUrl.StartsWith(CmsContext.ApplicationPath)) { fileUrl = CmsContext.ApplicationPath + fileUrl; } int phThumbWidth = 999; int phThumbHeight = 222; string thumbUrlFormat = showThumbPage.getThumbDisplayUrl(res, phThumbWidth, phThumbHeight); thumbUrlFormat = thumbUrlFormat.Replace(phThumbWidth.ToString(), "{0}"); thumbUrlFormat = thumbUrlFormat.Replace(phThumbHeight.ToString(), "{1}"); if (fileNum % imagesPerRow == 0) { if (rowStarted) { html.Append("</tr>"); } html.Append("<tr>"); } int[] dimensions = res.getImageDimensions(); if (dimensions.Length != 2) { dimensions = WebEditor.Helpers.InlineImageBrowser2.getImageDimensions(res.FilePath); res.setImageDimensions(dimensions); updateResource = true; } string imgId = "file_" + res.ResourceId.ToString(); html.Append("<td align=\"center\">"); string onclick = "doSelImg('" + imgId + "'); parent.selectImage('" + fiName + "','" + fileUrl + "'," + dimensions[0] + ", " + dimensions[1] + ", '" + thumbUrlFormat + "'); "; if (IsCKEditor) { onclick = "ckSelImg('" + imgId + "', '" + fileUrl.Replace("'", "\\'") + "'," + dimensions[0] + ", " + dimensions[1] + ");"; } html.Append(" <a href=\"#\" onclick=\"" + onclick + " return false;\">"); html.Append(imgHtmlTag); html.Append("</a> "); html.Append("<br /><div style=\"font-family: arial; font-size: 8pt; text-align: center; width: 120px; overflow: hidden;\">" + res.FileName + "</div>"); if (SelImagePath != "" && fileUrl == SelImagePath) { html.Append("<script>" + onclick + "</script>" + Environment.NewLine); } html.Append("</td>"); filenames.Add(res.FilePath); fileNum++; if (updateResource) { bool b = res.SaveToDatabase(); if (!b) { Console.Write("resource failed to update."); } } } // foreach if (rowStarted) { html.Append("</tr>"); } html.Append("</table>"); ph_ImagePanel.Controls.Add(new LiteralControl(html.ToString())); }