PageRenderTime 46ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/WEB/_em/templates/_custom/EKO/EKO.master.cs

https://bitbucket.org/zzare/eko
C# | 459 lines | 242 code | 120 blank | 97 comment | 51 complexity | 95682490e1fbf347568ae88b20a3dba8 MD5 | raw file
  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Web.UI.HtmlControls;
  12. using System.Xml.Linq;
  13. using System.IO;
  14. using System.Text;
  15. using System.Threading;
  16. using System.Globalization;
  17. namespace SM.EM.UI
  18. {
  19. public partial class _em_templates__custom_eko : BaseMasterPage_EMENIK
  20. {
  21. public static Guid PageId;
  22. public override string StatusText
  23. {
  24. get;
  25. set;
  26. }
  27. public override string ErrorText
  28. {
  29. get;
  30. set;
  31. }
  32. protected override void OnInit(EventArgs e)
  33. {
  34. base.OnInit(e);
  35. // require login
  36. //if (ppem.PageModule != -11) {
  37. // if (!Page.User.Identity.IsAuthenticated)
  38. // {
  39. // ppem.RequestCustomerLoginLanding();
  40. // return;
  41. // }
  42. //}
  43. // register menu sitemap prividers
  44. ppem.RegSmpEmenik.Add(5);
  45. ppem.RegSmpEmenik.Add(7);
  46. }
  47. protected void Page_Load(object sender, EventArgs e)
  48. {
  49. // only in this example
  50. PageId = SM.BLL.Custom.MainUserID;
  51. // add hover jquery
  52. SM.EM.Helpers.RegisterScriptIncludeAJAX(SM.BLL.Common.Emenik.ResolveMainDomainUrl("~/Javascript/jQuery/jquery.hoverIntent.minified.js"), Page, "jHoverIntent");
  53. // add cycle
  54. SM.EM.Helpers.RegisterScriptIncludeAJAX(SM.BLL.Common.Emenik.ResolveMainDomainUrl("~/Javascript/CyclePlugin/jquery.cycle.all.min.js"), Page, "jqueryCycle");
  55. // watermark
  56. SM.EM.Helpers.RegisterScriptIncludeAJAX(SM.BLL.Common.Emenik.ResolveMainDomainUrl("~/JavaScript/jQuery/jquery.tinywatermark-3.1.0.js"), Page, "jqueryWatermark");
  57. // add hover jquery
  58. SM.EM.Helpers.RegisterScriptIncludeAJAX(SM.BLL.Common.Emenik.ResolveMainDomainUrl("~/javascript/jquery/jquery.cookie.js"), Page, "jCookie",true);
  59. // fancyopts
  60. SM.EM.Helpers.RegisterScriptIncludeAJAX(Page.ResolveUrl("~/Javascript/jquery.fancyopts-0.5.min.js"), Page, "fancyopts", false);
  61. // add CSS
  62. CSSMain.Href += "?" + Helpers.GetCssVersion();
  63. CSSMenu.Href += "?" + Helpers.GetCssVersion();
  64. CSSIEMenu6.Href += "?" + Helpers.GetCssVersion();
  65. //CSSTemplate.Href += "?" + Helpers.GetCssVersion();
  66. // bind sitemap provider data
  67. smdsMain.Provider = ppem.SmpEmenikList[5];
  68. //smdsSek.Provider = ppem.SmpEmenikList[6];
  69. // smdsLeft.Provider = ppem.SmpEmenik;
  70. //objBreadCrumbs.Provider = ppem.SmpEmenik;
  71. // init content
  72. if (ppem.PageModule == -11)
  73. {
  74. cMenuContainer.Visible = false;
  75. cHeaderMain.Visible = false;
  76. cFooterCF.Visible = false;
  77. cFooterSeparator.Visible = false;
  78. //cLoginMenu.Visible = true;
  79. }
  80. // init CF
  81. var c = CUSTOMER.GetCurrentCustomer();
  82. if (c == null)
  83. {
  84. c = new CUSTOMER { };
  85. }
  86. objContactForm.Cust = c;
  87. objContactFormEN.Cust = c;
  88. objContactFormIT.Cust = c;
  89. }
  90. //protected override void OnPreRender(EventArgs e)
  91. //{
  92. // base.OnPreRender(e);
  93. // // jCorner
  94. // SM.EM.Helpers.RegisterScriptIncludeAJAX(Page.ResolveUrl("~/Javascript/jcorner/jquery.corner.js"), Page, "corner");
  95. // // hide left menu container if empty
  96. // //if (mLeft.Items.Count <= 0) {
  97. // // cMenuLeft.Visible = false;
  98. // //}
  99. // //// hide entire left side if nothing in placeholder
  100. // //if (mLeft.Items.Count == 0 && cphLeft.Controls.Count == 1) {
  101. // // cMainL.Visible = false;
  102. // //}
  103. //}
  104. public override void LoadData()
  105. {
  106. // languages
  107. objLanguages.LoadLanguages();
  108. base.LoadData();
  109. }
  110. protected string RenderNovIzdelek() {
  111. string ret = "";
  112. ProductRep prep = new ProductRep();
  113. int dateMargin = -7;
  114. var prod = prep.GetProductDescList(1473, LANGUAGE.GetCurrentLang(), true, ppem.em_user.UserId).Where(w => w.ADDED_DATE > DateTime.Today.AddDays(dateMargin))
  115. .OrderByDescending(o=>o.CAT_SALE ).ThenByDescending(w=> w.ADDED_DATE )
  116. .FirstOrDefault();
  117. if (prod == null)
  118. return ret;
  119. ret = string.Format("<a class='header_btn' href='{0}'>{1}</a>", SM.BLL.Common.ResolveUrl(SM.EM.Rewrite.EmenikUserProductDetailsUrl(prod.PageId, prod.ID_INT, prod.NAME)), GetGlobalResourceObject("Products", "masterNewProduct"));
  120. return ret;
  121. }
  122. protected string RenderNovosti()
  123. {
  124. string ret = "";
  125. ArticleRep arep = new ArticleRep();
  126. int dateMargin = SM.BLL.Custom.Settings.NovostiDaysMargin;
  127. var rec = (from a in arep.GetArticlesByActive(true)
  128. where a.RELEASE_DATE > DateTime.Today.AddDays(dateMargin )
  129. orderby a.SortWeight descending, a.RELEASE_DATE descending, a.DATE_MODIFY descending, a.DATE_ADDED descending
  130. select a) ;
  131. var list = arep.GetArticleListHierarchy(SM.BLL.Custom.Settings.SmpKlepetalnica(), LANGUAGE.GetCurrentLang(), true, SM.BLL.Custom.MainUserID, rec);
  132. var art = list.FirstOrDefault();
  133. if (art == null)
  134. return ret;
  135. string novostiUrl = "";
  136. novostiUrl = SM.BLL.Common.ResolveUrl(SM.EM.Rewrite.EmenikUserUrl("eko", SM.BLL.Custom.Settings.SmpKlepetalnica(), Resources.Product.masterNew ));
  137. novostiUrl = novostiUrl + "?n=1";// +HttpUtility.UrlEncode(DateTime.Today.AddDays(dateMargin).ToShortDateString());
  138. ret = string.Format("<a class='header_btn btNovosti' href='{0}'>{1}</a>", novostiUrl, Resources.Product.masterNew
  139. // SM.BLL.Common.ResolveUrl(SM.EM.Rewrite.EmenikUserArticleDetailsUrl(ppem.em_user.PAGE_NAME, art.ART_ID ,art.ART_TITLE))
  140. );
  141. return ret;
  142. }
  143. protected void mTop_DataBound(object sender, EventArgs e)
  144. {
  145. Menu m = (Menu)sender;
  146. SelectCurrentMenuItem(m, smdsMain.Provider);
  147. // select item if child is selected
  148. if (m.SelectedItem == null)
  149. {
  150. if (ppem.CurrentSmpEmenik != null && ppem.CurrentSmpEmenik.CurrentNode != null)
  151. {
  152. foreach (MenuItem item in m.Items)
  153. {
  154. if (item.DataPath == ppem.CurrentSmpEmenik.CurrentNode.ParentNode.Key)
  155. {
  156. item.Selected = true;
  157. return;
  158. }
  159. else if (ppem.CurrentSmpEmenik.CurrentNode.ParentNode.ParentNode != null && item.DataPath == ppem.CurrentSmpEmenik.CurrentNode.ParentNode.ParentNode.Key)
  160. {
  161. item.Selected = true;
  162. return;
  163. }
  164. }
  165. }
  166. }
  167. }
  168. //protected void mBottom_DataBound(object sender, EventArgs e)
  169. //{
  170. // Menu m = (Menu)sender;
  171. // SelectCurrentMenuItem(m, smdsSek.Provider);
  172. //}
  173. //protected void mLeft_DataBound(object sender, EventArgs e)
  174. //{
  175. // Menu m = (Menu)sender;
  176. // SelectCurrentMenuItem(m, smdsLeft.Provider);
  177. //}
  178. // for custom class in menu
  179. protected void mTop_MenuItemDataBound(object sender, MenuEventArgs e)
  180. {
  181. SiteMapNode node = e.Item.DataItem as SiteMapNode;
  182. if (node != null)
  183. {
  184. if (!string.IsNullOrEmpty(node["class"]))
  185. e.Item.ToolTip += ";" + node["class"];
  186. }
  187. }
  188. public static string RenderLoginView(HttpContext context)
  189. {
  190. object data = PageId;
  191. object[] parameters = new object[] { };
  192. string ret = "";
  193. ret = SM.EM.Security.Login.RenderLoginView(data, parameters);
  194. //context.Response.ContentEncoding = Encoding.UTF8;
  195. context.Response.Charset = "UTF-8"; // important !!
  196. //return Encoding.UTF8.GetString(ms.ToArray());
  197. return ret;
  198. }
  199. public static string RenderShoppingCart(HttpContext context)
  200. {
  201. // set culture
  202. string culture = LANGUAGE.ValidateCulture(LANGUAGE.GetCurrentCulture());
  203. System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
  204. System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
  205. //context.Trace.Warn("RenderShoppingCart - start ");
  206. ProductRep prep = new ProductRep();
  207. Guid userid = SM.EM.BLL.Membership.GetCurrentUserID();
  208. //context.Trace.Warn("RenderShoppingCart - start - getItems");
  209. object data = prep.GetCartItemList(userid, LANGUAGE.GetCurrentLang(), PageId, null);
  210. //context.Trace.Warn("RenderShoppingCart - end - getItems");
  211. object[] parameters = new object[] { PageId };
  212. string ret = "";
  213. //context.Trace.Warn("RenderShoppingCart - start - render");
  214. ret = ViewManager.RenderView("~/_ctrl/module/product/cart/_viewShoppingCartPopup.ascx", data, parameters);
  215. //context.Trace.Warn("RenderShoppingCart - end - render");
  216. context.Response.Charset = "UTF-8"; // important !!
  217. //context.Trace.Warn("RenderShoppingCart - end ");
  218. return ret;
  219. }
  220. //protected string RenderCustomClass()
  221. //{
  222. // string ret = "";
  223. // if (ppem.CurrentSitemapNode == null)
  224. // return ret;
  225. // return ppem.CurrentSitemapNode["class"];
  226. //}
  227. protected string RenderBodyClass()
  228. {
  229. string ret = "";
  230. if (ppem.IsEditMode)
  231. ret = " edit ";
  232. // settings
  233. if (ppem.IsEditMode && !ppem.IsModeCMS && !ppem.IsModePreview)
  234. ret += " edit_sett ";
  235. // current smp id
  236. string smp = "";
  237. if (ppem.CurrentSitemapNode != null)
  238. smp = "m_" + ppem.CurrentSitemapNode.Key;
  239. // if not first level, add first level smp id
  240. if (ppem.CurrentSitemapNode != null && ppem.CurrentSitemapNode.ParentNode != null && ppem.CurrentSitemapNode.ParentNode != ppem.CurrentSitemapNode.RootNode)
  241. {
  242. SiteMapNode node = ppem.CurrentSitemapNode.ParentNode;
  243. while (node.ParentNode != null && node.ParentNode != ppem.CurrentSitemapNode.RootNode)
  244. {
  245. node = node.ParentNode;
  246. }
  247. smp += " m_" + node.Key + "_child";
  248. }
  249. // remove from product detail
  250. if (ppem.PageModule == SM.BLL.Common.PageModule.ProductDetails)
  251. smp = "";
  252. ret = ret + LANGUAGE.GetCurrentCulture().ToLower() + " " + smp;
  253. //Response.Write(ret);
  254. return ret;
  255. }
  256. protected string RenderMp3Url()
  257. {
  258. string ret = "";
  259. if (DateTime.Now.Hour < 20 && DateTime.Now.Hour >= 5 )
  260. ret = "_inc/sound/ptice-o.mp3";
  261. else
  262. ret = "_inc/sound/sova-o.mp3";
  263. ret = Page.ResolveUrl("~/") + ret;
  264. return ret;
  265. }
  266. protected override void OnPreRender(EventArgs e)
  267. {
  268. base.OnPreRender(e);
  269. if (ppem.PageModule != SM.BLL.Common.PageModule.ProductDetails)
  270. {
  271. AddFacebookGraphMeta(); // after canonical is set
  272. }
  273. }
  274. //protected override void OnPreRender(EventArgs e)
  275. //{
  276. // base.OnPreRender(e);
  277. // AddFacebookGraphMeta(); // after canonical is set
  278. //}
  279. protected void AddFacebookGraphMeta()
  280. {
  281. // title
  282. HtmlMeta title = new HtmlMeta();
  283. title.Attributes["property"] = "og:title";
  284. title.Content = ppem.Title ;
  285. ppem.Header.Controls.Add(title);
  286. // site name
  287. HtmlMeta site_name = new HtmlMeta();
  288. site_name.Attributes["property"] = "og:site_name";
  289. site_name.Content = SM.BLL.Common.Emenik.Data.PortalName();
  290. ppem.Header.Controls.Add(site_name);
  291. // type
  292. HtmlMeta type = new HtmlMeta();
  293. type.Attributes["property"] = "og:type";
  294. if (ppem.PageModule != SM.BLL.Common.PageModule.ArticleDetails)
  295. {
  296. type.Content = "website";
  297. }
  298. else
  299. type.Content = "article";
  300. ppem.Header.Controls.Add(type);
  301. // image
  302. string img = SM.BLL.Common.ResolveUrlFull("~/_em/templates/_custom/eko/_inc/images/design/ekorepublika.png");
  303. img = SM.BLL.Common.ResolveUrlFull("~/_em/templates/_custom/eko/_inc/images/logotipi/tg_bcg.jpg?v2");
  304. //img = "http://cnj.blob.core.windows.net/zoran-img/ZJ_facebook_slovenia.jpg";
  305. //if (!string.IsNullOrEmpty(Prod.IMG_URL))
  306. // img = SM.BLL.Common.ResolveUrl(Prod.IMG_URL);
  307. HtmlMeta image = new HtmlMeta();
  308. image.Attributes["property"] = "og:image";
  309. image.Content = img;
  310. ppem.Header.Controls.Add(image);
  311. // admin
  312. HtmlMeta admin = new HtmlMeta();
  313. admin.Attributes["property"] = "fb:admins";
  314. admin.Content = "759469529";
  315. ppem.Header.Controls.Add(admin);
  316. // app
  317. //HtmlMeta app = new HtmlMeta();
  318. //app.Attributes["property"] = "fb:app_id";
  319. //app.Content = Facebook.FacebookApplication.Current.AppId;
  320. //Header.Controls.Add(app);
  321. // url
  322. if (!string.IsNullOrEmpty(ppem.RelCanonical))
  323. {
  324. HtmlMeta url = new HtmlMeta();
  325. url.Attributes["property"] = "og:url";
  326. if (ppem.RelCanonical == "/")
  327. url.Content = SM.BLL.Common.ResolveUrlFull("~/");
  328. else
  329. url.Content = ppem.RelCanonical;
  330. ppem.Header.Controls.Add(url);
  331. }
  332. }
  333. //protected void btSearch_Click(object o, EventArgs e)
  334. //{
  335. // if (!string.IsNullOrEmpty(tbSearch.Text.Trim()))
  336. // Response.Redirect(Page.ResolveUrl(SM.EM.Rewrite.SearchProductEmenikUrl(ppem.em_user.UserId, tbSearch.Text)));
  337. //}
  338. }
  339. }