Пример #1
0
    /// <summary>
    /// Load UI cultures for the dropdown list.
    /// </summary>
    private void LoadCultures()
    {
        CMSDropDownList drpCulture = (CMSDropDownList)Login1.FindControl("drpCulture");

        if (drpCulture != null)
        {
            DataSet  ds         = CultureInfoProvider.GetUICultures();
            DataView dvCultures = ds.Tables[0].DefaultView;
            dvCultures.Sort = "CultureName ASC";

            drpCulture.DataValueField = "CultureCode";
            drpCulture.DataTextField  = "CultureName";
            drpCulture.DataSource     = dvCultures;
            drpCulture.DataBind();

            // Add default value
            drpCulture.Items.Insert(0, new ListItem(GetString("LogonForm.DefaultCulture"), ""));

            LocalizedLabel lblCulture = (LocalizedLabel)Login1.FindControl("lblCulture");
            if (lblCulture != null)
            {
                lblCulture.AssociatedControlID = drpCulture.ID;
                lblCulture.Text    = ResHelper.GetString("general.select");
                lblCulture.Display = false;
            }
        }
    }
Пример #2
0
    /// <summary>
    /// Checks UI culture settings.
    /// </summary>
    private bool EnsureUICultures()
    {
        DataSet ds = CultureInfoProvider.GetUICultures(topN: 0, columns: "COUNT (CultureID)");

        // Show selector only if there are more UI cultures than one
        if (!DataHelper.DataSourceIsEmpty(ds) && (ValidationHelper.GetInteger(ds.Tables[0].Rows[0][0], 0) > 1))
        {
            lnkUICultures.Visible       = true;
            lnkUICultures.OnClientClick = ucUICultures.GetSelectionDialogScript();

            string cultureName = ValidationHelper.GetString(ucUICultures.Value, String.Empty);
            if (cultureName != string.Empty)
            {
                MembershipContext.AuthenticatedUser.PreferredUICultureCode = cultureName;
                UserInfoProvider.SetUserInfo(MembershipContext.AuthenticatedUser);

                // Set selected UI culture and refresh all pages
                CultureHelper.SetPreferredUICultureCode(cultureName);

                UIContextHelper.RegisterAdminRedirectScript(Page);
            }

            return(true);
        }

        // Hide UI culture action in menu
        plcUICultures.Visible = false;
        return(false);
    }
    /// <summary>
    /// Returns DataSet according to filter settings.
    /// </summary>
    private DataSet GetCultures()
    {
        string filterText         = SqlHelper.EscapeLikeText(SqlHelper.EscapeQuotes(txtFilter.Text.Trim()));
        string sqlSafeCultureCode = SqlHelper.EscapeQuotes(selectedCultureCode);
        string columns            = "CultureName, CultureCode";

        string where = null;
        string orderBy = String.Format(@"CASE WHEN CultureCode = '{0}' THEN 1 WHEN CultureCode = '{1}' THEN 2 ELSE 3 END, CultureName",
                                       CultureHelper.DefaultUICultureCode, sqlSafeCultureCode);

        switch (rbCultures.SelectedValue)
        {
        case "allcultures":
            where = String.Format("CultureCode = '{0}' OR CultureCode = '{1}' OR CultureName LIKE '%{2}%'",
                                  CultureHelper.DefaultUICultureCode, sqlSafeCultureCode, filterText);
            break;

        case "uicultures":
            where = String.Format("CultureCode = '{0}' OR CultureCode = '{1}' OR (CultureIsUICulture = 1 AND CultureName LIKE '%{2}%')",
                                  CultureHelper.DefaultUICultureCode, sqlSafeCultureCode, filterText);
            break;

        case "sitecultures":
            where = String.Format("(CultureName LIKE '%{0}%' AND CultureID IN (SELECT CultureID FROM CMS_SiteCulture WHERE SiteID = {1})) OR CultureCode = '{2}'",
                                  filterText, SiteContext.CurrentSiteID, CultureHelper.DefaultUICultureCode);
            break;
        }

        return(CultureInfoProvider.GetCultures(where, orderBy, columns: columns));
    }
