Пример #1
0
        private void MoveUpDown(string direction)
        {
            if (field == null || field.Guid == Guid.Empty)
            {
                return;
            }

            List <CustomFieldOption> listOptions = CustomFieldOption.GetByCustomField(field.CustomFieldId);
            CustomFieldOption        option      = null;

            if (lbOptions.SelectedIndex > 0)
            {
                int delta;

                if (direction == "down")
                {
                    delta = 3;
                }
                else
                {
                    delta = -3;
                }

                option = listOptions[lbOptions.SelectedIndex - 1];
                option.DisplayOrder += delta;

                CustomFieldOption.ResortOptions(listOptions);

                selOption = option.CustomFieldOptionId.ToString();

                BindOptions();
                PopulateOptionControls();
            }
        }
Пример #2
0
        private void BindOptions()
        {
            btnOptionUp.Visible     = false;
            btnOptionDown.Visible   = false;
            btnDeleteOption.Visible = false;

            if (field != null)
            {
                lbOptions.Items.Clear();

                lbOptions.Items.Add(new ListItem(ProductResources.CustomFieldOptionNewOptionLabel, ""));
                lbOptions.DataSource = CustomFieldOption.GetByCustomField(field.CustomFieldId);
                lbOptions.DataBind();

                ListItem li = lbOptions.Items.FindByValue(selOption);
                if (li != null)
                {
                    lbOptions.ClearSelection();
                    li.Selected = true;
                }

                LanguageHelper.PopulateTab(tabOptionLanguage, false);
            }
        }
