using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.CMSHelper;
using CMS.GlobalHelper;
using CMS.PortalEngine;
using CMS.SiteProvider;
using CMS.UIControls;
public partial class CMSModules_PortalEngine_UI_PageTemplates_Scopes_PageTemplateScope_Edit : CMSEditTemplatePage
{
#region "Variables"
private int scopeID = 0;
private int siteID = 0;
private int cultureId = 0;
private int classId = 0;
private PageTemplateScopeInfo ptsi = null;
#endregion
#region "Page and controls events"
///
/// Page load event.
///
/// Sender
/// Arguments
protected void Page_Load(object sender, EventArgs e)
{
if (!CMSContext.CurrentUser.UserSiteManagerAdmin)
{
RedirectToAccessDenied(GetString("template.scopes.denied"));
}
// Show changes saved message
if (QueryHelper.GetInteger("saved", 0) == 1 && !URLHelper.IsPostback())
{
ShowChangesSaved();
}
// Get template id, scope id and site id
scopeID = QueryHelper.GetInteger("scopeid", 0);
siteID = QueryHelper.GetInteger("siteid", 0);
// Get sitename
string siteName = string.Empty;
if (siteID > 0)
{
SiteInfo site = SiteInfoProvider.GetSiteInfo(siteID);
if (site != null)
{
siteName = " (" + site.DisplayName + ")";
}
}
// Breakcrumbs initialization
string[,] pageTitleTabs = new string[2,3];
pageTitleTabs[0, 0] = GetString("template.scopes");
pageTitleTabs[0, 1] = "~/CMSModules/PortalEngine/UI/PageTemplates/Scopes/PageTemplateScopes_List.aspx?siteid=" + siteID + "&templateid=" + PageTemplateID;
pageTitleTabs[0, 2] = "";
pageTitleTabs[1, 0] = GetString("template.scopes.new") + siteName;
pageTitleTabs[1, 1] = "";
pageTitleTabs[1, 2] = "";
// Help topic
CurrentMaster.Title.HelpTopicName = "page_templates_scopes_edit";
// Set up controls
cultureElem.CurrentSelector.AllowEmpty = false;
cultureElem.CurrentSelector.SelectionMode = SelectionModeEnum.SingleDropDownList;
cultureElem.ReturnColumnName = "CultureID";
cultureElem.DisplayAllValue = true;
cultureElem.SiteID = -1;
classElem.DisplayAllValue = true;
if (scopeID > 0)
{
// Get scope info
PageTemplateScopeInfo ptsi = PageTemplateScopeInfoProvider.GetPageTemplateScopeInfo(scopeID);
if (ptsi != null)
{
cultureId = ptsi.PageTemplateScopeCultureID;
classId = ptsi.PageTemplateScopeClassID;
pageTitleTabs[1, 0] = ptsi.PageTemplateScopePath + siteName;
// Load fields
if (!RequestHelper.IsPostBack())
{
pathElem.Value = ptsi.PageTemplateScopePath;
classElem.Value = ptsi.PageTemplateScopeClassID;
cultureElem.Value = ptsi.PageTemplateScopeCultureID;
levelElem.Value = ptsi.PageTemplateScopeLevels;
}
}
}
else if (!RequestHelper.IsPostBack())
{
pathElem.Value = "/";
}
// Select for site scope only available cultures
if (siteID > 0)
{
cultureElem.CurrentSelector.WhereCondition = "CultureID IN (SELECT CultureID FROM CMS_SiteCulture WHERE SiteID = " + siteID + ") OR CultureID = " + cultureId;
classElem.WhereCondition = "(ClassID IN (SELECT ClassID FROM CMS_ClassSite WHERE SiteID = " + siteID + ") OR ClassID = " + classId + ")";
}
// Breadcrumbs
CurrentMaster.Title.Breadcrumbs = pageTitleTabs;
}
///
/// Button OK click event.
///
/// Sender
/// Arguments
protected void btnOk_Click(object sender, EventArgs e)
{
// Validation
string path = ValidationHelper.GetString(pathElem.Value, "");
if (string.IsNullOrEmpty(path))
{
ShowError("template.scopes.emptypath");
return;
}
// Get scope if needed
if (scopeID > 0)
{
if (ptsi == null)
{
ptsi = PageTemplateScopeInfoProvider.GetPageTemplateScopeInfo(scopeID);
}
}
// Create info if needed
if (ptsi == null)
{
ptsi = new PageTemplateScopeInfo();
}
// Update database
// Class
int classID = ValidationHelper.GetInteger(classElem.Value, 0);
// No class selected or selected '(all)'
if (classID <= 0)
{
ptsi.SetValue("PageTemplateScopeClassID", null);
}
else
{
ptsi.PageTemplateScopeClassID = classID;
}
// Culture
int cultureID = ValidationHelper.GetInteger(cultureElem.Value, 0);
if (cultureID == 0)
{
ptsi.SetValue("PageTemplateScopeCultureID", null);
}
else
{
ptsi.PageTemplateScopeCultureID = cultureID;
}
// Levels
string levels = ValidationHelper.GetString(levelElem.Value, "");
if (string.IsNullOrEmpty(levels))
{
ptsi.SetValue("PageTemplateScopeLevels", null);
}
else
{
ptsi.PageTemplateScopeLevels = levels;
}
// Other columns
ptsi.PageTemplateScopePath = ValidationHelper.GetString(pathElem.Value, "");
ptsi.PageTemplateScopeTemplateID = PageTemplateID;
if (ptsi.PageTemplateScopeID == 0)
{
// Site
if (siteID != 0)
{
ptsi.PageTemplateScopeSiteID = siteID;
}
}
// Insert or update
PageTemplateScopeInfoProvider.SetPageTemplateScopeInfo(ptsi);
// Redirect
string url = URLHelper.CurrentURL;
url = URLHelper.UpdateParameterInUrl(url, "scopeid", ptsi.PageTemplateScopeID.ToString());
url = URLHelper.AddParameterToUrl(url, "saved", "1");
URLHelper.Redirect(ResolveUrl(url));
}
#endregion
}