Пример #4
0
    /// <summary>
    /// Creates workflow scope. Called when the "Create scope" button is pressed.
    /// Expects the "CreateWorkflow" method to be run first.
    /// </summary>
    private bool CreateWorkflowScope()
    {
        // Get the workflow
        WorkflowInfo workflow = WorkflowInfoProvider.GetWorkflowInfo("MyNewWorkflow");

        if (workflow != null)
        {
            // Create new workflow scope object
            WorkflowScopeInfo newScope = new WorkflowScopeInfo();

            // Get the site default culture from settings
            string      cultureCode = SettingsKeyInfoProvider.GetStringValue(SiteContext.CurrentSiteName + ".CMSDefaultCultureCode");
            CultureInfo culture     = CultureInfoProvider.GetCultureInfo(cultureCode);

            // Get root document type class ID
            int classID = DataClassInfoProvider.GetDataClassInfo("CMS.Root").ClassID;

            // Set the properties
            newScope.ScopeStartingPath = "/";
            newScope.ScopeCultureID    = culture.CultureID;
            newScope.ScopeClassID      = classID;

            newScope.ScopeWorkflowID = workflow.WorkflowID;
            newScope.ScopeSiteID     = SiteContext.CurrentSiteID;

            // Save the workflow scope
            WorkflowScopeInfoProvider.SetWorkflowScopeInfo(newScope);

            return(true);
        }

        return(false);
    }
Пример #5
0
    public void ReloadData(bool force)
    {
        if (DeletedNode != null)
        {
            if (!RequestHelper.IsPostBack() || force)
            {
                plcConfirmation.Visible = true;
            }
            // Display confirmation
            lblConfirmation.Text = string.Format(GetString("contentdelete.questionspecific"), DeletedNode.NodeName);

            // Set visibility of 'delete all cultures' checkbox
            string currentSiteName = CMSContext.CurrentSiteName;
            chkAllCultures.Visible = CultureInfoProvider.IsSiteMultilignual(currentSiteName);

            if (CMSContext.CurrentUser.UserHasAllowedCultures)
            {
                DataSet siteCultures = CultureInfoProvider.GetSiteCultures(currentSiteName);
                foreach (DataRow culture in siteCultures.Tables[0].Rows)
                {
                    string cultureCode = ValidationHelper.GetString(DataHelper.GetDataRowValue(culture, "CultureCode"), string.Empty);
                    if (!CMSContext.CurrentUser.IsCultureAllowed(cultureCode, currentSiteName))
                    {
                        chkAllCultures.Visible = false;
                        break;
                    }
                }
            }
        }

        Visible        = (DeletedNode != null);
        btnCancel.Text = GetString("general.cancel");
    }