Пример #3
0
        private void PopulateControls()
        {
            XmlDocument doc = new XmlDocument();

            doc.LoadXml("<ProductFilter></ProductFilter>");
            XmlElement root = doc.DocumentElement;

            string rawUrl = Request.RawUrl;

            XmlHelper.AddNode(doc, root, "ModuleTitle", this.Title);
            XmlHelper.AddNode(doc, root, "ZoneTitle", CurrentZone.Name);
            XmlHelper.AddNode(doc, root, "ClearAllUrl", WebUtils.GetUrlWithoutQueryString(rawUrl));

            if (ModuleConfiguration.ResourceFileDef.Length > 0 && ModuleConfiguration.ResourceKeyDef.Length > 0)
            {
                List <string> lstResourceKeys = ModuleConfiguration.ResourceKeyDef.SplitOnCharAndTrim(';');

                foreach (string item in lstResourceKeys)
                {
                    XmlHelper.AddNode(doc, root, item, ResourceHelper.GetResourceString(ModuleConfiguration.ResourceFileDef, item));
                }
            }

            string rawUrlLeaveOutPageNumber = SiteUtils.BuildUrlLeaveOutParam(rawUrl, ProductHelper.QueryStringPageNumberParam, false);

            rawUrlLeaveOutPageNumber = SiteUtils.BuildUrlLeaveOutParam(rawUrlLeaveOutPageNumber, "isajax", false);

            List <CustomField> lstCustomFields = CustomFieldHelper.GetCustomFieldsFromContext(siteSettings.SiteId, Product.FeatureGuid,
                                                                                              CurrentZone.ZoneGuid, WorkingCulture.LanguageId);

            foreach (CustomField field in lstCustomFields)
            {
                if (
                    (field.DataType == (int)CustomFieldDataType.CheckBox ||
                     field.DataType == (int)CustomFieldDataType.SelectBox) &&
                    (field.FilterType == (int)CustomFieldFilterType.ByValue ||
                     field.FilterType == (int)CustomFieldFilterType.ByMultipleValues)
                    )
                {
                    XmlElement productXml = doc.CreateElement("Group");
                    root.AppendChild(productXml);

                    XmlHelper.AddNode(doc, productXml, "GroupId", field.CustomFieldId.ToString());
                    XmlHelper.AddNode(doc, productXml, "Title", field.Name);
                    XmlHelper.AddNode(doc, productXml, "FilterType", field.FilterType.ToString());

                    string paramName  = string.Empty;
                    bool   isCheckBox = true;
                    if (field.FilterType == (int)CustomFieldFilterType.ByValue)
                    {
                        paramName = ProductHelper.QueryStringFilterSingleParam + field.CustomFieldId.ToString();

                        XmlHelper.AddNode(doc, productXml, "ClearUrl", SiteUtils.BuildUrlLeaveOutParam(rawUrlLeaveOutPageNumber, paramName));

                        isCheckBox = false;
                    }
                    else
                    {
                        paramName = ProductHelper.QueryStringFilterMultiParam + field.CustomFieldId.ToString();

                        XmlHelper.AddNode(doc, productXml, "ClearUrl", SiteUtils.BuildUrlLeaveOutParam(rawUrlLeaveOutPageNumber, paramName));

                        isCheckBox = true;
                    }

                    XmlHelper.AddNode(doc, productXml, "IsCheckBox", isCheckBox.ToString().ToLower());

                    List <CustomFieldOption> lstOptions = CustomFieldOption.GetByCustomField(field.CustomFieldId);
                    foreach (CustomFieldOption option in lstOptions)
                    {
                        XmlElement optionXml = doc.CreateElement("Option");
                        productXml.AppendChild(optionXml);

                        XmlHelper.AddNode(doc, optionXml, "GroupId", option.CustomFieldId.ToString());
                        XmlHelper.AddNode(doc, optionXml, "OptionId", option.CustomFieldOptionId.ToString());
                        XmlHelper.AddNode(doc, optionXml, "Title", option.Name);
                        XmlHelper.AddNode(doc, optionXml, "ProductCount", "0");
                        XmlHelper.AddNode(doc, optionXml, "FilterType", field.FilterType.ToString());
                        XmlHelper.AddNode(doc, optionXml, "IsCheckBox", isCheckBox.ToString().ToLower());
                        XmlHelper.AddNode(doc, optionXml, "IsActive", IsActive(paramName, option.CustomFieldOptionId,
                                                                               field.FilterType).ToString().ToLower());

                        //XmlHelper.AddNode(doc, optionXml, "QueryString", "");
                        string queryString = string.Empty;
                        string pageUrl     = BuildFilterUrl(rawUrlLeaveOutPageNumber, paramName, option.CustomFieldOptionId, field.FilterType,
                                                            out queryString);
                        //string pageUrl = urlWithoutQueryString + BuildSpecFilterQueryString(queryString, paramName, option.CustomFieldOptionId, field.FilterType);
                        XmlHelper.AddNode(doc, optionXml, "QueryString", queryString);
                        XmlHelper.AddNode(doc, optionXml, "Url", pageUrl);

                        XmlHelper.AddNode(doc, optionXml, "ClearUrl", SiteUtils.BuildUrlLeaveOutParam(rawUrlLeaveOutPageNumber, paramName));
                    }
                }
            }

            //XmlElement priceXml = doc.CreateElement("Price");
            //root.AppendChild(priceXml);
            //XmlHelper.AddNode(doc, priceXml, "Title", string.Empty);
            //XmlHelper.AddNode(doc, priceXml, "Url", ProductHelper.BuildFilterUrlLeaveOutPageNumber(rawUrlLeaveOutPageNumber, ProductHelper.QueryStringPriceParam, string.Empty));
            XmlHelper.AddNode(doc, root, "UrlWithPrice", ProductHelper.BuildFilterUrlLeaveOutPageNumber(rawUrlLeaveOutPageNumber, true));
            XmlHelper.AddNode(doc, root, "UrlWithoutPrice",
                              SiteUtils.BuildUrlLeaveOutParam(ProductHelper.BuildFilterUrlLeaveOutPageNumber(rawUrlLeaveOutPageNumber),
                                                              ProductHelper.QueryStringPriceParam));

            decimal?priceMin = null;
            decimal?priceMax = null;

            ProductHelper.GetPriceFromQueryString(out priceMin, out priceMax);
            if (priceMin.HasValue)
            {
                XmlHelper.AddNode(doc, root, "PriceMin", priceMin.Value.ToString());
            }
            if (priceMax.HasValue)
            {
                XmlHelper.AddNode(doc, root, "PriceMax", priceMax.Value.ToString());
            }

            if (ProductHelper.IsAjaxRequest(Request))
            {
                Response.Write(XmlHelper.TransformXML(SiteUtils.GetXsltBasePath("product", ModuleConfiguration.XsltFileName), doc));

                if (HttpContext.Current.Items["IsAjaxResponse"] != null)
                {
                    Response.End();
                }

                HttpContext.Current.Items["IsAjaxResponse"] = true;

                return;
            }

            XmlHelper.XMLTransform(xmlTransformer, SiteUtils.GetXsltBasePath("product", ModuleConfiguration.XsltFileName), doc);
        }