1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
2 @using Dynamicweb.Frontend.Navigation
3 @using Dynamicweb
4
5 @{
6 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : "";
7 string productGroupPromotionImageTheme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("ProductGroupPromotionImageTheme")) ? " theme " + Model.Item.GetRawValueString("ProductGroupPromotionImageTheme").Replace(" ", "").Trim().ToLower() : "";
8
9 string layout = Model.Item.GetRawValueString("Layout", "linksOnly");
10
11 string navAlignment = Model.Item.GetRawValueString("NavAlignment", "justify-content-start text-start");
12 navAlignment = navAlignment == "start" ? "justify-content-start text-start" : navAlignment;
13 navAlignment = navAlignment == "center" ? "justify-content-center text-center" : navAlignment;
14 navAlignment = navAlignment == "end" ? "justify-content-end text-end" : navAlignment;
15
16 string dropdownAlignment = Model.Item.GetRawValueString("DropdownAlignment", "justify-content-start text-start");
17 dropdownAlignment = dropdownAlignment == "start" ? "justify-content-start text-start" : dropdownAlignment;
18 dropdownAlignment = dropdownAlignment == "center" ? "justify-content-center text-center" : dropdownAlignment;
19 dropdownAlignment = dropdownAlignment == "end" ? "justify-content-end text-end" : dropdownAlignment;
20
21 string linkFontWeight = Model.Item.GetRawValueString("LinkFontWeight", "fw-normal");
22 linkFontWeight = linkFontWeight == "light" ? "fw-light" : linkFontWeight;
23 linkFontWeight = linkFontWeight == "normal" ? "fw-normal" : linkFontWeight;
24 linkFontWeight = linkFontWeight == "bold" ? "fw-bold" : linkFontWeight;
25
26 string linkCasing = Model.Item.GetRawValueString("LinkCasing", "");
27 linkCasing = linkCasing == "regular" ? "" : linkCasing;
28 linkCasing = linkCasing == "uppercase" ? "text-uppercase" : linkCasing;
29 linkCasing = linkCasing == "lowercase" ? "text-lowercase" : linkCasing;
30
31 string linkFontSize = Model.Item.GetRawValueString("LinkFontSize", "fs-6");
32 linkFontSize = linkFontSize == "small" ? "fs-7" : linkFontSize;
33 linkFontSize = linkFontSize == "regular" ? "fs-6" : linkFontSize;
34 linkFontSize = linkFontSize == "large" ? "fs-5" : linkFontSize;
35
36 string dropdownLinkHeaderFontWeight = Model.Item.GetRawValueString("DropdownLinkHeaderFontWeight", "fw-normal");
37 dropdownLinkHeaderFontWeight = dropdownLinkHeaderFontWeight == "light" ? "fw-light" : dropdownLinkHeaderFontWeight;
38 dropdownLinkHeaderFontWeight = dropdownLinkHeaderFontWeight == "normal" ? "fw-normal" : dropdownLinkHeaderFontWeight;
39 dropdownLinkHeaderFontWeight = dropdownLinkHeaderFontWeight == "bold" ? "fw-bold" : dropdownLinkHeaderFontWeight;
40
41 string dropdownLinkHeaderCasing = Model.Item.GetRawValueString("DropdownLinkHeaderCasing", "");
42 dropdownLinkHeaderCasing = dropdownLinkHeaderCasing == "regular" ? "" : dropdownLinkHeaderCasing;
43 dropdownLinkHeaderCasing = dropdownLinkHeaderCasing == "uppercase" ? "text-uppercase" : dropdownLinkHeaderCasing;
44 dropdownLinkHeaderCasing = dropdownLinkHeaderCasing == "lowercase" ? "text-lowercase" : dropdownLinkHeaderCasing;
45
46 string dropdownLinkHeaderFontSize = Model.Item.GetRawValueString("DropdownLinkHeaderFontSize", "fs-6");
47 dropdownLinkHeaderFontSize = dropdownLinkHeaderFontSize == "small" ? "fs-7" : dropdownLinkHeaderFontSize;
48 dropdownLinkHeaderFontSize = dropdownLinkHeaderFontSize == "regular" ? "fs-6" : dropdownLinkHeaderFontSize;
49 dropdownLinkHeaderFontSize = dropdownLinkHeaderFontSize == "large" ? "fs-5" : dropdownLinkHeaderFontSize;
50
51 string dropdownLinkFontWeight = Model.Item.GetRawValueString("DropdownLinkFontWeight", "fw-normal");
52 dropdownLinkFontWeight = dropdownLinkFontWeight == "light" ? "fw-light" : dropdownLinkFontWeight;
53 dropdownLinkFontWeight = dropdownLinkFontWeight == "normal" ? "fw-normal" : dropdownLinkFontWeight;
54 dropdownLinkFontWeight = dropdownLinkFontWeight == "bold" ? "fw-bold" : dropdownLinkFontWeight;
55
56 string dropdownLinkCasing = Model.Item.GetRawValueString("DropdownLinkCasing", "");
57 dropdownLinkCasing = dropdownLinkCasing == "regular" ? "" : dropdownLinkCasing;
58 dropdownLinkCasing = dropdownLinkCasing == "uppercase" ? "text-uppercase" : dropdownLinkCasing;
59 dropdownLinkCasing = dropdownLinkCasing == "lowercase" ? "text-lowercase" : dropdownLinkCasing;
60
61 string dropdownLinkFontSize = Model.Item.GetRawValueString("DropdownLinkFontSize", "fs-6");
62 dropdownLinkFontSize = dropdownLinkFontSize == "small" ? "fs-7" : dropdownLinkFontSize;
63 dropdownLinkFontSize = dropdownLinkFontSize == "regular" ? "fs-6" : dropdownLinkFontSize;
64 dropdownLinkFontSize = dropdownLinkFontSize == "large" ? "fs-5" : dropdownLinkFontSize;
65
66 string imagePlacement = Model.Item.GetRawValueString("ProductGroupImagePlacement", "");
67 imagePlacement = imagePlacement == "image-left" ? "flex-row" : imagePlacement;
68 imagePlacement = imagePlacement == "image-right" ? "flex-row-reverse" : imagePlacement;
69 imagePlacement = imagePlacement == "image-top" ? "flex-column" : imagePlacement;
70
71 string productGroupImageShape = Model.Item.GetRawValueString("ProductGroupImageShape", "");
72 productGroupImageShape = productGroupImageShape == "image-square" ? "" : productGroupImageShape;
73 productGroupImageShape = productGroupImageShape == "image-rounded" ? "rounded-circle" : productGroupImageShape;
74
75 string productGroupImageSize = Model.Item.GetRawValueString("ProductGroupImageSize", "");
76
77 string ratio = Model.Item.GetRawValueString("ImageAspectRatio", "");
78
79 var navigationSettings = new NavigationSettings();
80 navigationSettings.StartLevel = 1;
81 navigationSettings.StopLevel = 10;
82 navigationSettings.ExpandMode = ExpandMode.All;
83 navigationSettings.Parameters.Add("theme", theme);
84 navigationSettings.Parameters.Add("NavAlignment", navAlignment);
85 navigationSettings.Parameters.Add("DropdownAlignment", dropdownAlignment);
86 navigationSettings.Parameters.Add("LinkFontWeight", linkFontWeight);
87 navigationSettings.Parameters.Add("LinkCasing", linkCasing);
88 navigationSettings.Parameters.Add("LinkFontSize", linkFontSize);
89 navigationSettings.Parameters.Add("DropdownLinkHeaderFontWeight", dropdownLinkHeaderFontWeight);
90 navigationSettings.Parameters.Add("DropdownLinkHeaderCasing", dropdownLinkHeaderCasing);
91 navigationSettings.Parameters.Add("DropdownLinkHeaderFontSize", dropdownLinkHeaderFontSize);
92 navigationSettings.Parameters.Add("DropdownLinkFontWeight", dropdownLinkFontWeight);
93 navigationSettings.Parameters.Add("DropdownLinkCasing", dropdownLinkCasing);
94 navigationSettings.Parameters.Add("DropdownLinkFontSize", dropdownLinkFontSize);
95 navigationSettings.Parameters.Add("Layout", layout);
96 navigationSettings.Parameters.Add("ProductGroupImagePlacement", imagePlacement);
97 navigationSettings.Parameters.Add("ProductGroupImageShape", productGroupImageShape);
98 navigationSettings.Parameters.Add("ProductGroupImageSize", productGroupImageSize);
99 navigationSettings.Parameters.Add("ProductGroupPromotionImageTheme", productGroupPromotionImageTheme);
100 navigationSettings.Parameters.Add("ShowProductGroupPromotionImage", Model.Item.GetBoolean("ShowProductGroupPromotionImage"));
101 navigationSettings.Parameters.Add("ImageAspectRatio", ratio);
102
103 if (!string.IsNullOrEmpty(Model.Item.GetString("NavigationRoot")))
104 {
105 string root = Model.Item.GetString("NavigationRoot");
106
107 if (root.Contains("="))
108 {
109 int rootPageId = Convert.ToInt32(root.Substring(root.LastIndexOf('=') + 1));
110 navigationSettings.RootPageId = rootPageId;
111
112 var page = Dynamicweb.Content.Services.Pages.GetPage(rootPageId);
113 if (page != null && !string.IsNullOrEmpty(page.NavigationTag))
114 {
115 navigationSettings.Parameters.Add("menu-id", page.NavigationTag.ToLower());
116 }
117 }
118 }
119 else
120 {
121 navigationSettings.Parameters.Add("menu-id", "root");
122 }
123 }
124
125 <div class="nav-wrapper megamenu-wrapper
[email protected]()" id="
[email protected]">
126 @Navigation.RenderNavigation("Navigation/MegaMenu.cshtml", navigationSettings)
127 </div>
128
129 <script type="module">
130 swift.Menu.setMenuContentOffset('
[email protected]');
131 </script>
132