Пример #6
0
    protected object UniGridAliases_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLower())
        {
        case "sitedefaultvisitorculture":

            // Get visitor culture
            string defaultCulture = DataHelper.GetDataRowViewValue((DataRowView)parameter, "SiteDefaultVisitorCulture") as string;

            // If not set it is Automatic
            if (String.IsNullOrEmpty(defaultCulture))
            {
                return(GetString("Site_Edit.Automatic"));
            }
            else
            {
                CultureInfo ci = CultureInfoProvider.GetCultureInfo(defaultCulture);
                if (ci != null)
                {
                    return(ci.CultureName);
                }
            }

            break;
        }

        return(String.Empty);
    }
    private void SaveTranslations()
    {
        foreach (string cultureCode in mTranslations.Keys)
        {
            string translation    = mTranslations[cultureCode.ToLowerCSafe()].Text.Trim();
            int    cultureId      = CultureInfoProvider.GetCultureInfo(cultureCode).CultureID;
            var    resTranslation = ResourceTranslationInfoProvider.GetResourceTranslationInfo(mResourceStringInfo.StringID, cultureId);

            // Save translation only if not empty and if the same translation does not exist in resource file
            if (String.IsNullOrEmpty(translation) || translation.EqualsCSafe(LocalizationHelper.GetFileString(mResourceStringInfo.StringKey, cultureCode, string.Empty, false)))
            {
                ResourceTranslationInfoProvider.DeleteResourceTranslationInfo(resTranslation);
            }
            else
            {
                if (resTranslation == null)
                {
                    resTranslation = new ResourceTranslationInfo();
                }

                resTranslation.TranslationStringID  = mResourceStringInfo.StringID;
                resTranslation.TranslationCultureID = cultureId;
                resTranslation.TranslationText      = translation;

                ResourceTranslationInfoProvider.SetResourceTranslationInfo(resTranslation);
            }
        }
    }
    /// <summary>
    /// Handle OnExternalDataBound event of the grid.
    /// </summary>
    /// <param name="sender">Sender object</param>
    /// <param name="sourceName">Event source name</param>
    /// <param name="parameter">Event parameter</param>
    /// <returns></returns>
    private object OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLowerCSafe())
        {
        case "sitedefaultvisitorculture":

            // Get visitor culture
            string defaultCulture = parameter as string;

            // If not set it is Automatic
            if (String.IsNullOrEmpty(defaultCulture))
            {
                return(ResHelper.GetString("Site_Edit.Automatic"));
            }
            else
            {
                CultureInfo ci = CultureInfoProvider.GetCultureInfo(defaultCulture);
                if (ci != null)
                {
                    return(ci.CultureName);
                }
            }

            break;
        }

        return(String.Empty);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string currentCulture = string.Empty;
        int    cultureId      = QueryHelper.GetInteger("cultureid", 0);

        CultureInfo ci = CultureInfoProvider.GetSafeCulture(cultureId);

        EditedObject   = ci;
        currentCulture = ci.CultureName;

        CurrentMaster.Title.TitleText     = GetString("culture.edit.properties");
        CurrentMaster.Title.TitleImage    = GetImageUrl("Objects/CMS_Culture/object.png");
        CurrentMaster.Title.HelpTopicName = "general_tabnew";
        CurrentMaster.Title.HelpName      = "helpTopic";

        string[,] breadcrumbs           = new string[2, 3];
        breadcrumbs[0, 0]               = GetString("general.cultures");
        breadcrumbs[0, 1]               = "~/CMSSiteManager/Development/Cultures/Culture_List.aspx";
        breadcrumbs[0, 2]               = "_parent";
        breadcrumbs[1, 0]               = currentCulture;
        CurrentMaster.Title.Breadcrumbs = breadcrumbs;

        string[,] tabs               = new string[2, 4];
        tabs[0, 0]                   = GetString("general.general");
        tabs[0, 1]                   = "SetHelpTopic('helpTopic', 'general_tabnew');";
        tabs[0, 2]                   = "Culture_Edit_General.aspx?cultureID=" + cultureId;
        tabs[1, 0]                   = GetString("general.sites");
        tabs[1, 1]                   = "SetHelpTopic('helpTopic', 'sites_tab4');";
        tabs[1, 2]                   = "Culture_Edit_Sites.aspx?cultureID=" + cultureId;
        CurrentMaster.Tabs.Tabs      = tabs;
        CurrentMaster.Tabs.UrlTarget = "content";
    }
    /// <summary>
    /// Reloads the data in the selector.
    /// </summary>
    public void ReloadData()
    {
        CultureInfo ui;

        try
        {
            ui = CultureInfoProvider.GetCultureInfo(MembershipContext.AuthenticatedUser.PreferredUICultureCode);
        }
        catch
        {
            ui = CultureInfoProvider.GetCultureInfo(CultureHelper.DefaultUICultureCode);
        }
        if (ui != null)
        {
            uniSelector.WhereCondition    = SqlHelper.AddWhereCondition(uniSelector.WhereCondition, "CultureID = " + ui.CultureID);
            uniSelector.ReturnColumnName  = "StringKey";
            uniSelector.AdditionalColumns = "StringKey, TranslationText";
            uniSelector.DialogGridName    = "~/CMSFormControls/Selectors/LocalizableTextBox/ResourceStringSelector.xml";
            uniSelector.IsLiveSite        = IsLiveSite;
            uniSelector.Reload(false);
            uniSelector.DialogWindowWidth    = 850;
            uniSelector.ResourcePrefix       = "resourcestring";
            uniSelector.UseDefaultNameFilter = false;
        }
    }
    /// <summary>
    /// Assign the culture that is set as default content culture to the current site.
    /// </summary>
    private void HandleReAssigningCulture()
    {
        if (RequestHelper.IsPostBack())
        {
            string arg = ValidationHelper.GetString(Control.Page.Request[Page.postEventArgumentID], String.Empty);
            if (arg.EqualsCSafe(ASSIGN_ARGUMENT_NAME))
            {
                string culture = CultureHelper.GetDefaultCultureCode(siteInfo.SiteName);

                // Only default content culture is allowed to be assigned to the site in case there is no multilingual license
                CultureSiteInfoProvider.RemoveSiteCultures(siteInfo.SiteName);
                CultureSiteInfoProvider.AddCultureToSite(culture, siteInfo.SiteName);

                // Get info object of the default content culture to set value of the UniSelector
                CultureInfo ci = CultureInfoProvider.GetCultureInfoForCulture(culture);
                if (ci != null)
                {
                    Control.Value = Convert.ToString(ci.CultureID);
                    reloadData    = true;
                }

                Control.ShowChangesSaved();
            }
        }
    }
