using System; using System.Collections; using CMS.CMSHelper; using CMS.ExtendedControls; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.UIControls; public partial class CMSModules_Content_Attachments_DirectFileUploader_PublicFileUploader : LivePage { #region "Private variables" private MediaSourceEnum mSourceType = MediaSourceEnum.DocumentAttachments; private Hashtable properties = null; #endregion #region "Private properties" /// /// Gets or sets current source type. /// private MediaSourceEnum SourceType { get { return mSourceType; } set { mSourceType = value; } } #endregion #region "Page events" protected void Page_Load(object sender, EventArgs e) { // Validate query string if (!QueryHelper.ValidateHash("hash")) { // Do nothing } else { String identifier = QueryHelper.GetString("identifier", null); if (String.IsNullOrEmpty(identifier)) { return; } properties = WindowHelper.GetItem(identifier) as Hashtable; if (properties == null) { return; } CurrentMaster.DevelopmentMode = false; // Get information on current source type string sourceType = ValidationHelper.GetString(GetProp("source"), "attachments"); SourceType = CMSDialogHelper.GetMediaSource(sourceType); // Ensure additional styles CurrentMaster.HeadElements.Visible = true; CurrentMaster.HeadElements.Text += CSSHelper.GetStyle("*{direction:ltr !important;}body{background:transparent !important;}input,input:focus,input:hover,input:active{border:none;border-color:transparent;outline:none;}"); // Get uploader control based on the current source type string uploaderPath = ""; if (SourceType == MediaSourceEnum.MediaLibraries) { // If media library module is running if (ModuleEntry.IsModuleRegistered(ModuleEntry.MEDIALIBRARY) && ModuleEntry.IsModuleLoaded(ModuleEntry.MEDIALIBRARY)) { uploaderPath = "~/CMSModules/MediaLibrary/Controls/Dialogs/DirectFileUploader/DirectMediaFileUploaderControl.ascx"; } } else { uploaderPath = "~/CMSModules/Content/Controls/Attachments/DirectFileUploader/DirectFileUploaderControl.ascx"; } // Load direct file uploader if (uploaderPath != "") { DirectFileUploader fileUploaderElem = this.LoadUserControl(uploaderPath) as DirectFileUploader; if (fileUploaderElem != null) { // Insert uploader to parent container pnlUploaderElem.Controls.Add(fileUploaderElem); // Initialize uploader control properties by query string values fileUploaderElem.AttachmentGUID = ValidationHelper.GetGuid(GetProp("attachmentguid"), Guid.Empty); fileUploaderElem.AttachmentGroupGUID = ValidationHelper.GetGuid(GetProp("attachmentgroupguid"), Guid.Empty); fileUploaderElem.AttachmentGUIDColumnName = ValidationHelper.GetString(GetProp("attachmentguidcolumnname"), null); fileUploaderElem.FormGUID = ValidationHelper.GetGuid(GetProp("formguid"), Guid.Empty); fileUploaderElem.DocumentID = ValidationHelper.GetInteger(GetProp("documentid"), 0); fileUploaderElem.NodeParentNodeID = ValidationHelper.GetInteger(GetProp("parentid"), 0); fileUploaderElem.NodeClassName = ValidationHelper.GetString(GetProp("classname"), ""); fileUploaderElem.InsertMode = ValidationHelper.GetBoolean(GetProp("insertmode"), false); fileUploaderElem.OnlyImages = ValidationHelper.GetBoolean(GetProp("onlyimages"), false); fileUploaderElem.ParentElemID = QueryHelper.GetString("parentelemid", String.Empty); fileUploaderElem.CheckPermissions = ValidationHelper.GetBoolean(GetProp("checkperm"), true); fileUploaderElem.IsLiveSite = ValidationHelper.GetBoolean(GetProp("islive"), true); fileUploaderElem.RaiseOnClick = ValidationHelper.GetBoolean(GetProp("click"), false); fileUploaderElem.NodeSiteName = ValidationHelper.GetString(GetProp("sitename"), null); fileUploaderElem.SourceType = SourceType; fileUploaderElem.NodeGroupID = ValidationHelper.GetInteger(GetProp("nodegroupid"), 0); // Metafile upload fileUploaderElem.SiteID = ValidationHelper.GetInteger(GetProp("siteid"), 0); fileUploaderElem.Category = ValidationHelper.GetString(GetProp("category"), String.Empty); fileUploaderElem.ObjectID = ValidationHelper.GetInteger(GetProp("objectid"), 0); fileUploaderElem.ObjectType = ValidationHelper.GetString(GetProp("objecttype"), String.Empty); fileUploaderElem.MetaFileID = ValidationHelper.GetInteger(GetProp("metafileid"), 0); // Library info initialization; fileUploaderElem.LibraryID = ValidationHelper.GetInteger(GetProp("libraryid"), 0); fileUploaderElem.MediaFileID = ValidationHelper.GetInteger(GetProp("mediafileid"), 0); fileUploaderElem.MediaFileName = ValidationHelper.GetString(GetProp("filename"), null); fileUploaderElem.IsMediaThumbnail = ValidationHelper.GetBoolean(GetProp("ismediathumbnail"), false); fileUploaderElem.LibraryFolderPath = ValidationHelper.GetString(GetProp("path"), ""); fileUploaderElem.IncludeNewItemInfo = ValidationHelper.GetBoolean(GetProp("includeinfo"), false); string siteName = CMSContext.CurrentSiteName; string allowed = ValidationHelper.GetString(GetProp("allowedextensions"), null); if (allowed == null) { if (fileUploaderElem.SourceType == MediaSourceEnum.MediaLibraries) { allowed = SettingsKeyProvider.GetStringValue(siteName + ".CMSMediaFileAllowedExtensions"); } else { allowed = SettingsKeyProvider.GetStringValue(siteName + ".CMSUploadExtensions"); } } fileUploaderElem.AllowedExtensions = allowed; // Auto resize width int autoResizeWidth = ValidationHelper.GetInteger(GetProp("autoresize_width"), -1); if (autoResizeWidth == -1) { autoResizeWidth = SettingsKeyProvider.GetIntValue(siteName + ".CMSAutoResizeImageWidth"); } fileUploaderElem.ResizeToWidth = autoResizeWidth; // Auto resize height int autoResizeHeight = ValidationHelper.GetInteger(GetProp("autoresize_height"), -1); if (autoResizeHeight == -1) { autoResizeHeight = SettingsKeyProvider.GetIntValue(siteName + ".CMSAutoResizeImageHeight"); } fileUploaderElem.ResizeToHeight = autoResizeHeight; // Auto resize max side size int autoResizeMaxSideSize = ValidationHelper.GetInteger(GetProp("autoresize_maxsidesize"), -1); if (autoResizeMaxSideSize == -1) { autoResizeMaxSideSize = SettingsKeyProvider.GetIntValue(siteName + ".CMSAutoResizeImageMaxSideSize"); } fileUploaderElem.ResizeToMaxSideSize = autoResizeMaxSideSize; fileUploaderElem.AfterSaveJavascript = ValidationHelper.GetString(GetProp("aftersave"), String.Empty); fileUploaderElem.TargetFolderPath = ValidationHelper.GetString(GetProp("targetfolder"), String.Empty); fileUploaderElem.TargetFileName = ValidationHelper.GetString(GetProp("targetfilename"), String.Empty); } } } } #endregion #region "Private methods" /// /// Returns property from properties hashtable if exists. /// /// Name of property private object GetProp(string name) { if (properties.ContainsKey(name)) { return properties[name]; } return null; } #endregion }