コード例 #1
0
 public ActionResult Index(IComponentPresentation componentPresentation)
 {
     string title = componentPresentation.Component.Schema.Title;
     IComponent component = componentPresentation.Component;
     FeaturedItems featuredItems = new FeaturedItems();
     if (title == "Generic.ComponentGroup")
     {
         featuredItems.Title = component.Fields.ContainsKey("title") ? component.Fields["title"].Value : string.Empty;
         IList<IComponent> linkedComponentValues = component.Fields["items"].LinkedComponentValues;
         featuredItems.Components = new List<Component>();
         if (linkedComponentValues.Count > 0)
         {
             string secondid = "fh_secondid={0}-16_tcm_{1}-{2}-32";
             string str2 = string.Join("&", (from c in linkedComponentValues select string.Format(secondid, c.Id.Replace(":", "_"), WebConfiguration.Current.PublicationId, SchemaTemplate.Instance.Template[c.Schema.Title])).ToArray<string>());
             DD4TComponents components = new DD4TComponents(this.Logger);
             this.Logger.InfoFormat("Featured static items query: {0}", new object[] { str2 });
             featuredItems.Components = components.GetComponents(str2, true);
         }
     }
     else if (title == "Crafts.ContentByFacet")
     {
         Query query = new Query();
         component.Fields.ToList<KeyValuePair<string, IField>>().ForEach(delegate (KeyValuePair<string, IField> f) {
             if (f.Key == "title")
             {
                 featuredItems.Title = f.Value.Value;
             }
             else if ((f.Key == "facets") && (f.Value.LinkedComponentValues.Count > 0))
             {
                 int publicationId = this._settings.PublicationId;
                 IFieldSet fieldSet = (from lcv in f.Value.LinkedComponentValues[0].Fields
                     where lcv.Key != "promote"
                     select lcv).ToFieldSet();
                 query.ParseQuery(fieldSet, publicationId, 6);
                 DD4TComponents components = new DD4TComponents(this.Logger);
                 this.Logger.InfoFormat("Featured items query: {0}", new object[] { query.toString() });
                 featuredItems.Components = components.GetComponents(query.toString(), true);
             }
         });
     }
     else
     {
         return base.View();
     }
     string featureComponentId = string.Empty;
     try
     {
         featureComponentId = componentPresentation.Page.ComponentPresentations[0].Component.Id;
     }
     catch
     {
         featureComponentId = string.Empty;
     }
     featuredItems.Components = (from c in featuredItems.Components
         where c.Id != featureComponentId
         select c).ToList<Component>();
     return base.View(featuredItems);
 }
コード例 #2
0
 public ActionResult Index(IComponentPresentation componentPresentation)
 {
     string str2;
     Stopwatch stopwatch = new Stopwatch();
     if (this.Logger.IsDebugEnabled)
     {
         stopwatch.Start();
     }
     ((dynamic) base.ViewBag).PodGenericSpan = "span4";
     string str = base.Request.QueryString["fh_params"];
     Query query = null;
     HomePageBannerContent model = new HomePageBannerContent {
         Banner = componentPresentation
     };
     if (!string.IsNullOrEmpty(str))
     {
         query = new Query();
         query.ParseQuery(str);
     }
     else
     {
         Location location = new Location(this.DefaultLocation);
         Criterion criterion = HomePageTabsConfig.ToCriteria(this._settings.PublicationId);
         location.addCriterion(criterion);
         query = new Query(location);
     }
     query.setView(com.fredhopper.lang.query.ViewType.LISTER);
     int viewsize = Convert.ToInt32(WebConfiguration.Current.HomepageItemsPerPage);
     viewsize = FacetedContentHelper.AssertCappedViewSize(viewsize);
     query.setListViewSize(viewsize);
     query.setSortingBy(WebConfiguration.Current.HomepageSort);
     DD4TComponents components = new DD4TComponents(this.Logger);
     if (this.Logger.IsDebugEnabled)
     {
         stopwatch.Stop();
         str2 = stopwatch.Elapsed.ToString();
         this.Logger.DebugFormat("HomeController Index time elapsed 1:" + str2, new object[0]);
     }
     model.FredHopperComponents = components.GetComponents(query.toString(), true);
     model.Tabs = HomePageTabsConfig.ToSelectList(query.toString());
     IList<IComponentPresentation> ctaList = (from m in componentPresentation.Page.ComponentPresentations
         where m.ComponentTemplate.Id != componentPresentation.ComponentTemplate.Id
         select m).ToList<IComponentPresentation>();
     model.FredHopperComponents = FacetedContentHelper.InjectCTAComponents(model.FredHopperComponents, ctaList, false, false);
     if (this.Logger.IsDebugEnabled)
     {
         stopwatch.Stop();
         str2 = stopwatch.Elapsed.ToString();
         this.Logger.DebugFormat("HomeController Index time elapsed 2:" + str2, new object[0]);
     }
     return base.View(model);
 }
コード例 #3
0
 public static MvcHtmlString CloseLink(this HtmlHelper helper)
 {
     TagBuilder builder = new TagBuilder("a");
     string absolutePath = helper.ViewContext.HttpContext.Request.Url.AbsolutePath;
     builder.MergeAttribute("class", "icon close");
     builder.SetInnerText(helper.GetResource("RemoveFilter"));
     string facet = helper.ViewContext.RouteData.Values.GetLevel1BrandFacet();
     string facetValue = helper.ViewContext.RouteData.Values.GetLevel1BrandFacetValueDelimeted();
     if (!string.IsNullOrEmpty(helper.ViewContext.HttpContext.Request["fh_params"]))
     {
         Query query = new Query();
         query.ParseQuery(helper.ViewContext.HttpContext.Request["fh_params"]);
         Location location = new Location(FredHopperExtensions.RemoveFacetValues(query.getLocation().toString(), facet, facetValue));
         query.setLocation(location);
         absolutePath = absolutePath + query.ToFhParams();
     }
     else
     {
         absolutePath = absolutePath + "?clear=true";
     }
     UrlHelper helper2 = new UrlHelper(helper.ViewContext.RequestContext);
     builder.MergeAttribute("href", helper2.Content(absolutePath.AddApplicationRoot()));
     return MvcHtmlString.Create(builder.ToString());
 }
コード例 #4
0
 public static FacetItem getFacetItem(filtersection fs, string fh_location, filter f)
 {
     FacetItem item = new FacetItem {
         FHId = fs.value.Value,
         NumItems = fs.nr,
         Selected = fs.selected
     };
     link link = fs.link;
     item.Text = link.name;
     Query query = new Query();
     query.ParseQuery(link.urlparams);
     query.removeListStartIndex();
     string urlParams = string.Empty;
     if (fs.selected)
     {
         string str2 = query.getLocation().getLastCriterion().toString();
         string facetValue = str2.Substring(str2.IndexOf('{') + 1).Replace("}", "");
         urlParams = RemoveFacetValues(fh_location, query.getLocation().getLastCriterion().getAttributeName(), facetValue);
     }
     else
     {
         Location location = new Location(fh_location);
         location.addCriterion(query.getLocation().getLastCriterion());
         urlParams = location.toString();
         if ((f.customfields != null) && (f.customfields.SingleOrDefault<customfield>(c => (c.name == "RefineMethod")).Value == "CombineFacets"))
         {
             urlParams = CreateOrCondition(urlParams);
         }
     }
     Location location2 = new Location(urlParams);
     query.setLocation(location2);
     item.Value = query.ToFhParams();
     return item;
 }