Пример #12
0
    protected object UniGridWorkflowScopes_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLower())
        {
        case "classdisplayname":
            string docType = ValidationHelper.GetString(parameter, "");
            if (docType == "")
            {
                return(GetString("general.selectall"));
            }
            return(docType);

        case "scopecultureid":
            int cultureId = ValidationHelper.GetInteger(parameter, 0);
            if (cultureId > 0)
            {
                return(CultureInfoProvider.GetCultureInfo(cultureId).CultureName);
            }
            else
            {
                return(GetString("general.selectall"));
            }

        default:
            return(parameter);
        }
    }
Пример #13
0
    /// <summary>
    /// Deletes the workflow scope(s) and culture assignments used for this example. Called when the "Delete objects" button is pressed.
    /// Expects the "CreateExampleObjects" method to be run first.
    /// </summary>
    private bool DeleteObjects()
    {
        CultureInfo culture = CultureInfoProvider.GetCultureInfo("de-de");

        // Remove the example culture from the site
        CultureSiteInfoProvider.RemoveCultureFromSite(culture.CultureID, CMSContext.CurrentSiteID);

        // Prepare parameters
        string where = "ScopeStartingPath LIKE '/API-Example%'";
        string orderBy = null;
        int    topN    = 0;
        string columns = null;

        DataSet scopes = WorkflowScopeInfoProvider.GetWorkflowScopes(where, orderBy, topN, columns);

        if (!DataHelper.DataSourceIsEmpty(scopes))
        {
            // Loop through all the scopes in case more identical scopes were accidentally created
            foreach (DataRow scopeRow in scopes.Tables[0].Rows)
            {
                // Create scope info object
                WorkflowScopeInfo scope = new WorkflowScopeInfo(scopeRow);

                // Delete the scope
                scope.Delete();
            }

            return(true);
        }

        return(false);
    }
Пример #14
0
    /// <summary>
    /// Checks UI culture settings.
    /// </summary>
    private bool EnsureUICultures()
    {
        // Show selector only if there are more UI cultures than one
        var count = CultureInfoProvider.GetUICultures().Count;

        if (count > 1)
        {
            lnkUICultures.Visible       = true;
            lnkUICultures.OnClientClick = ucUICultures.GetSelectionDialogScript();

            string cultureName = ValidationHelper.GetString(ucUICultures.Value, String.Empty);
            if (cultureName != string.Empty)
            {
                MembershipContext.AuthenticatedUser.PreferredUICultureCode = cultureName;
                UserInfoProvider.SetUserInfo(MembershipContext.AuthenticatedUser);

                // Set selected UI culture and refresh all pages
                CultureHelper.SetPreferredUICultureCode(cultureName);

                PortalScriptHelper.RegisterAdminRedirectScript(Page);
            }

            return(true);
        }

        // Hide UI culture action in menu
        plcUICultures.Visible = false;
        return(false);
    }
Пример #15
0
        public void TesCultureInfoProvider_ReturnsCurrentCulture()
        {
            var cultureInfoProvider = new CultureInfoProvider();
            var cultureInfo         = cultureInfoProvider.GetCultureInfo();

            Assert.AreEqual(System.Globalization.CultureInfo.CurrentCulture, cultureInfo);
        }
