protected void btnCheckOut_Click(object sender, EventArgs e) { // Ensure version before check-out using (CMSActionContext context = new CMSActionContext()) { context.AllowAsyncActions = false; // Save first if (!SaveData()) { return; } } try { SiteManagerFunctions.CheckOutWebPartLayout(layoutId); } catch (Exception ex) { lblError.Text = GetString("WebPartLayout.ErrorCheckout") + ": " + ex.Message; lblError.Visible = true; return; } URLHelper.Redirect(URLHelper.AddParameterToUrl(URLHelper.Url.AbsoluteUri, "saved", "1")); }
/// <summary> /// Check out. /// </summary> protected void btnCheckOut_Click(object sender, EventArgs e) { // Ensure version before check-out using (CMSActionContext context = new CMSActionContext()) { context.AllowAsyncActions = false; SetCurrentLayout(false, true); } try { WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); if (wpi != null) { WebPartLayoutInfo wpli = WebPartLayoutInfoProvider.GetWebPartLayoutInfo(wpi.WebPartName, LayoutCodeName); if (wpli != null) { SiteManagerFunctions.CheckOutWebPartLayout(wpli.WebPartLayoutID); } } } catch (Exception ex) { this.lblError.Text = GetString("WebPartLayout.ErrorCheckout") + ": " + ex.Message; this.lblError.Visible = true; return; } SetCheckPanel(null); }
/// <summary> /// Check in. /// </summary> protected void btnCheckIn_Click(object sender, EventArgs e) { try { WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); if (wpi != null) { WebPartLayoutInfo wpli = WebPartLayoutInfoProvider.GetWebPartLayoutInfo(wpi.WebPartName, LayoutCodeName); if (wpli != null) { SiteManagerFunctions.CheckInWebPartLayout(wpli.WebPartLayoutID); etaCode.ReadOnly = false; etaCode.Enabled = true; etaCSS.ReadOnly = false; etaCSS.Enabled = true; } } } catch (Exception ex) { this.lblError.Text = GetString("WebPartLayout.ErrorCheckin") + ": " + ex.Message; this.lblError.Visible = true; return; } SetCheckPanel(null); }
protected void Page_Load(object sender, EventArgs e) { string siteName = CMSContext.CurrentSiteName; // Check enabled servers if (!ServerInfoProvider.IsEnabledServer(CMSContext.CurrentSiteID)) { lblInfo.Text = GetString("ObjectStaging.NoEnabledServer"); } else { // Check logging bool somethingLogged = false; // Site object tasks if (SettingsKeyProvider.GetBoolValue(siteName + ".CMSStagingLogObjectChanges")) { somethingLogged = true; } // Global object tasks if (SettingsKeyProvider.GetBoolValue("CMSStagingLogObjectChanges")) { somethingLogged = true; } // Document tasks if (SettingsKeyProvider.GetBoolValue(siteName + ".CMSStagingLogChanges")) { somethingLogged = true; } // Data tasks if (SettingsKeyProvider.GetBoolValue("CMSStagingLogDataChanges")) { somethingLogged = true; } if (somethingLogged) { // Check DLL required for for staging if (SiteManagerFunctions.CheckStagingDLL()) { URLHelper.Redirect("Frameset.aspx"); } lblInfo.Text = GetString("ObjectStaging.RenameDll"); } else { lblInfo.Text = GetString("AllTasks.TaskSeparator"); } } }
private void CheckIn() { try { SiteManagerFunctions.CheckInTransformation(transformationId); URLHelper.Redirect(URLHelper.Url.AbsoluteUri); } catch (Exception ex) { ShowError(string.Concat(GetString("Transformation.ErrorCheckin"), ": ", ex.Message)); } }
private void UndoCheckOut() { try { SiteManagerFunctions.UndoCheckOutTransformation(transformationId); URLHelper.Redirect(URLHelper.Url.AbsoluteUri); } catch (Exception ex) { lblError.Text = string.Concat(GetString("Transformation.ErrorUndoCheckout"), ": ", ex.Message); lblError.Visible = true; } }
protected void Page_Load(object sender, EventArgs e) { CurrentMaster.Title.TitleText = ResHelper.GetString("socialnetworking.linkedin.accesstoken"); CurrentMaster.Title.TitleImage = GetImageUrl("Others/LinkedIn/linkedin.png"); string txtToken = QueryHelper.GetString("txtToken", String.Empty); string consumerKey = QueryHelper.GetString("apiKey", String.Empty); string consumerSecret = QueryHelper.GetString("apiSecret", String.Empty); string oauthToken = QueryHelper.GetString("oauth_token", String.Empty); string error = QueryHelper.GetString("oauth_problem", String.Empty); Dictionary <string, string> tokens = null; // Check Social networking DLL and settings if (!SiteManagerFunctions.CheckSocialNetworkingDLL()) { lblStatus.Text = ResHelper.GetString("socialnetworking.renameddll"); } else if ((String.IsNullOrEmpty(consumerKey) || String.IsNullOrEmpty(consumerSecret)) && String.IsNullOrEmpty(oauthToken) && String.IsNullOrEmpty(error)) { lblStatus.Text = ResHelper.GetString("socialnetworking.linkedin.apisettingsmissing"); } else { // If access denied if (error.EqualsCSafe("user_refused")) { // Close the window StringBuilder script = new StringBuilder("if(wopener.setAccessTokenToTextBox){ CloseDialog(); }"); ScriptHelper.RegisterStartupScript(Page, typeof(string), "TokenScript", ScriptHelper.GetScript(script.ToString())); } else { // Authenticate and retrieve tokens tokens = LinkedInProvider.Authorize(txtToken); if (tokens.Count != 0) { // Return access token values and close the window StringBuilder script = new StringBuilder("if(wopener.setAccessTokenToTextBox){ wopener.setAccessTokenToTextBox('") .AppendFormat("{0}', '{1}', '{2}'); CloseDialog(); }}", txtToken, tokens["AccessToken"], tokens["AccessTokenSecret"]); ScriptHelper.RegisterStartupScript(Page, typeof(string), "TokenScript", ScriptHelper.GetScript(script.ToString())); } else { // Error occured while communicating with LinkedIn lblStatus.Text = ResHelper.GetString("socialnetworking.authorizationerror"); } } } }
protected void btnCheckIn_Click(object sender, EventArgs e) { try { SiteManagerFunctions.CheckInWebPartLayout(layoutId); } catch (Exception ex) { lblError.Text = GetString("WebPartLayout.ErrorCheckin") + ": " + ex.Message; lblError.Visible = true; return; } URLHelper.Redirect(URLHelper.Url.AbsoluteUri); }
protected void Page_Load(object sender, EventArgs e) { // Check enabled servers if (!ServerInfoProvider.IsEnabledServer(CMSContext.CurrentSiteID)) { ShowInformation(GetString("ObjectStaging.NoEnabledServer")); } else { // Check DLL required for for staging if (SiteManagerFunctions.CheckStagingDLL()) { URLHelper.Redirect("Frameset.aspx"); } ShowInformation(GetString("ObjectStaging.RenameDll")); } }
protected void Page_Load(object sender, EventArgs e) { // Check enabled servers if (!ServerInfoProvider.IsEnabledServer(CMSContext.CurrentSiteID)) { lblInfo.Text = GetString("ObjectStaging.NoEnabledServer"); } else if (SettingsKeyProvider.GetBoolValue("CMSStagingLogDataChanges")) { // Check DLL required for for staging if (SiteManagerFunctions.CheckStagingDLL()) { URLHelper.Redirect("Frameset.aspx"); } lblInfo.Text = GetString("ObjectStaging.RenameDll"); } else { lblInfo.Text = GetString("DataStaging.TaskSeparator"); } }
private void ProcessTransformations(int classId, string className) { // Get the transformations DataSet transformationsDS = TransformationInfoProvider.GetTransformations(classId); if (!DataHelper.DataSourceIsEmpty(transformationsDS)) { foreach (DataRow transformationRow in transformationsDS.Tables[0].Rows) { // Get the type string type = ValidationHelper.GetString(transformationRow["TransformationType"], "ascx"); TransformationTypeEnum transformationType = TransformationInfoProvider.GetTransformationTypeEnum(type); // Only export ASCX transformations if (transformationType == TransformationTypeEnum.Ascx) { string transformationName = ValidationHelper.GetString(transformationRow["TransformationName"], ""); string transformationCode = ValidationHelper.GetString(transformationRow["TransformationCode"], ""); int checkedOutByUserId = ValidationHelper.GetInteger(transformationRow["TransformationCheckedOutByUserID"], 0); string checkedOutMachineName = ValidationHelper.GetString(transformationRow["TransformationCheckedOutMachineName"], ""); if ((checkedOutByUserId == 0) || (checkedOutMachineName.ToLower() != HTTPHelper.MachineName.ToLower())) { string filename = TransformationInfoProvider.GetTransformationUrl(className + "." + transformationName, null, TransformationTypeEnum.Ascx); // Prepare the code string code = transformationCode; code = TransformationInfoProvider.AddTransformationDirectives(code, true); SiteManagerFunctions.SaveCodeFile(filename, code); } } } } }
private void CheckOut() { // Ensure version before check-out using (CMSActionContext context = new CMSActionContext()) { context.AllowAsyncActions = false; // Validate and save the transformation if (ValidateAndSave()) { return; } } try { SiteManagerFunctions.CheckOutTransformation(transformationId); URLHelper.Redirect(URLHelper.AddParameterToUrl(URLHelper.Url.AbsoluteUri, "saved", "1")); } catch (Exception ex) { ShowError(string.Concat(GetString("Transformation.ErrorCheckout"), ": ", ex.Message)); } }
/// <summary> /// Actions handler. /// </summary> protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e) { switch (e.CommandName.ToLower()) { case "save": { SaveLayout(); // Reload header actions InitializeHeaderActions(); this.CurrentMaster.HeaderActions.ReloadData(); } break; case "checkout": { // Ensure version before check-out using (CMSActionContext context = new CMSActionContext()) { context.AllowAsyncActions = false; // Save first if (!SaveLayout()) { return; } } try { SiteManagerFunctions.CheckOutTemplateLayout(templateId); } catch (Exception ex) { this.lblError.Text = GetString("Layout.ErrorCheckout") + ": " + ex.Message; this.lblError.Visible = true; return; } URLHelper.Redirect(URLHelper.Url.AbsoluteUri); } break; case "checkin": { // Check in the layout try { SiteManagerFunctions.CheckInTemplateLayout(templateId); } catch (Exception ex) { this.lblError.Text = GetString("Layout.ErrorCheckin") + ": " + ex.Message; this.lblError.Visible = true; return; } URLHelper.Redirect(URLHelper.Url.AbsoluteUri); } break; case "undocheckout": { // Undo the checkout try { SiteManagerFunctions.UndoCheckOutTemplateLayout(templateId); } catch (Exception ex) { this.lblError.Text = GetString("Layout.ErrorUndoCheckout") + ": " + ex.Message; this.lblError.Visible = true; return; } URLHelper.Redirect(URLHelper.Url.AbsoluteUri); } break; } }
/// <summary> /// Actions handler. /// </summary> protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e) { string url = null; switch (e.CommandName.ToLower()) { case "save": if (li != null) { url = "PageLayout_Edit.aspx"; } else { url = "PageLayout_Frameset.aspx"; } if (SaveLayout()) { URLHelper.Redirect(url + "?layoutid=" + layoutId + "&saved=1"); } else { lblInfo.Visible = false; } break; case "checkout": // Ensure version before check-out using (CMSActionContext context = new CMSActionContext()) { context.AllowAsyncActions = false; // Save first if (!SaveLayout()) { return; } } try { SiteManagerFunctions.CheckOutLayout(li.LayoutId); } catch (Exception ex) { this.lblError.Text = GetString("Layout.ErrorCheckout") + ": " + ex.Message; this.lblError.Visible = true; return; } url = URLHelper.AddParameterToUrl(URLHelper.Url.AbsoluteUri, "saved", "1"); URLHelper.Redirect(url); break; case "checkin": try { SiteManagerFunctions.CheckInLayout(li.LayoutId); } catch (Exception ex) { this.lblError.Text = GetString("Layout.ErrorCheckin") + ": " + ex.Message; this.lblError.Visible = true; return; } URLHelper.Redirect(URLHelper.Url.AbsoluteUri); break; case "undocheckout": try { SiteManagerFunctions.UndoCheckOutLayout(li.LayoutId); } catch (Exception ex) { this.lblError.Text = GetString("Layout.ErrorUndoCheckout") + ": " + ex.Message; this.lblError.Visible = true; return; } URLHelper.Redirect(URLHelper.Url.AbsoluteUri); break; } }
protected void btnSaveAll_Click(object sender, EventArgs e) { try { // Save all the document transformations DataSet ds = DataClassInfoProvider.GetAllDataClass(); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { int classId = ValidationHelper.GetInteger(dr["ClassID"], 0); string className = ValidationHelper.GetString(dr["ClassName"], ""); bool isDocumentType = ValidationHelper.GetBoolean(dr["ClassIsDocumentType"], false); if (isDocumentType) { ProcessTransformations(classId, className); } } } // Save all the custom table transformations ds = DataClassInfoProvider.GetCustomTableClasses(null, null, 0, "ClassID,ClassName,ClassIsCustomTable"); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { int classId = ValidationHelper.GetInteger(dr["ClassID"], 0); string className = ValidationHelper.GetString(dr["ClassName"], ""); bool isCustomTable = ValidationHelper.GetBoolean(dr["ClassIsCustomTable"], false); if (isCustomTable) { ProcessTransformations(classId, className); } } } // Save all the layouts ds = LayoutInfoProvider.GetAllLayouts(); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { string layoutName = ValidationHelper.GetString(dr["LayoutCodeName"], ""); string layoutCode = ValidationHelper.GetString(dr["LayoutCode"], ""); int checkedOutByUserId = ValidationHelper.GetInteger(dr["LayoutCheckedOutByUserID"], 0); string checkedOutMachineName = ValidationHelper.GetString(dr["LayoutCheckedOutMachineName"], ""); if ((checkedOutByUserId == 0) || (checkedOutMachineName.ToLower() != HTTPHelper.MachineName.ToLower())) { string filename = LayoutInfoProvider.GetLayoutUrl(layoutName, null); // Prepare the code string code = layoutCode; code = LayoutInfoProvider.AddLayoutDirectives(code); SiteManagerFunctions.SaveCodeFile(filename, code); } } } // Save all the page template layouts ds = PageTemplateInfoProvider.GetAllTemplates(); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { string templateName = ValidationHelper.GetString(dr["PageTemplateCodeName"], ""); string templateLayout = ValidationHelper.GetString(dr["PageTemplateLayout"], ""); bool isReusable = ValidationHelper.GetBoolean(dr["PageTemplateIsReusable"], false); int checkedOutByUserId = ValidationHelper.GetInteger(dr["PageTemplateLayoutCheckedOutByUserID"], 0); string checkedOutMachineName = ValidationHelper.GetString(dr["PageTemplateLayoutCheckedOutMachineName"], ""); bool isPortalTemplate = ValidationHelper.GetBoolean(dr["PageTemplateIsPortal"], false); string pageTemplateType = ValidationHelper.GetString(dr["PageTemplateType"], ""); bool isDashboard = pageTemplateType.Equals(PageTemplateInfoProvider.GetPageTemplateTypeCode(PageTemplateTypeEnum.Dashboard)); if ((isPortalTemplate || isDashboard) && !String.IsNullOrEmpty(templateLayout) && ((checkedOutByUserId == 0) || (checkedOutMachineName.ToLower() != HTTPHelper.MachineName.ToLower()))) { string filename = null; if (isReusable) { filename = PageTemplateInfoProvider.GetLayoutUrl(templateName, null); } else { filename = PageTemplateInfoProvider.GetAdhocLayoutUrl(templateName, null); } // Prepare the code string code = templateLayout; code = LayoutInfoProvider.AddLayoutDirectives(code); SiteManagerFunctions.SaveCodeFile(filename, code); } } } // Save all the web part layouts ds = WebPartLayoutInfoProvider.GetWebPartLayouts(null, null); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { string webPartLayoutCodeName = ValidationHelper.GetString(dr["WebPartLayoutCodeName"], ""); string webPartLayoutCode = ValidationHelper.GetString(dr["WebPartLayoutCode"], ""); WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(dr["WebPartLayoutWebPartID"], 0)); if (wpi != null) { int checkedOutByUserId = ValidationHelper.GetInteger(dr["WebPartLayoutCheckedOutByUserID"], 0); string checkedOutMachineName = ValidationHelper.GetString(dr["WebPartLayoutCheckedOutMachineName"], ""); if (!String.IsNullOrEmpty(webPartLayoutCode) && ((checkedOutByUserId == 0) || (checkedOutMachineName.ToLower() != HTTPHelper.MachineName.ToLower()))) { // Get layout filename string filename = WebPartLayoutInfoProvider.GetWebPartLayoutUrl(wpi.WebPartName, webPartLayoutCodeName, ""); // Get path to the code file string codeFilePath = URLHelper.GetVirtualPath(filename) + ".cs"; // Get path to the original code behind file string originalCodeFilePath = String.Empty; if (codeFileRegex.IsMatch(webPartLayoutCode, 0)) { originalCodeFilePath = codeFileRegex.Match(webPartLayoutCode).Result("$1"); } // Get original class name string originalClassName = String.Empty; if (inheritsRegex.IsMatch(webPartLayoutCode)) { originalClassName = inheritsRegex.Match(webPartLayoutCode).Result("$1"); } if (codeFileRegex.IsMatch(webPartLayoutCode)) { webPartLayoutCode = codeFileRegex.Replace(webPartLayoutCode, "CodeFile=\"" + codeFilePath + "\""); } if (inheritsRegex.IsMatch(webPartLayoutCode)) { webPartLayoutCode = inheritsRegex.Replace(webPartLayoutCode, "Inherits=\"$1_Web_Deployment\""); } // Read original codefile and change classname string codeFileCode = String.Empty; if (!String.IsNullOrEmpty(originalCodeFilePath) && FileHelper.FileExists(originalCodeFilePath)) { codeFileCode = File.ReadAllText(Server.MapPath(originalCodeFilePath)); codeFileCode = codeFileCode.Replace(originalClassName, originalClassName + "_Web_Deployment"); // Save code file SiteManagerFunctions.SaveCodeFile(filename, webPartLayoutCode); // Save code behind file SiteManagerFunctions.SaveCodeFile(codeFilePath, codeFileCode); } } } } } lblResult.Text = GetString("Deployment.ObjectsSaved"); } catch (Exception ex) { CMS.EventLog.EventLogProvider ep = new CMS.EventLog.EventLogProvider(); ep.LogEvent("System deployment", "E", ex); lblError.Visible = true; lblError.Text = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { CurrentMaster.Title.TitleText = ResHelper.GetString("socialnetworking.googleplus.accesstoken"); CurrentMaster.Title.TitleImage = GetImageUrl("Others/GooglePlus/googleplus.png"); string accessToken = null, refreshToken = null; Dictionary <string, string> tokens = null; string clientID = Request.QueryString["token_client_id"]; string clientSecret = Request.QueryString["token_client_secret"]; string txtToken = null; string txtTokenSecret = null; string error = Request.QueryString["error"]; string state = Request.QueryString["state"]; // Check Social networking DLL and settings if (!SiteManagerFunctions.CheckSocialNetworkingDLL()) { lblStatus.Text = ResHelper.GetString("socialnetworking.renameddll"); } else if (String.IsNullOrEmpty(state) && (String.IsNullOrEmpty(clientID) || String.IsNullOrEmpty(clientSecret))) { lblStatus.Text = ResHelper.GetString("socialnetworking.googleplus.apisettingsmissing"); } else { // If access denied if (error.EqualsCSafe("access_denied")) { // Close the window StringBuilder script = new StringBuilder("if(wopener.setAccessTokenToTextBox){CloseDialog();}"); ScriptHelper.RegisterStartupScript(Page, typeof(string), "TokenScript", ScriptHelper.GetScript(script.ToString())); } else { // If this is OAuth callback -> get clientID and clientSecret from state if (state != null) { foreach (string s in state.Split(new string[1] { "&" }, StringSplitOptions.None)) { if (s.StartsWithCSafe("token_client_id=")) { clientID = s.Substring(16); } if (s.StartsWithCSafe("token_client_secret=")) { clientSecret = s.Substring(20); } } } // Authenticate and retrieve tokens tokens = GooglePlusProvider.Authorize(clientID, clientSecret); if (tokens.Count > 0) { accessToken = tokens["AccessToken"]; refreshToken = tokens["RefreshToken"]; if (!String.IsNullOrEmpty(accessToken)) { // Extract txtToken values from state txtToken = null; txtTokenSecret = null; string[] stateParams = state.Split(new string[1] { "&" }, StringSplitOptions.None); foreach (string s in stateParams) { if (s.StartsWithCSafe("txtToken=")) { txtToken = s.Substring(9); } if (s.StartsWithCSafe("txtTokenSecret=")) { txtTokenSecret = s.Substring(15); } } // Return access token values and close the window StringBuilder script = new StringBuilder("if(wopener.setAccessTokenToTextBox){wopener.setAccessTokenToTextBox('"); script.Append(txtToken); script.Append("', '"); script.Append(accessToken); script.Append("', '"); script.Append(txtTokenSecret); script.Append("', '"); script.Append(refreshToken); script.Append("');"); script.Append("CloseDialog();}"); ScriptHelper.RegisterStartupScript(Page, typeof(string), "TokenScript", ScriptHelper.GetScript(script.ToString())); } } else { // There was an error somewhere lblStatus.Text = ResHelper.GetString("socialnetworking.authorizationerror"); } } } }
/// <summary> /// Actions handler. /// </summary> protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e) { switch (e.CommandName) { case "save": Save(); break; case "checkout": // Ensure version before check-out using (CMSActionContext context = new CMSActionContext()) { context.AllowAsyncActions = false; if (!Save()) { return; } } try { SiteManagerFunctions.CheckOutStylesheet(cssStylesheetId); } catch (Exception ex) { ShowInformation(string.Concat(GetString("CssStylesheet.ErrorCheckout"), ": ", ex.Message)); return; } string url = URLHelper.AddParameterToUrl(URLHelper.Url.AbsoluteUri, "saved", "1"); // In case of dialog mode use javascript redirection to ensure script are rendered correctly if (DialogMode) { ScriptHelper.RegisterStartupScript(this, typeof(string), "PageRedirect", "window.location.replace('" + url + "');", true); } else { URLHelper.Redirect(url); } break; case "checkin": try { SiteManagerFunctions.CheckInStylesheet(cssStylesheetId); } catch (Exception ex) { ShowError(string.Concat(GetString("CssStylesheet.ErrorCheckin"), ": ", ex.Message)); return; } URLHelper.Redirect(URLHelper.Url.AbsoluteUri); break; case "undocheckout": try { SiteManagerFunctions.UndoCheckOutStylesheet(cssStylesheetId); } catch (Exception ex) { ShowError(string.Concat(GetString("CssStylesheet.ErrorUndoCheckout"), ": ", ex.Message)); return; } URLHelper.Redirect(URLHelper.Url.AbsoluteUri); break; } }
/// <summary> /// Initializes the control properties /// </summary> protected void SetupControl() { if (this.StopProcessing) { // Do not process } else { string apiKey = SettingsKeyProvider.GetStringValue(CMSContext.CurrentSiteName + ".CMSGooglePlusClientID"); string apiSecret = SettingsKeyProvider.GetStringValue(CMSContext.CurrentSiteName + ".CMSGooglePlusClientSecret"); string accessToken = SettingsKeyProvider.GetStringValue(CMSContext.CurrentSiteName + ".CMSGooglePlusAccessToken"); // Check Social networking DLL and settings if (!SiteManagerFunctions.CheckSocialNetworkingDLL()) { // Error label is displayed in Design mode when Dll is renamed if (CMSContext.ViewMode == ViewModeEnum.Design) { lblError.Text = GetString("socialnetworking.renameddll"); lblError.Visible = true; } else { Visible = false; } } else if (String.IsNullOrEmpty(apiKey) || String.IsNullOrEmpty(apiSecret) || String.IsNullOrEmpty(accessToken)) { // Error label is displayed in Design mode when missing settings if (CMSContext.ViewMode == ViewModeEnum.Design) { string pathToSettings = SocialNetworkingHelper.GetPathToGooglePlusSettings(); lblError.Text = String.Format(GetString("socialnetworking.googleplus.allsettingsmissing"), pathToSettings); lblError.Visible = true; } else { Visible = false; } } else { // Process ID - it can be URL string showID = ExtractUserID(FeedID); // Fetch data from Google+ GooglePlusPerson profile = GooglePlusProvider.GetProfileInfo(showID); List <GooglePlusActivity> activities = GooglePlusProvider.GetActivities(showID, NumberOfActivities); if (profile != null) { // Build code for plugin StringBuilder sb = new StringBuilder(); sb.Append("<div class=\"gpaf-plugin\"><div class=\"gpaf-doc\" style=\"width: "); sb.Append(Width); sb.Append("px; height: "); sb.Append(Height); sb.Append("px; border: 1px solid "); sb.Append(BorderColor); sb.Append("; position: relative; background-color: "); sb.Append(ShellBackgroundColor); sb.Append("\"><div style=\"margin: 15px;\">"); // Build plugin header sb.Append("<div class=\"gpaf-header\">"); sb.Append("<table><tr><td style=\"vertical-align: center;\">"); sb.Append("<a href=\""); sb.Append(profile.URL); sb.Append("\">"); sb.Append("<img src=\""); string imageURL = profile.ImageURL.Remove(profile.ImageURL.Length - 2) + "40"; sb.Append(imageURL); sb.Append("\" alt=\""); sb.Append(profile.DisplayName); sb.Append("\" style=\"float: left; border: none;\" />"); sb.Append("</a>"); sb.Append("</td>"); sb.Append("<td style=\"vertical-align: center; padding-left: 10px;\">"); sb.Append("<a href=\""); sb.Append(profile.URL); sb.Append("\" style=\"text-decoration: none; font-size: 25px; color: "); sb.Append(ShellTextColor); sb.Append(";\">"); sb.Append(profile.DisplayName); sb.Append("</a>"); sb.Append("</td></tr></table>"); sb.Append("</div>"); // Insert section separator sb.Append("<div class=\"gpaf-doc-separator\" style=\"height: 15px; margin-top: 15px; width: 100%; border-top: 1px solid "); sb.Append(BorderColor); sb.Append(";\"></div>"); // Build plugin body sb.Append("<div class=\"gpaf-body\" style=\"height: "); sb.Append(Height - 164); sb.Append("px; overflow: "); sb.Append((Scrollbar) ? "auto" : "hidden"); sb.Append(";\">"); int counting = 1; foreach (GooglePlusActivity s in activities) { sb.Append("<div class=\"gpaf-activity\" style=\"color: "); sb.Append(ActivityTextColor); sb.Append("\">"); sb.Append("<div class=\"gpaf-activity-text\">"); sb.Append(s.Content); sb.Append("</div>"); sb.Append("<div class=\"gpaf-activity-footer\" style=\"color: "); sb.Append(ActivityFooterTextColor); sb.Append("; font-size: 13px; margin-top: 3px;\">"); sb.Append(s.Published); sb.Append("</div>"); sb.Append("</div>"); // Insert activity separator if (counting < activities.Count) { sb.Append("<div class=\"gpaf-body-separator\" style=\"height: 10px; margin-top: 5px; width: 100%; border-top: 1px dashed "); sb.Append(BorderColor); sb.Append(";\"></div>"); counting++; } } sb.Append("</div></div>"); // Insert section separator sb.Append("<div style=\"margin: 15px; position: absolute; bottom: 0px; left: 0px; width: "); sb.Append(Width - 30); sb.Append("px;\">"); sb.Append("<div class=\"gpaf-doc-separator\" style=\"height: 15px; margin-top: 15px; width: 100%; border-top: 1px solid "); sb.Append(BorderColor); sb.Append(";\"></div>"); // Build plugin footer sb.Append("<div class=\"gpaf-footer\">"); sb.Append("<a href=\"https://plus.google.com\">"); sb.Append("<img src=\"https://ssl.gstatic.com/images/icons/gplus-32.png\" alt=\"\" style=\"float: left; border: none;\" />"); sb.Append("</a>"); sb.Append("<div class=\"gpaf-footer-text\" style=\"text-align: left; margin-left: 50px;\">"); sb.Append("<table style=\"height: 32px;\"><tr><td style=\"vertical-align: center;\">"); sb.Append("<a href=\""); sb.Append(profile.URL); sb.Append("\" style=\"text-decoration: none; font-size: 12px; color: "); sb.Append(ShellTextColor); sb.Append(";\">"); sb.Append(ResHelper.GetString("socialnetworking.viewfullprofile")); sb.Append("</a>"); sb.Append("</td></tr></table>"); sb.Append("</div>"); sb.Append("<div style=\"clear: both;\"></div>"); sb.Append("</div>"); // Close open divs and finish plugin sb.Append("</div></div></div>"); ltlPluginCode.Text = sb.ToString(); } } } }