using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using CMS.PortalControls;
using CMS.GlobalHelper;
using CMS.CMSHelper;
using CMS.SettingsProvider;
public partial class CMSWebParts_CommunityServices_Twitter_TwitterFollowButton : CMSAbstractWebPart
{
#region "Public properties"
///
/// User to follow.
///
public string UserToFollow
{
get
{
return ValidationHelper.GetString(GetValue("UserToFollow"), string.Empty);
}
set
{
SetValue("UserToFollow", value);
}
}
///
/// Language for the button.
///
public string Language
{
get
{
return ValidationHelper.GetString(GetValue("Language"), string.Empty);
}
set
{
SetValue("Language", value);
}
}
///
/// Whether to display followers count or not.
///
public bool DisplayFollowersCount
{
get
{
return ValidationHelper.GetBoolean(GetValue("DisplayFollowersCount"), false);
}
set
{
SetValue("DisplayFollowersCount", value);
}
}
///
/// Whether to show screen name of the user to follow.
///
public bool ShowScreenName
{
get
{
return ValidationHelper.GetBoolean(GetValue("ShowScreenName"), false);
}
set
{
SetValue("ShowScreenName", value);
}
}
///
/// Alignment for the button.
///
public string Alignment
{
get
{
return ValidationHelper.GetString(GetValue("Alignment"), string.Empty);
}
set
{
SetValue("Alignment", value);
}
}
///
/// Size for the button.
///
public string Size
{
get
{
return ValidationHelper.GetString(GetValue("Size"), string.Empty);
}
set
{
SetValue("Size", value);
}
}
///
/// Width of the web part in pixels.
///
public int Width
{
get
{
return ValidationHelper.GetInteger(GetValue("Width"), 300);
}
set
{
SetValue("Width", value);
}
}
///
/// Indicates if HTML 5 output should be generated.
///
public bool UseHTML5
{
get
{
return ValidationHelper.GetBoolean(GetValue("UseHTML5"), false);
}
set
{
SetValue("UseHTML5", value);
}
}
#endregion
#region "Methods"
///
/// Content loaded event handler.
///
public override void OnContentLoaded()
{
base.OnContentLoaded();
SetupControl();
}
///
/// Initializes the control properties.
///
protected void SetupControl()
{
if (StopProcessing)
{
// Do not process
}
else
{
if (string.IsNullOrEmpty(Language))
{
Language = CMSContext.CurrentDocumentCulture.CultureCode;
}
if (UseHTML5)
{
StringBuilder sb = new StringBuilder();
sb.Append("");
// Register Twitter widget API
ltlFollowButtonCode.Text = sb.ToString();
ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), "TwitterWidgetsAPI", "");
}
else
{
// Build plugin code
string query = null;
string src = "//platform.twitter.com/widgets/follow_button.html";
int height = (Size.EqualsCSafe("m")) ? 20 : 28;
// Set webpart parameters
query = URLHelper.AddUrlParameter(query, "screen_name", UserToFollow);
query = URLHelper.AddUrlParameter(query, "lang", Language);
query = URLHelper.AddUrlParameter(query, "show_count", DisplayFollowersCount.ToString());
query = URLHelper.AddUrlParameter(query, "show_screen_name", ShowScreenName.ToString());
query = URLHelper.AddUrlParameter(query, "align", Alignment);
query = URLHelper.AddUrlParameter(query, "size", Size);
src = URLHelper.EncodeQueryString(URLHelper.AppendQuery(src, query));
// Output HTML code
string output = "";
ltlFollowButtonCode.Text = String.Format(output, src, Width, height);
}
}
}
///
/// Reloads the control data.
///
public override void ReloadData()
{
base.ReloadData();
SetupControl();
}
#endregion
}