Szkółki roślinne i ogrodnictwo
Jako szkółka roślinna lub ogrodnik masz co najmniej tak zielone palce jak my. Wiesz, co to jakość, i potrzebujesz dobrych i stabilnych dostawców. Z Dalgas zyskujesz pewność dostaw choinek i zieleni dekoracyjnej wysokiej jakości oraz szeroki wybór profesjonalnego sprzętu i narzędzi do codziennej pracy.
Solidna jakość
Kiedy uprawiasz i sprzedajesz rośliny lub drzewa, najważniejszym elementem jest jakość. Jako Twój dostawca, nie tylko nasza nazwa gwarantuje jakość dla konsumenta - ale także Twoja. Dlatego dążymy do dostarczania produktów spełniających najwyższe wymagania i odpowiadających Twoim i klientom potrzebom.
Nasze usługi dla publicznych szkółek roślinnych i ogrodnictwa
Choinki i ozdobna zieleń
Choinki i ozdobna zieleń wysokiej jakości z naszej odpowiedzialnej produkcji oraz od doświadczonych dostawców. Razem tworzymy atmosferę wspaniałych świąt Bożego Narodzenia.
Sprzęt i narzędzia
Kupuj sprzęt i narzędzia do swojej pracy w zieleni – niezależnie od tego, czy chodzi o uprawę, pielęgnację czy konserwację. Osobista obsługa i szybka dostawa są naszym priorytetem.Error executing template "/Designs/Swift/Grid/Page/RowTemplates/Dalgas_Featured_Lists.cshtml" System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Dalgas.Custom.Services.ContentRelationService.GetRelatedPagesByUrlAndParameters(String url, List`1 parameters, Int32 pageSize) in D:\a\1\s\Custom\Services\ContentRelationService.cs:line 81 at Dalgas.Custom.Services.ContentRelationService.GetKnowledgeByCurrentPage(Int32 pageSize) in D:\a\1\s\Custom\Services\ContentRelationService.cs:line 752 at CompiledRazorTemplates.Dynamic.RazorEngine_ad1845dbb0a54645b783f2bd8af90ae0.Execute() in E:\Solutions\dalgas\Files\Templates\Designs\Swift\Grid\Page\RowTemplates\Dalgas_Featured_Lists.cshtml:line 177 at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.GridRowViewModel> 2 @using System 3 @using System.Collections.Generic 4 @using System.Linq 5 @using System.Text.RegularExpressions 6 @using Dalgas.Custom.Constants 7 @using Dalgas.Custom.Models.Content 8 @using Dalgas.Custom.Services 9 @using Dalgas.Custom.ViewModels.UI 10 @using Dynamicweb.Content 11 @using Dynamicweb.Core.Encoders 12 @using Dynamicweb.Frontend 13 @using Dynamicweb.Ecommerce.ProductCatalog 14 @using Page = Dynamicweb.Content.Page 15 @using System 16 @using System.Collections.Generic 17 @using System.Linq 18 @using Dalgas.Custom.ViewModels.UI 19 @using Dynamicweb.Content 20 @using Dynamicweb.Ecommerce.ProductCatalog 21 @using Dynamicweb.Frontend 22 @using ParagraphService = Dalgas.Custom.Services.ParagraphService 23 24 @*TODO: Move these functions onto the model *@ 25 26 @functions 27 { 28 29 public string GetSectionClassList(GridRowViewModel model, string overwriteTheme = "") 30 { 31 var returnValues = new List<string> 32 { 33 $"item_{model.Item.SystemName.ToLower()}" 34 }; 35 36 if (Services.Grids.GetGridRowById(model.Id).Sort == 1) 37 { 38 returnValues.Add("dalgas-section-first-on-page"); 39 } 40 41 var sectionBackgroundTheme = model.Item.GetItem("ColorScheme")?.GetString("ColorScheme") ?? string.Empty; 42 43 if (!string.IsNullOrEmpty(overwriteTheme)) 44 { 45 sectionBackgroundTheme = overwriteTheme; 46 } 47 48 // Add theme class if it exists 49 if (!string.IsNullOrWhiteSpace(sectionBackgroundTheme)) 50 { 51 if (sectionBackgroundTheme.Contains("default")) 52 { 53 returnValues.Add("theme theme-light"); 54 } 55 else 56 { 57 returnValues.Add($"theme {sectionBackgroundTheme.Replace(" ", "").Trim().ToLower()}"); 58 } 59 } 60 61 // Determine if top padding should be removed 62 63 string removeTopPadding = model.Item.GetItem("ColorScheme")?.GetString("RemoveTopPadding"); 64 65 returnValues.Add("pb-6"); 66 if (removeTopPadding != "enable") 67 { 68 returnValues.Add("pt-6"); 69 } 70 71 return string.Join(" ", returnValues); 72 } 73 74 } 75 76 77 @{ 78 IEnumerable<HeadingViewModel> headings = ParagraphService.Instance.GetHeadingsByItems(Model.Item?.GetItem("Paragraph_Text")?.GetItems("Headings")); 79 string text = Model.Item.GetItem("Paragraph_Text")?.GetString("Text"); 80 string lead = Model.Item.GetItem("Paragraph_Text")?.GetString("Lead"); 81 IEnumerable<ButtonViewModel> buttons = ParagraphService.Instance.GetButtonsByItems(Model.Item?.GetItem("Paragraph_Text")?.GetItems("Buttons")); 82 83 bool hasImage = Model.Item.GetItem("Paragraph_Image")?.GetFile("Image") != null; 84 bool hasText = !string.IsNullOrEmpty(Model.Item?.GetItem("Paragraph_Text")?.GetString("Text")); 85 bool hasLead = !string.IsNullOrEmpty(Model.Item?.GetItem("Paragraph_Text")?.GetString("Lead")); 86 bool hasHeading = headings.Any(); 87 bool hasButton = buttons.Any(); 88 89 var theme = Model.Item.GetItem("ColorScheme")?.GetString("ColorScheme"); 90 var fifthElementTheme = "fifth-element-color-" + Model.Item?.GetItem("ColorScheme")?.GetString("FifthElementColor"); 91 92 var sectionClassList = GetSectionClassList(Model); 93 94 var image = string.Empty; 95 var imageParameters = new Dictionary<string, object>(); 96 97 string layout = string.Empty; 98 Boolean enableFifthElement = false; 99 if (Model?.Item != null) 100 { 101 var paragraphLayout = Model.Item.GetItem("Paragraph_Layout"); 102 103 if (paragraphLayout != null) 104 { 105 layout = paragraphLayout.GetString("Layout"); 106 107 enableFifthElement = !string.IsNullOrEmpty(paragraphLayout.GetString("Layout_FifthElement")); 108 } 109 } 110 111 if (!string.IsNullOrEmpty(Model.Item?.GetItem("Paragraph_Image")?.GetFile("Image")?.Path)) 112 { 113 image = Model.Item.GetItem("Paragraph_Image").GetFile("Image").Path; 114 imageParameters.Add("alt", Model.Item.GetItem("Paragraph_Image")?.GetString("ImageAltText")); 115 int xPos = Model.Item.GetItem("Paragraph_Image").GetFile("Image")?.FocalPositionFromLeft ?? 50; 116 int yPos = Model.Item.GetItem("Paragraph_Image").GetFile("Image")?.FocalPositionFromTop ?? 50; 117 string cssPosition = $"{xPos}% {yPos}%"; 118 imageParameters.Add("style", "object-position:" + cssPosition); 119 } 120 121 LinkViewModel imageLink = new LinkViewModel(); 122 if (Model.Item?.GetItem("Paragraph_Image")?.GetItem("Link") != null && !string.IsNullOrEmpty(Model?.Item?.GetItem("Paragraph_Image")?.GetItem("Link").GetString("ButtonLink"))) 123 { 124 imageLink = ParagraphService.Instance.GetLinkByItem(Model?.Item?.GetItem("Paragraph_Image")?.GetItem("Link")); 125 } 126 127 string fifthElementIconPath = "/Files/Templates/Designs/Swift/Assets/Images/DalgasFifthElements/"; 128 } 129 130 131 @{ 132 ClassList rowWidthClasslist = new ClassList("col-12"); 133 ClassList colClasslist = new ClassList("js-content-container content-container col-12 mb-4 dalgas-list-card"); 134 ClassList cardClasslist = new ClassList("pt-3"); 135 string imageAspectRatio = string.Empty; 136 string newsModolusClasslist = string.Empty; 137 string iconPath = "/Files/Templates/Designs/Swift/Assets/icons/"; 138 139 FileViewModel featuredListImage = new FileViewModel(); 140 List<FileViewModel> imageList = new List<FileViewModel>(); // List to hold images for the modal 141 IList<ItemViewModel> featureListItems = Model.Item?.GetItem("Content")?.GetItems("PageSelector") ?? Enumerable.Empty<ItemViewModel>().ToList(); 142 bool hasFeatureListItems = featureListItems.Any(); 143 144 int.TryParse(Dynamicweb.Context.Current.Request["PageSize"], out int pageSize); 145 bool isProductPage = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["ProductId"]); 146 string separator = Pageview.SearchFriendlyUrl.Contains("?") ? "&" : "?"; 147 string showAllUrl = $"{Pageview.SearchFriendlyUrl}{separator}PageSize=999"; 148 149 bool showAll = Model.Item.GetItem("Content").GetBoolean("ShowAll"); 150 bool showFacets = Model.Item.GetItem("Content").GetBoolean("ShowFacets"); 151 bool showSearch = Model.Item.GetItem("Content").GetBoolean("ShowSearch"); 152 bool allowAllQueryItems = showFacets || showSearch; 153 showAll = allowAllQueryItems || showAll; 154 int numberOfItemsToShow = 999; 155 int rowsPerPage = 3; 156 157 158 List<FacetOption> selectedFacetOptions = new List<FacetOption>(); 159 if (hasFeatureListItems) 160 { 161 allowAllQueryItems = false; 162 } 163 164 QueryResult queryResult = new QueryResult(); 165 string contentType = Model.Item.GetItem("Content").GetString("FeatureOptions"); 166 int totaleCount = 0; 167 168 switch (contentType) 169 { 170 case "articles": 171 numberOfItemsToShow = 4; 172 numberOfItemsToShow = showAll ? numberOfItemsToShow * rowsPerPage : numberOfItemsToShow; 173 numberOfItemsToShow = pageSize > 0 ? pageSize : numberOfItemsToShow; 174 175 if (!hasFeatureListItems) 176 { 177 queryResult = showAll ? ContentRelationService.Instance.GetAllKnowledge(numberOfItemsToShow) : ContentRelationService.Instance.GetKnowledgeByCurrentPage(numberOfItemsToShow); 178 } 179 180 imageAspectRatio = "ratio-4x3"; 181 colClasslist.Add("col-md-3"); 182 break; 183 case "events": 184 numberOfItemsToShow = 3; 185 numberOfItemsToShow = showAll ? numberOfItemsToShow * rowsPerPage : numberOfItemsToShow; 186 numberOfItemsToShow = pageSize > 0 ? pageSize : numberOfItemsToShow; 187 if (!hasFeatureListItems) 188 { 189 queryResult = showAll ? ContentRelationService.Instance.GetAllEvents(numberOfItemsToShow) : ContentRelationService.Instance.GetEventsByCurrentPage(numberOfItemsToShow); 190 } 191 192 imageAspectRatio = "ratio-16x9"; 193 cardClasslist.Add("theme theme-mud p-4 pt-4 h-100"); 194 colClasslist.Add("col-md-4 d-flex flex-column"); 195 break; 196 case "cases": 197 numberOfItemsToShow = 3; 198 numberOfItemsToShow = showAll ? numberOfItemsToShow * rowsPerPage : numberOfItemsToShow; 199 numberOfItemsToShow = pageSize > 0 ? pageSize : numberOfItemsToShow; 200 if (!hasFeatureListItems) 201 { 202 if (PageView.Current().Page.Item.SystemName.Contains("Funding")) 203 { 204 queryResult = ContentRelationService.Instance.GetCaseCustomerStoriesByCurrentFunding(numberOfItemsToShow); 205 } 206 else 207 { 208 queryResult = showAll ? ContentRelationService.Instance.GetAllCaseCustomerStoriesByCurrentPage(numberOfItemsToShow) : ContentRelationService.Instance.GetCaseCustomerStoriesByCurrentPage(numberOfItemsToShow); 209 } 210 } 211 212 cardClasslist.Add("theme theme-mud p-4 pt-4 h-100"); 213 imageAspectRatio = "ratio-16x9"; 214 colClasslist.Add("col-md-4 d-flex flex-column"); 215 break; 216 case "news": 217 numberOfItemsToShow = 3; 218 numberOfItemsToShow = showAll ? numberOfItemsToShow * (rowsPerPage * 2) : numberOfItemsToShow; 219 numberOfItemsToShow = pageSize > 0 ? pageSize : numberOfItemsToShow; 220 if (!hasFeatureListItems) 221 { 222 if (Pageview.Area.Item["Custom_Website_Styling"].ToString().Contains("shop") && string.IsNullOrEmpty(Pageview.Area.Item["NewsFromOtherSites"].ToString()) == false) 223 { 224 // Initialize the list of parameters for the content query 225 var parameters = new List<KeyValuePair<string, string>>(); 226 227 // Get the "NewsFromOtherSites" field value from the current area 228 var newsFromOtherSites = Pageview.Area.Item["NewsFromOtherSites"]?.ToString(); 229 230 // Start building the list of area IDs, including the current page's area ID 231 var areaIds = new List<string> 232 { 233 PageView.Current()?.Area?.ID.ToString() 234 }; 235 236 // If "NewsFromOtherSites" has any values, split by comma and add them to the areaIds list 237 if (!string.IsNullOrEmpty(newsFromOtherSites)) 238 { 239 areaIds.AddRange(newsFromOtherSites.Split(',').Select(x => x.Trim())); 240 } 241 242 // Create a key-value pair for the content query, joining all area IDs with a comma 243 var keyValue = new KeyValuePair<string, string>( 244 ContentKeys.DW_INDEXING_CONTENT_FIELD_AREA_IDS, 245 string.Join(", ", areaIds.Where(id => !string.IsNullOrEmpty(id))) 246 ); 247 248 // Add the key-value pair to the parameters list 249 parameters.Add(keyValue); 250 251 // Execute the query to get news items 252 queryResult = showAll ? ContentRelationService.Instance.GetAllNews(numberOfItemsToShow, parameters) : ContentRelationService.Instance.GetNewsByCurrentPage(numberOfItemsToShow, false, parameters); 253 } 254 else 255 { 256 queryResult = showAll ? ContentRelationService.Instance.GetAllNews(numberOfItemsToShow) : ContentRelationService.Instance.GetNewsByCurrentPage(numberOfItemsToShow); 257 } 258 } 259 260 rowWidthClasslist.Add("col-lg-11 ms-auto"); 261 colClasslist.Add("mb-5"); 262 break; 263 case "projects": 264 numberOfItemsToShow = 3; 265 numberOfItemsToShow = showAll ? numberOfItemsToShow * rowsPerPage : numberOfItemsToShow; 266 numberOfItemsToShow = pageSize > 0 ? pageSize : numberOfItemsToShow; 267 if (!hasFeatureListItems) 268 { 269 if (PageView.Current().Page.Item.SystemName.Contains("Funding")) 270 { 271 queryResult = ContentRelationService.Instance.GetCaseProjectsByCurrentFunding(numberOfItemsToShow); 272 } 273 else 274 { 275 queryResult = showAll ? ContentRelationService.Instance.GetAllCaseProjectsByCurrentPage(numberOfItemsToShow) : ContentRelationService.Instance.GetCaseProjectsByCurrentPage(numberOfItemsToShow); 276 } 277 } 278 279 cardClasslist.Add("theme theme-mud p-4 pt-4 h-100"); 280 imageAspectRatio = "ratio-16x9"; 281 colClasslist.Add("col-md-4 d-flex flex-column"); 282 break; 283 case "related-services": 284 numberOfItemsToShow = 6; 285 numberOfItemsToShow = showAll ? numberOfItemsToShow * rowsPerPage : numberOfItemsToShow; 286 numberOfItemsToShow = pageSize > 0 ? pageSize : numberOfItemsToShow; 287 if (!hasFeatureListItems) 288 { 289 queryResult = ContentRelationService.Instance.GetRelatedServicesByCurrentPage(numberOfItemsToShow); 290 } 291 292 cardClasslist.Add("theme theme-mud p-4 pt-5 h-100"); 293 imageAspectRatio = "ratio-16x9"; 294 colClasslist.Add("col-md-4 d-flex flex-column"); 295 break; 296 } 297 298 int pageNum = int.TryParse(Dynamicweb.Context.Current.Request["PageNum"], out int result) ? result : 1; 299 string searchTerm = Dynamicweb.Context.Current.Request["q"]; 300 301 List<string> pageIds = new List<string>(); 302 if (hasFeatureListItems) 303 { 304 pageIds.AddRange(featureListItems.Select(fli => fli.Fields.FirstOrDefault(f => f.Name == "Page")?.GetLink().PageId.ToString())); 305 } 306 else if (queryResult.Results.Any()) 307 { 308 pageIds.AddRange(queryResult.Results.Select(qrr => qrr["PageId"].ToString())); 309 } 310 311 string strTitle = string.Empty; 312 string strLink = string.Empty; 313 string strSummary = string.Empty; 314 string strImage = string.Empty; 315 string strType = string.Empty; 316 string badgeTheme = string.Empty; 317 DateTime strDate = new DateTime(); 318 } 319 320 @if ((queryResult.FacetGroups.Any() && allowAllQueryItems) || (queryResult.Results.Any() && !allowAllQueryItems) || featureListItems.Any()) 321 { 322 int loopCounter = 1; // Initialize loop counter for each group 323 324 <section id="section-@Model.Id" class="@sectionClassList" data-swift-gridrow> 325 <div class="container-xl"> 326 <div class="row justify-content-center"> 327 <div class="@rowWidthClasslist"> 328 <div class="js-dalgas-queryresult-container dalgas-queryresult-container" 329 id="@($"query-result-{Model.Id}")"> 330 331 @if (hasLead || hasText || hasHeading) 332 { 333 <div class="js-content-container content-container col-12 mb-3"> 334 335 <div class="col-lg-6"> 336 <span> 337 @string.Join("", headings.Select(h => h.ToString())) 338 </span> 339 340 @if (!string.IsNullOrEmpty(lead)) 341 { 342 <p class="lead">@lead</p> 343 } 344 345 @text 346 347 </div> 348 </div> 349 } 350 351 @{ 352 ButtonViewModel btnViewResult = new ButtonViewModel 353 { 354 Text = Translate("View more"), 355 Type = ButtonType.Link, 356 DisplayType = ButtonDisplayType.Link 357 }; 358 359 if (showAll) 360 { 361 totaleCount = queryResult.TotalCount; 362 } 363 364 if (!isProductPage) 365 { 366 <a href="@showAllUrl" class="d-none">show all</a> 367 } 368 369 <form method="post" action="@Pageview.SearchFriendlyUrl" 370 data-response-target-element="content" tabindex="-1" aria-hidden="false" 371 class="d-flex js-dalgas-facets-form dalgas-facets-form" 372 data-total-count="@totaleCount" data-page-size="@numberOfItemsToShow"> 373 <input type="hidden" name="LayoutTemplate" 374 value="Designs/Swift/Swift_PageClean.cshtml"/> 375 <input type="hidden" name="PageNum" value="@pageNum"/> 376 <input type="hidden" name="PageSize" value="@numberOfItemsToShow"/> 377 @if (allowAllQueryItems) 378 { 379 if (showFacets) 380 { 381 foreach (FacetGroup facetGroup in queryResult.FacetGroups) 382 { 383 foreach (Facet facet in facetGroup.Facets) 384 { 385 string showClass = " show"; 386 string ariaExpanded = "true"; 387 string facetGroupId = Regex.Replace(Convert.ToBase64String(Guid.NewGuid().ToByteArray()), "[/+=]", string.Empty, RegexOptions.None, TimeSpan.FromMilliseconds(5000)); 388 389 390 if (facet.Options.Any()) 391 { 392 int selectedFacetsInGroup = 0; 393 394 foreach (FacetOption option in facet.Options) 395 { 396 if (option.Selected) 397 { 398 selectedFacetsInGroup++; 399 } 400 } 401 402 string label = selectedFacetsInGroup > 0 ? Translate(facet.Name) + "<span style=\"padding: 0.3em 0.6em\" class=\"badge badge ms-2\">" + selectedFacetsInGroup + "</span>" : Translate(facet.Name); 403 404 <div class="dropdown js-facets-selector"> 405 <button class="btn dropdown-toggle" type="button" 406 id="FacetGroup_@facetGroupId" data-bs-toggle="dropdown" 407 aria-expanded="false"> 408 @label 409 </button> 410 <div data-lenis-prevent class="dropdown-menu p-3" 411 aria-labelledby="FacetGroup_@facetGroupId" 412 style="min-width: 280px"> 413 @foreach (FacetOption facetOption in facet.Options.OrderBy(fo => fo.Label)) 414 { 415 string facetLabel = HtmlEncoder.HtmlEncode(facetOption.Label); 416 string disabled = facetOption.Count <= 0 ? "disabled" : string.Empty; 417 string selected = facetOption.Selected ? "checked" : string.Empty; 418 string facetValue = Uri.UnescapeDataString(facetOption.Value); 419 string optionValue = $"[{facetValue}]"; 420 421 facetLabel = facetLabel.ToLower() == "true" ? facetLabel = Translate("Yes") : facetLabel; 422 facetLabel = facetLabel.ToLower() == "false" ? facetLabel = Translate("No") : facetLabel; 423 424 <label class="form-check mt-1" @disabled> 425 <input type="checkbox" 426 onclick="custom.QueryResult.update(event)" 427 class="form-check-input" 428 name="@facet.QueryParameter" 429 value="@optionValue" 430 data-filter-value="@facetLabel" @selected> 431 <span 432 class="form-check-label d-flex align-items-center"> 433 <span class="flex-fill">@facetLabel </span> 434 <small 435 class="opacity-85">@facetOption.Count</small> 436 </span> 437 </label> 438 439 if (facetOption.Selected) 440 { 441 FacetOption selectFacetOption = facetOption; 442 selectFacetOption.Name = facet.QueryParameter; 443 selectedFacetOptions.Add(selectFacetOption); 444 } 445 } 446 </div> 447 </div> 448 } 449 } 450 } 451 452 if (!string.IsNullOrEmpty(searchTerm)) 453 { 454 selectedFacetOptions.Add(new FacetOption() 455 { 456 Count = 1, 457 Label = searchTerm, 458 Name = "q", 459 Selected = true, 460 Value = searchTerm 461 }); 462 } 463 } 464 465 if (showSearch) 466 { 467 <div class="type-ahead-dropdown"> 468 <div class="position-relative suggest-form"> 469 <span 470 class="position-absolute top-0 end-0 icon-3 px-3 d-flex align-items-center h-100 search-icon"> 471 @ReadFile(iconPath + "search.svg") 472 </span> 473 474 <input id="searchField_@Model.Id" 475 class="form-control custom-header-searchbar js-custom-facets-search-field pe-5 ps-3 js-" 476 type="search" 477 placeholder="@Translate("Search here")" 478 autocomplete="off" 479 maxlength="255" 480 name="q" 481 value="@searchTerm" 482 data-original="@searchTerm"> 483 484 <button type="button" 485 onclick="custom.QueryResult.clearSearchField(event)" 486 class="btn h-100 icon-2 reset-search" 487 aria-label="@Translate("Clear search")" 488 style="opacity: 0; position: absolute; top: 0; right: 0; visibility: hidden;"> 489 @ReadFile(iconPath + "x.svg") 490 </button> 491 </div> 492 </div> 493 <input type="submit" onclick="custom.QueryResult.update(event)" 494 class="btn btn-primary" value="@Translate("Search", "Search")"> 495 } 496 } 497 </form> 498 499 if (showFacets && selectedFacetOptions.Any()) 500 { 501 <div 502 class="js-dalgas-queryresult-selectedfacets-container dalgas-queryresult-selectedfacets-container mt-3"> 503 @foreach (FacetOption facetOption in selectedFacetOptions) 504 { 505 string facetValue = Uri.UnescapeDataString(facetOption.Value); 506 string optionValue = $"[{facetValue}]"; 507 <input class="visually-hidden" 508 id="Selected_@(Model.Id)_@facetOption.Value.Replace("#", string.Empty)" 509 name="@facetOption.Name" 510 onclick="custom.QueryResult.deselectFacetOption(event)" type="checkbox" 511 value="@optionValue" title="@facetOption.Label" checked> 512 <label class="badge theme border border-dark text-nowrap" 513 for="Selected_@(Model.Id)_@facetOption.Value.Replace("#", string.Empty)"> 514 <span class="text-nowrap">@(facetOption.Label)</span> 515 <span class="icon-2 ms-2"> 516 @ReadFile(iconPath + "x.svg") 517 </span> 518 </label> 519 } 520 521 @if (selectedFacetOptions.Count >= 3) 522 { 523 <input class="visually-hidden" id="ClearAll" name="ClearAll" 524 onclick="custom.QueryResult.clearAll(event)" type="checkbox" value="" 525 title="" checked> 526 <label class="badge theme border border-dark dalgas-btn-clear-all" 527 for="ClearAll"> 528 <span class="text-nowrap">@Translate("Clear all")</span> 529 <span class="icon-2 ms-2"> 530 @ReadFile(iconPath + "x.svg") 531 </span> 532 </label> 533 } 534 </div> 535 }} 536 537 @if (pageIds.Any() == false) 538 { 539 <div class="mt-4">@Translate("Your search returned no results...")</div> 540 } 541 542 <div 543 class="row @(!showAll ? "dalgas-featured-list-mobile-horizontal-scroll" : "mt-5") js-dalgas-queryresult-itemlist dalgas-queryresult-itemlist mt-2"> 544 @foreach (string pageId in pageIds) 545 { 546 if (!int.TryParse(pageId, out int intPageId)) 547 { 548 continue; 549 } 550 551 Page page = Services.Pages.GetPage(intPageId); 552 553 if (page == null) 554 { 555 continue; 556 } 557 558 @* Renders articles from another website language *@ 559 560 string resolvedPageId = pageId; 561 if (PageView.Current().Page.AreaId != page.AreaId) 562 { 563 resolvedPageId = GetPageIdByNavigationTag("ArticlePageFromOtherSite") + "&render-article-id=" + pageId; 564 } 565 566 string articleUrl = SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?ID=" + resolvedPageId); 567 568 strTitle = page.Item["Title"]?.ToString(); 569 strSummary = page.Item["Summary"]?.ToString(); 570 strImage = page.Item["CoverImage"] == null ? string.Empty : page.Item["CoverImage"]?.ToString(); 571 btnViewResult.Id = "pageId_" + page.ID; 572 btnViewResult.Url = !string.IsNullOrEmpty(articleUrl) ? articleUrl : "/Default.aspx?ID=" + resolvedPageId; 573 if (page.Item["Date"] != null) 574 { 575 strDate = (DateTime) page.Item["Date"]; 576 } 577 578 int jpgIndex = strImage.IndexOf(".jpg", StringComparison.OrdinalIgnoreCase); 579 if (jpgIndex != -1) 580 { 581 strImage = strImage.Substring(0, jpgIndex + 4); 582 } 583 584 featuredListImage = ViewModelFactory.CreateFieldFileValueView(strImage); 585 imageList.Add(featuredListImage); 586 587 if (Model.Item.GetItem("Content").GetString("FeatureOptions") == "news") 588 { 589 badgeTheme = ""; 590 if (loopCounter % 6 == 2 || loopCounter % 6 == 4) 591 { 592 newsModolusClasslist = "col-lg-5"; 593 imageAspectRatio = "ratio-16x9"; 594 if (showAll) 595 { 596 imageAspectRatio = "ratio-3x4 ratio-custom-news"; 597 } 598 } 599 else 600 { 601 newsModolusClasslist = "col-lg-3"; 602 imageAspectRatio = "ratio-16x9 ratio-lg-3x4"; 603 if (showAll) 604 { 605 imageAspectRatio = "ratio-3x4"; 606 } 607 } 608 609 loopCounter++; 610 } 611 612 613 <div class="@colClasslist @newsModolusClasslist"> 614 615 @if (!string.IsNullOrEmpty(featuredListImage.Path)) 616 { 617 <a href="@btnViewResult.Url"> 618 <figure class="ratio @imageAspectRatio mb-0"> 619 @RenderPartial("Components/Image.cshtml", featuredListImage ?? new FileViewModel()) 620 </figure> 621 </a> 622 } 623 624 <div class="@cardClasslist"> 625 @if (Model.Item.GetItem("Content").GetString("FeatureOptions") == "events") 626 { 627 badgeTheme = "mb-5"; 628 } 629 @if (Model.Item.GetItem("Content").GetString("FeatureOptions") == "events" || Model.Item.GetItem("Content").GetString("FeatureOptions") == "news") 630 { 631 if (strDate != null) 632 { 633 var date = strDate; 634 var formattedDate = date.ToLongDateString(); 635 if (date.TimeOfDay.ToString() != "00:00:00") 636 { 637 formattedDate = formattedDate + " - " + date.ToShortTimeString(); 638 } 639 640 <div class="badge mb-3 @badgeTheme"> 641 @formattedDate 642 </div> 643 } 644 } 645 646 @if (Model.Item.GetItem("Content").GetString("FeatureOptions") == "cases" || Model.Item.GetItem("Content").GetString("FeatureOptions") == "projects") 647 { 648 var selectedValues = page.Item["Type"].ToString(); 649 <div class="badge mb-5 mr-3 @badgeTheme"> 650 @ContentService.Instance.GetLabelForCaseType(selectedValues) 651 </div> 652 } 653 654 @{ 655 var badgeParms = new Dictionary<string, object>(); 656 badgeParms.Add("pageId", page.ID); 657 } 658 @RenderPartial("UserInterfaceModels/badge.cshtml", Model, badgeParms) 659 660 <h4> 661 <a href="@btnViewResult.Url" class="text-decoration-none"> 662 @strTitle 663 </a> 664 </h4> 665 @if (strSummary != null) 666 { 667 <span class="small">@strSummary</span> 668 } 669 670 <div class="mt-2"> 671 @RenderModel(btnViewResult) 672 </div> 673 </div> 674 </div> 675 } 676 </div> 677 678 @if (showAll && totaleCount > numberOfItemsToShow) 679 { 680 <div class="row"> 681 <div class="col-12 text-center"> 682 <button onclick="custom.QueryResult.getNextPage(event)" 683 class="btn btn-primary">@Translate("Vis flere")</button> 684 </div> 685 </div> 686 } 687 688 @if (hasButton) 689 { 690 <div class="js-content-container content-container col-12"> 691 692 <div class="d-flex flex-wrap gap-3"> 693 @foreach (ButtonViewModel button in buttons) 694 { 695 @button 696 } 697 </div> 698 699 </div> 700 } 701 702 </div> 703 </div> 704 </div> 705 </div> 706 @if (enableFifthElement) 707 { 708 <div class="fifth-element-section-container"> 709 <div class="fifth-element size-2 bottom-0 ob-50 right-0 @fifthElementTheme"> 710 @ReadFile(fifthElementIconPath + "sun.svg") 711 </div> 712 </div> 713 } 714 </section> 715 } 716 else 717 { 718 if (Pageview.IsVisualEditorMode) 719 { 720 <div class="container-xl alert alert-danger" role="alert"> 721 This <strong>@Model.Item.SystemName</strong> is empty 722 </div> 723 } 724 } 725
Nowości z natury
Zmiana nazwy na Dalgas
1 października 2024 wszystkie jednostki biznesowe pod Hedeselskabet zmienią nazwę na Dalgas. Dotyczy to HedeDanmark, HD 2412, HD NordicTrees, HD Silva, HD BioRec, HD Forest, HD Forest Germany, HD Seed i HD LogSystems.Nie znalazłeś swojej branży?
Czy masz pytania dotyczące naszej pracy w konkretnych obszarach? Wypełnij formularz, a my oddzwonimy.
Hedeselskabet – z przyrodą jako partnerem
Dalgas jest częścią Hedeselskabet – założonego w 1866 roku i nadal rosnącego. Hedeselskabet to stowarzyszenie ludzi pracujących na rzecz zrównoważonej przyszłości. I którzy posiadają niezbędną wiedzę i doświadczenie, aby być na czele.
Hedeselskabet wspiera
Praca na rzecz zrównoważonej przyszłości wymaga zasobów. Hedeselskabet uczestniczy w rozwoju przyrody i środowiska oraz bierze odpowiedzialność. Dlatego przyznajemy fundusze na odpowiednie projekty rozwojowe i na projekty prowadzone przez członków, jak również przyznajemy stypendia. Dla dobra nas wszystkich – teraz i w przyszłości.