Пример #16
0
    /// <summary>
    /// Gets and bulk updates cultures. Called when the "Get and bulk update cultures" button is pressed.
    /// Expects the CreateCulture method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateCultures()
    {
        // Prepare the parameters
        string where = "CultureCode LIKE N'MyNewCulture%'";

        // Get the data
        DataSet cultures = CultureInfoProvider.GetCultures(where, null);

        if (!DataHelper.DataSourceIsEmpty(cultures))
        {
            // Loop through the individual items
            foreach (DataRow cultureDr in cultures.Tables[0].Rows)
            {
                // Create object from DataRow
                CultureInfo modifyCulture = new CultureInfo(cultureDr);

                // Update the properties
                modifyCulture.CultureName = modifyCulture.CultureName.ToUpper();

                // Update the culture
                CultureInfoProvider.SetCultureInfo(modifyCulture);
            }

            return(true);
        }

        return(false);
    }
    /// <summary>
    /// Saves translation for given resource string.
    /// </summary>
    /// <returns>Returns TRUE if resource string was successfully modified</returns>
    public override bool Save()
    {
        // Save changes only when macro is edited
        if (IsLocalizationMacro && mUserHasPermissionForLocalizations)
        {
            string resKey = GetResouceKeyFromString(OriginalValue);

            if (!IsInplaceMacro(TextBox.Text))
            {
                // Update key
                var ri = ResourceStringInfoProvider.GetResourceStringInfo(resKey);
                if (ri != null)
                {
                    ri.TranslationText = TextBox.Text.Trim();
                    if (CultureInfoProvider.GetCultureID(CultureHelper.PreferredUICultureCode) != 0)
                    {
                        ri.CultureCode = CultureHelper.PreferredUICultureCode;
                    }
                    else
                    {
                        ri.CultureCode = CultureHelper.DefaultUICultureCode;
                    }
                    ResourceStringInfoProvider.SetResourceStringInfo(ri);
                    return(true);
                }
            }
            else
            {
                // Remove localization if in-place macro was inserted
                RemoveLocalization(resKey);
            }
        }
        return(false);
    }
    /// <summary>
    /// Page load.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        SiteInfo si = EditedObject as SiteInfo;

        if (si == null)
        {
            return;
        }

        CultureInfo ci             = CultureInfoProvider.GetCultureInfo(CultureHelper.GetDefaultCultureCode(si.SiteName));
        string      currentCulture = ci.CultureCode;

        if (!RequestHelper.IsPostBack())
        {
            txtCulture.Text = ci.CultureName;
        }

        // Set the culture textbox readonly
        txtCulture.Attributes.Add("readonly", "readonly");

        btnChange.Text          = GetString("general.change");
        btnChange.OnClientClick = "OpenCultureChanger('" + si.SiteID + "','" + currentCulture + "'); return false;";

        ltlScript.Text = ScriptHelper.GetScript(@"
var pageChangeUrl='" + ResolveUrl("~/CMSModules/Sites/Pages/CultureChange.aspx") + @"'; 
function ChangeCulture(documentChanged) { 
    var hiddenElem = document.getElementById('" + hdnDocumentsChangeChecked.ClientID + @"');
    hiddenElem.value = documentChanged;
    " + Page.ClientScript.GetPostBackEventReference(btnHidden, String.Empty) + @"
} 
");
    }
        public void ShouldReturn_En_CultureInfo()
        {
            var cultureInfoProvider = new CultureInfoProvider();

            var actual = cultureInfoProvider.Get("en");

            Assert.AreEqual("en-US", actual.Name);
        }
        public void ShouldReturn_Ru_CultureInfo()
        {
            var cultureInfoProvider = new CultureInfoProvider();

            var actual = cultureInfoProvider.Get("ru");

            Assert.AreEqual("ru-RU", actual.Name);
        }
Пример #21
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptHelper.RegisterJQuery(Page);

        string currentSiteName = (SiteID != 0) ? SiteInfoProvider.GetSiteName(SiteID) : SiteContext.CurrentSiteName;
        var    cultures        = CultureSiteInfoProvider.GetSiteCultures(currentSiteName).Items;

        if (cultures.Count > 1)
        {
            string      defaultCulture = CultureHelper.GetDefaultCultureCode(currentSiteName);
            CultureInfo ci             = CultureInfoProvider.GetCultureInfo(SelectedCulture);

            imgLanguage.ImageUrl      = GetFlagIconUrl(SelectedCulture, "16x16");
            imgLanguage.AlternateText = imgLanguage.ToolTip = GetString(ci.CultureName);
            lblLanguageName.Text      = ci.CultureShortName;

            // Generate sub-menu only if more cultures to choose from
            StringBuilder sb = new StringBuilder();
            foreach (var culture in cultures)
            {
                string cultureCode = culture.CultureCode;
                string cultureName = culture.CultureName;

                if (CMSString.Compare(cultureCode, defaultCulture, true) == 0)
                {
                    cultureName += " " + GetString("general.defaultchoice");
                }

                string flagUrl = GetFlagIconUrl(cultureCode, "16x16");

                var click = String.Format("ChangeLanguage({0}); return false;", ScriptHelper.GetString(cultureCode));

                sb.AppendFormat("<li><a href=\"#\" onclick=\"{0}\"><img src=\"{1}\" alt=\"\" class=\"language-flag\"><span class=\"language-name\">{2}</span></a></li>", click, flagUrl, cultureName);
            }

            ltlLanguages.Text = sb.ToString();

            // Split view button
            if (DisplayCompare)
            {
                btnCompare.ToolTip = GetString("SplitMode.CompareLangVersions");
                btnCompare.Text    = GetString("SplitMode.Compare");
                if (UIContext.DisplaySplitMode)
                {
                    btnCompare.AddCssClass("active");
                }
                else
                {
                    btnCompare.RemoveCssClass("active");
                }
            }
        }
        else
        {
            // Hide language menu for one assigned culture on site
            Visible = false;
        }
    }
Пример #22
0
    protected void Page_Load(object sender, EventArgs e)
    {
        stringCodeName = QueryHelper.GetString("stringCodeName", String.Empty);
        cultureId      = QueryHelper.GetInteger("cultureId", 0);

        // Validate culture ID
        if (cultureId <= 0)
        {
            ShowError(GetString("general.invalidcultureid"));
            return;
        }

        if (QueryHelper.GetBoolean("saved", false))
        {
            ShowChangesSaved();
        }

        // Init new header action
        HeaderAction action = new HeaderAction
        {
            Text        = GetString("culture.newstring"),
            RedirectUrl = "~/CMSModules/SystemDevelopment/Development/Resources/UICulture_StringsDefault_New.aspx?cultureId=" + cultureId,
        };

        CurrentMaster.HeaderActions.ActionsList.Add(action);

        codeNameBreadcrumbItem = new BreadcrumbItem
        {
            Text = stringCodeName.ToLowerCSafe(),
        };
        PageBreadcrumbs.AddBreadcrumb(codeNameBreadcrumbItem);

        // Ensure breadcrumbs suffix
        UIHelper.SetBreadcrumbsSuffix(GetString("objecttype.cms_resourcestring"));

        // Initialize controls
        rfvKey.ErrorMessage = GetString("culture.enterakey");

        if (!RequestHelper.IsPostBack())
        {
            CultureInfo uic = CultureInfoProvider.GetCultureInfo(cultureId);

            if (uic != null)
            {
                string             cultureCode = uic.CultureCode;
                FileResourceEditor fre         = new FileResourceEditor(Server.MapPath(FileResourceManager.GetResFilename(cultureCode)), cultureCode);
                if (fre != null)
                {
                    txtKey.Text  = stringCodeName;
                    txtText.Text = fre.GetResourceString(stringCodeName, cultureCode);
                }
            }
            else
            {
                ShowError(GetString("general.invalidcultureid"));
            }
        }
    }
    /// <summary>
    /// Removes all cultures from sites and assignes back default site culture.
    /// </summary>
    protected void AssignDefaultCulture(object sender, EventArgs e)
    {
        string culture = CultureHelper.GetDefaultCulture(si.SiteName);

        CultureInfoProvider.RemoveSiteCultures(si.SiteName);
        CultureInfoProvider.AddCultureToSite(culture, si.SiteName);
        lnkAssignDefault.Visible = false;
        ShowChangesSaved();
    }
 /// <summary>
 /// Cached helper to get the CultureInfo object for the given Culture code
 /// </summary>
 /// <param name="CultureCode">the Culture code (ex en-US)</param>
 /// <returns>The Culture Info</returns>
 public static CultureInfo GetCulture(string CultureCode)
 {
     return(CacheHelper.Cache <CultureInfo>(cs =>
     {
         var Culture = CultureInfoProvider.GetCultureInfo(CultureCode);
         cs.CacheDependency = CacheHelper.GetCacheDependency("cms.culture|byname|" + CultureCode);
         return Culture;
     }, new CacheSettings(1440, "GetCultureByName", CultureCode)));
 }
        /// <summary>
        /// This Repeater "Webpart" Relies on just a path that would be provided through the View's context.  Does not rely on passing
        /// the ViewBag like the NavigationByContext, but does then require the calling View to provide the properties, and if ever more
        /// properties are needed, would need to adjust both Controller and View alike.
        /// </summary>
        /// <returns></returns>
        public ActionResult NavigationByPath(string Path, string Culture, string SiteName)
        {
            // Build the actual Partial View's model from the data provided by the parent View
            ExampleMVCWebPartsSubNavs Model = new ExampleMVCWebPartsSubNavs();

            // Get the Sub Nav Items from the ExampleService
            Model.SubNavigation = _exampleService.GetSubNavFromAliasPath(Path, CultureInfoProvider.GetCultureInfo(Culture));
            return(View("Navigation", Model));
        }
 /// <summary>
 /// Returns list of current culture identifiers.
 /// </summary>
 private IList <int> GetCurrentCultureIds()
 {
     return(CultureInfoProvider.GetCultures()
            .Column("CultureID")
            .WhereIn("CultureID", CultureSiteInfoProvider.GetCultureSites()
                     .Column("CultureID")
                     .WhereEquals("SiteID", siteInfo.SiteID))
            .GetListResult <int>());
 }
Пример #27
0
 /// <summary>
 /// Removes all cultures from sites and assignes back default site culture.
 /// </summary>
 protected void AssignDefaultCulture(object sender, EventArgs e)
 {
     string culture = CultureHelper.GetDefaultCulture(si.SiteName);
     CultureInfoProvider.RemoveSiteCultures(si.SiteName);
     CultureInfoProvider.AddCultureToSite(culture, si.SiteName);
     lnkAssignDefault.Visible = false;
     lblInfo.Text = GetString("general.ok");
     lblInfo.Visible = true;
 }
    /// <summary>
    /// Groups created event handler.
    /// </summary>
    protected void ucUIToolbar_OnGroupsCreated(object sender, List <Group> groups)
    {
        if (!IsPageNotFound)
        {
            // Replace Culture button
            Group culture = groups.Find(g => g.CssClass.Contains("OnSiteCultures"));
            if (culture != null)
            {
                // Hide culture selector when there is only one culture for the current site
                InfoDataSet <CultureInfo> sites = CultureInfoProvider.GetSiteCultures(CMSContext.CurrentSiteName);
                if ((sites.Tables[0].Rows.Count < 2) ||
                    (IsPageNotFound && OnSiteEditHelper.PageInfoForPageNotFound.NodeID == 0))
                {
                    // Remove the culture button
                    groups.Remove(culture);
                }
                else
                {
                    culture.ControlPath = "~/CMSAdminControls/UI/UniMenu/OnSiteEdit/CultureMenu.ascx";
                }
            }

            // Replace Device profile button
            Group deviceProfile = groups.Find(g => g.CssClass.Contains("OnSiteDeviceProfile"));
            if (deviceProfile != null)
            {
                // Hide device profile selector when there is only one device defined or device profile module is disabled
                if (!DeviceProfileInfoProvider.IsDeviceProfilesEnabled(CMSContext.CurrentSiteName))
                {
                    // Remove the device profile button
                    groups.Remove(deviceProfile);
                }
                else
                {
                    deviceProfile.ControlPath = "~/CMSModules/DeviceProfile/Controls/ProfilesMenuControl.ascx";
                }
            }

            // Replace the Highlight and Hidden buttons
            Group otherGroup = groups.Find(g => g.CssClass.Contains("OnSiteOthers"));
            if (otherGroup != null)
            {
                otherGroup.ControlPath = "~/CMSAdminControls/UI/UniMenu/OnSiteEdit/OtherMenu.ascx";
            }

            // Use a specific css class for the large CMSDesk button
            if (largeCMSDeskButton)
            {
                Group adminsGroup = groups.Find(g => g.CssClass.Contains("OnSiteAdmins"));
                if (adminsGroup != null)
                {
                    adminsGroup.CssClass += " BigCMSDeskButton";
                }
            }
        }
    }
Пример #29
0
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        // Display LANGUAGES option just in case its available in the current site context
        if (!pnlUILanguages.IsHidden)
        {
            pnlUILanguages.Visible = CultureInfoProvider.IsSiteMultilignual(CMSContext.CurrentSiteName) && CultureInfoProvider.LicenseVersionCheck();
        }
    }
Пример #30
0
    /// <summary>
    /// Deletes culture. Called when the "Delete culture" button is pressed.
    /// Expects the CreateCulture method to be run first.
    /// </summary>
    private bool DeleteCulture()
    {
        // Get the culture
        CultureInfo deleteCulture = CultureInfoProvider.GetCultureInfo("MyNewCulture");

        // Delete the culture
        CultureInfoProvider.DeleteCultureInfo(deleteCulture);

        return(deleteCulture != null);
    }