@shift72/core-template 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +46 -11
  3. package/kibble.json +3 -3
  4. package/package.json +2 -3
  5. package/scripts/translate.mjs +30 -22
  6. package/site/ar_LB.all.json +65 -11
  7. package/site/ca_ES.all.json +65 -11
  8. package/site/da_DK.all.json +64 -10
  9. package/site/de_DE.all.json +64 -10
  10. package/site/el_EL.all.json +64 -10
  11. package/site/en_AU.all.json +69 -15
  12. package/site/es_ES.all.json +66 -12
  13. package/site/es_MX.all.json +66 -12
  14. package/site/{ee_EE.all.json → et_ET.all.json} +64 -10
  15. package/site/fi_FI.all.json +67 -13
  16. package/site/fr_FR.all.json +66 -12
  17. package/site/hr_HR.all.json +65 -11
  18. package/site/hu_HU.all.json +65 -11
  19. package/site/it_IT.all.json +65 -11
  20. package/site/ja_JP.all.json +64 -10
  21. package/site/lt_LT.all.json +64 -10
  22. package/site/nl_BE.all.json +65 -11
  23. package/site/no_NO.all.json +65 -11
  24. package/site/pl_PL.all.json +65 -11
  25. package/site/plans.html.jet +17 -17
  26. package/site/pt_BR.all.json +65 -11
  27. package/site/pt_PT.all.json +65 -11
  28. package/site/ru_RU.all.json +67 -13
  29. package/site/sr_SR.all.json +67 -13
  30. package/site/static/fonts/fa-s72.woff +0 -0
  31. package/site/static/js/main.js +1 -0
  32. package/site/static/scripts/main.js.map +1 -1
  33. package/site/styles/_availability-tags.scss +63 -31
  34. package/site/styles/_awards.scss +4 -3
  35. package/site/styles/_buttons.scss +15 -3
  36. package/site/styles/_carousel.scss +21 -24
  37. package/site/styles/_forms.scss +8 -3
  38. package/site/styles/_icons.scss +180 -9
  39. package/site/styles/_legacy.scss +0 -7
  40. package/site/styles/_meta-detail.scss +65 -40
  41. package/site/styles/_nav.scss +5 -4
  42. package/site/styles/_plans.scss +10 -17
  43. package/site/styles/_poster.scss +3 -9
  44. package/site/styles/_share-modal.scss +86 -0
  45. package/site/styles/_shift72.scss +7 -0
  46. package/site/styles/_shopping.scss +0 -1
  47. package/site/styles/_skip-link.scss +1 -1
  48. package/site/styles/_tooltips.scss +7 -0
  49. package/site/styles/_variables.scss +9 -8
  50. package/site/styles/_wishlist.scss +2 -2
  51. package/site/styles/main.scss +3 -2
  52. package/site/subscriptions.html.jet +11 -0
  53. package/site/templates/application/application.jet +2 -2
  54. package/site/templates/application/google.jet +8 -13
  55. package/site/templates/application/nav/user_logged_in.jet +7 -2
  56. package/site/templates/collection/carousel_item.jet +5 -3
  57. package/site/templates/common/social-media-buttons.jet +1 -37
  58. package/site/templates/common/sponsor-image.jet +18 -0
  59. package/site/templates/film/item.jet +92 -86
  60. package/site/templates/tv/detail.jet +30 -21
  61. package/site/tr_TR.all.json +64 -10
  62. package/site/uk_UA.all.json +65 -11
  63. package/site/zh_TW.all.json +64 -10
  64. package/site/static/fonts/FontAwesome.otf +0 -0
  65. package/site/static/fonts/fontawesome-webfont.eot +0 -0
  66. package/site/static/fonts/fontawesome-webfont.svg +0 -565
  67. package/site/static/fonts/fontawesome-webfont.ttf +0 -0
  68. package/site/static/fonts/fontawesome-webfont.woff +0 -0
  69. package/site/static/fonts/fontawesome-webfont.woff2 +0 -0
  70. package/site/styles/_social-media-buttons.scss +0 -159
@@ -0,0 +1,11 @@
1
+ {{extends "templates/application/application.jet"}}
2
+
3
+ {{block head()}}
4
+ {{yield seo(title=i18n("usersubscriptions_page_header"), index=false)}}
5
+ {{end}}
6
+
7
+ {{block body()}}
8
+ <div class="page form-page usersubscriptions-page">
9
+ <s72-usersubscription></s72-usersubscription>
10
+ </div>
11
+ {{end}}
@@ -21,6 +21,8 @@
21
21
  <link rel="manifest" href="/manifest.json">
22
22
  <link rel="preload" href="/{{lang.DefinitionFilePath}}" as="fetch" crossorigin type="application/json">
23
23
  <link rel="preload" href="/classifications.all.json" as="fetch" crossorigin type="application/json">
24
+ <link rel="preload" href="/urlmap.json" as="fetch" crossorigin type="application/json">
25
+
24
26
  <!-- Kibble: {{version}} -->
25
27
  {{if site.SiteConfig.CoreTemplateVersion != ""}}
26
28
  <!-- Core-Template: {{site.SiteConfig.CoreTemplateVersion}} -->
@@ -65,8 +67,6 @@
65
67
  </script>
66
68
 
67
69
  <script type="text/javascript" src="/scripts/swiper.min.js"></script>
68
-
69
- {{yield googleGa4Script()}}
70
70
  </head>
71
71
  <body>
72
72
 
@@ -1,24 +1,19 @@
1
- {{block googleGa4Script(analyticsId=config("google_analytics_id"))}}
2
- {{if hasPrefix(analyticsId,"G")}}
3
- <!-- GA4 script if G tracking code is provided -->
4
- <script async src="https://www.googletagmanager.com/gtag/js?id={{analyticsId}}"></script>
5
- {{end}}
6
- {{end}}
7
-
8
1
  {{block googleScripts(tagManagerId=config("google_tag_manager_id"), analyticsId=config("google_analytics_id"))}}
9
2
  <!-- Google integration scripts -->
10
3
  <script>
11
4
  function loadGoogleTagManager() {
12
- (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
13
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
14
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
15
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
16
- })(window,document,'script','dataLayer','{{ tagManagerId }}')
17
- }
5
+ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
6
+ var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';
7
+ j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
8
+ })(window,document,'script','dataLayer','{{ tagManagerId }}')}
18
9
 
19
10
  <!-- GA4 code snippet if G tracking code is provided, else use legacy UA code snippet -->
20
11
  {{if hasPrefix(analyticsId,"G")}}
21
12
  function loadGoogleAnalytics() {
13
+ (function(d, googleId){var f = d.getElementsByTagName('script')[0];var s = d.createElement('script');
14
+ s.src = 'https://www.googletagmanager.com/gtag/js?id=' + googleId;s.async = true;f.parentNode.insertBefore(s,f);
15
+ }(document,'{{analyticsId}}'));
16
+
22
17
  window.dataLayer = window.dataLayer || [];
23
18
  function gtag(){dataLayer.push(arguments);}
24
19
  gtag('js', new Date());
@@ -3,8 +3,8 @@
3
3
  <s72-dropdown class="navbar-nav-user-nav">
4
4
  <div>
5
5
  <a href="#" class="s72-btn s72-dropdown-toggle">
6
- <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="user-icon" width="24" height="24" x="0px" y="0px" viewBox="-241 245 24 24" xml:space="preserve">
7
- <path d="M-231,247c-5.5,0-10,4.5-10,10c0,5.5,4.5,10,10,10s10-4.5,10-10C-221,251.5-225.5,247-231,247 M-224.6,261.8c-1.4-1.7-4.9-2.3-6.4-2.3s-4.9,0.6-6.4,2.3c-1-1.3-1.6-3-1.6-4.8c0-4.4,3.6-8,8-8s8,3.6,8,8C-223,258.8-223.6,260.5-224.6,261.8M-231,251c-1.9,0-3.5,1.6-3.5,3.5s1.6,3.5,3.5,3.5s3.5-1.6,3.5-3.5S-229.1,251-231,251"/>
6
+ <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
7
+ <path d="M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 5C13.66 5 15 6.34 15 8C15 9.66 13.66 11 12 11C10.34 11 9 9.66 9 8C9 6.34 10.34 5 12 5ZM12 19.2C9.5 19.2 7.29 17.92 6 15.98C6.03 13.99 10 12.9 12 12.9C13.99 12.9 17.97 13.99 18 15.98C16.71 17.92 14.5 19.2 12 19.2Z"/>
8
8
  </svg>
9
9
  <s72-username class="username-mobile"></s72-username>
10
10
  </a>
@@ -26,6 +26,11 @@
26
26
  <li>
27
27
  <a class="s72-dropdown-item" href="{{ routeToPath("/devices.html") }}">{{i18n("nav_devices")}}</a>
28
28
  </li>
29
+ {{if config("account_show_plans") == "true" }}
30
+ <li>
31
+ <a class="s72-dropdown-item" href="{{ routeToPath("/subscriptions.html") }}">{{i18n("nav_subscriptions")}}</a>
32
+ </li>
33
+ {{ end }}
29
34
  <li>
30
35
  <a class="s72-dropdown-item" href="{{ routeToPath("/account.html") }}">{{i18n("nav_account")}}</a>
31
36
  </li>
@@ -1,5 +1,6 @@
1
1
  {{import "../items/tagline.jet"}}
2
2
  {{import "../common/awards/carousel.jet"}}
3
+ {{import "../common/sponsor-image.jet"}}
3
4
 
4
5
  {{block carouselItem(item)}}
5
6
  {{ trailer := "" }}
@@ -19,6 +20,9 @@
19
20
 
20
21
  {{if !isset(item["PageType"]) || item.PageType != "external"}}
21
22
  <div class="carousel-item-caption">
23
+ {{if item.ItemType == "film"}}
24
+ {{yield sponsor(hideLink="true") item.InnerItem}}
25
+ {{end}}
22
26
  <div class="meta-item-content">
23
27
  <h3>{{item.GetTitle(i18n)}}
24
28
  {{if isset(item.InnerItem["ReleaseDate"]) && item.InnerItem.ReleaseDate.Year() > 1}}
@@ -28,7 +32,7 @@
28
32
  <div class="meta-item-tagline-and-classification">
29
33
  {{yield metaItemTagline() item.InnerItem}}
30
34
  </div>
31
-
35
+ <s72-availability-label data-slug="{{item.Slug}}"></s72-availability-label>
32
36
  <div class="meta-item-buttons">
33
37
  <s72-play-button data-slug="{{item.Slug}}"></s72-play-button>
34
38
  <s72-pricing-buttons data-slug="{{item.Slug}}"></s72-pricing-buttons>
@@ -49,8 +53,6 @@
49
53
  </div>
50
54
  </div>
51
55
 
52
- <s72-availability-label data-slug="{{item.Slug}}"></s72-availability-label>
53
-
54
56
  <div class="meta-item-synopsis">
55
57
  <p>{{item.InnerItem.Tagline | stripHTML}}</p>
56
58
  </div>
@@ -5,43 +5,7 @@
5
5
 
6
6
  {{if show_facebook_share || show_twitter_share || show_linkedin_share || letterboxdID}}
7
7
  <div class="social-media-buttons">
8
- <div class="social-media-buttons-title">
9
- <h2>{{i18n("social_media_buttons_title")}}</h2>
10
- </div>
11
- <div class="social-media-buttons-container">
12
- {{if show_facebook_share}}
13
- <a class="btn btn-social btn-social-facebook" aria-label="{{i18n("wcag_aria_label_facebook")}}" href="https://www.facebook.com/sharer/sharer.php?u={{site.SiteConfig.SiteURL + path | url}}" target="_blank">
14
- <i class="fa fa-facebook" title="Share on Facebook" aria-hidden="true"></i>
15
- </a>
16
- {{end}}
17
-
18
- {{if show_twitter_share}}
19
- <a class="btn btn-social btn-social-twitter" aria-label="{{i18n("wcag_aria_label_twitter")}}" href="https://twitter.com/intent/tweet?text={{title + " " + site.SiteConfig.SiteURL + path | url}}" target="_blank">
20
- <i class="fa fa-twitter" title="Share on Twitter" aria-hidden="true"></i>
21
- </a>
22
- {{end}}
23
-
24
- {{if show_linkedin_share}}
25
- <a class="btn btn-social btn-social-linkedin" aria-label="{{i18n("wcag_aria_label_linkedin")}}" href="https://www.linkedin.com/shareArticle?mini=true&url={{site.SiteConfig.SiteURL + path | url}}&title={{title|url}}" target="_blank">
26
- <i class="fa fa-linkedin" title="Share on LinkedIn" aria-hidden="true"></i>
27
- </a>
28
- {{end}}
29
-
30
- {{if letterboxdID}}
31
- <a class="btn btn-social btn-social-letterboxd" aria-label="{{i18n("wcag_aria_label_letterboxd")}}" href="https://boxd.it/{{letterboxdID}}" target="_blank">
32
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28px" height="28px" viewBox="0 0 334.79999 128" version="1.1">
33
- <title>{{i18n("wcag_aria_label_letterboxd")}}</title>
34
- <g transform="matrix(1.3333333,0,0,-1.3333333,0,128)">
35
- <g transform="scale(0.1)">
36
- <path d="M 857.793,735.43 C 775.559,870.309 630.23,960 464.551,960 207.984,960 0,745.098 0,480 0,214.902 207.984,0 464.551,0 630.23,0 775.559,89.6914 857.793,224.574 812.684,298.559 786.488,386.098 786.488,480 c 0,93.906 26.196,181.441 71.305,255.43"/>
37
- <path d="M 1648.76,728.125 C 1567.38,867.098 1419.72,960 1251.04,960 1085.36,960 940.031,870.309 857.793,735.43 902.902,661.441 929.102,573.906 929.102,480 c 0,-93.902 -26.2,-181.441 -71.309,-255.426 C 940.031,89.6914 1085.36,0 1251.04,0 c 168.68,0 316.34,92.9023 397.72,231.875 -42.4,72.41 -66.82,157.316 -66.82,248.125 0,90.809 24.42,175.719 66.82,248.125"/>
38
- <path d="m 2046.49,960 c -168.68,0 -316.34,-92.902 -397.73,-231.875 42.41,-72.406 66.83,-157.316 66.83,-248.125 0,-90.809 -24.42,-175.715 -66.83,-248.125 C 1730.15,92.9023 1877.81,0 2046.49,0 c 256.56,0 464.55,214.902 464.55,480 0,265.098 -207.99,480 -464.55,480"/>
39
- </g>
40
- </g>
41
- </svg>
42
- </a>
43
- {{end}}
44
- </div>
8
+ <s72-share-modal {{letterboxdID ? "letterboxd=" + letterboxdID : ""}}></s72-share-modal>
45
9
  </div>
46
10
  {{end}}
47
11
  {{end}}
@@ -0,0 +1,18 @@
1
+ {{block sponsor(hideLink)}}
2
+ {{sponsorImage := .ImageMap["Sponsor"]}}
3
+
4
+ {{if isset(sponsorImage)}}
5
+ {{sponsorText := .CustomFields.GetString("sponsor_image_text_film", "")}}
6
+ {{sponsorLink := .CustomFields.GetString("sponsor_image_link_film", "")}}
7
+ {{sponsorLinkIsExternal := .CustomFields.GetBool("sponsor_image_link_external_film", false)}}
8
+
9
+ <div class="sponsor">
10
+ {{if sponsorText}}
11
+ <div>{{sponsorText}}</div>
12
+ {{end}}
13
+ {{if sponsorLink && !hideLink}}<a href="{{sponsorLink}}" {{if sponsorLinkIsExternal}} target="_blank" {{end}}>{{end}}
14
+ <s72-image src="{{sponsorImage}}" alt="{{ i18n("sponsor_image_alt") }}" ></s72-image>
15
+ {{if sponsorLink && !hideLink}}</a>{{end}}
16
+ </div>
17
+ {{end}}
18
+ {{end}}
@@ -7,6 +7,7 @@
7
7
  {{import "../common/list.jet"}}
8
8
  {{import "../common/social-media-buttons.jet"}}
9
9
  {{import "../common/awards/item.jet"}}
10
+ {{import "../common/sponsor-image.jet"}}
10
11
 
11
12
  {{block head()}}
12
13
  {{yield seo() film}}
@@ -18,6 +19,7 @@
18
19
  {{end}}
19
20
 
20
21
  {{block body()}}
22
+
21
23
  <main id="main" class="page page-film meta-detail meta-detail-film">
22
24
  <div class="meta-detail-bg">
23
25
  <div class="right-gradient"></div>
@@ -25,14 +27,16 @@
25
27
  </div>
26
28
  <div class="container">
27
29
  <div class="meta-detail-main">
28
- {{if config("default_image_type") == "portrait"}}
30
+ <div class="poster-wrapper">
31
+ {{if config("default_image_type") == "portrait"}}
32
+ {{yield sponsor() film}}
29
33
  <div class="poster poster-portrait">
30
34
  <s72-availability-status data-slug="{{film.Slug}}"></s72-availability-status>
31
35
  <s72-image src="{{film.ImageMap["Classification"]}}" alt="" class="classification-image">
32
36
  <s72-image src="{{film.ImageMap["Portrait"]}}" alt="{{film.Title}}" class="poster poster-image poster-image-portrait"></s72-image>
33
-
34
37
  </div>
35
- {{end}}
38
+ {{end}}
39
+ </div>
36
40
  <div class="meta-detail-content">
37
41
  <h1>{{ film.Title }}</h1>
38
42
  <div class="meta-detail-tagline-and-classification">
@@ -42,6 +46,7 @@
42
46
  </div>
43
47
 
44
48
  <!-- {{film.CustomFields|json}} -->
49
+ <s72-availability-label data-slug="{{film.Slug}}"></s72-availability-label>
45
50
 
46
51
  <div class="meta-detail-buttons">
47
52
  <s72-play-button data-slug="{{film.Slug}}" data-title="{{film.Title}}"></s72-play-button>
@@ -59,95 +64,97 @@
59
64
  <s72-availability-status data-slug="{{film.Slug}}"></s72-availability-status>
60
65
  <br>
61
66
  {{end}}
62
- <s72-availability-label data-slug="{{film.Slug}}"></s72-availability-label>
63
67
 
64
68
  {{yield awardNominations() film}}
65
- <s72-element-switcher>
66
- {{if isEnabled("element_switcher_enabled")}}
67
- <div class="meta-detail-switcher-tagline">
68
- <p>{{film.Tagline}}</p>
69
- </div>
70
- {{end}}
71
- <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
72
- <div class="meta-detail-synopsis">{{film.Overview | raw}}</div>
73
- <div class="meta-detail-cast">
74
- {{if len(film.Cast) > 0 }}
75
- <h2>{{i18n("meta_detail_cast_title")}}</h2>
76
- {{end}}
77
- <p>
78
- {{range index, member := film.Cast}}
79
- {{ path := "/search.html?q=" + member.Name }}
80
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(film.Cast) - 1}}, {{end}}
81
- {{end}}
82
- </p>
83
- </div>
84
- <div class="meta-detail-crew d-flex">
85
- {{range index, member := film.Crew}}
86
- <div class="crew-member">
87
- <h2>{{member.Job}}</h2>
88
- {{ path := "/search.html?q=" + member.Name }}
89
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>
90
- </div>
91
- {{end}}
92
- </div>
93
- {{if len(film.Languages) > 0 }}
94
- <div class="meta-detail-language">
95
- <h2>{{i18n("meta_detail_languages", len(film.Languages))}}</h2>
96
- <p>{{ film.Languages }}</p>
69
+ <div class="element-switcher-wrapper">
70
+ <s72-element-switcher>
71
+ {{if isEnabled("element_switcher_enabled")}}
72
+ <div class="meta-detail-switcher-tagline">
73
+ <p>{{film.Tagline}}</p>
97
74
  </div>
98
75
  {{end}}
99
- {{allSubtitles := film.GetSubtitles()}}
100
- {{if len(allSubtitles) > 0 }}
101
- {{subtitles := ""}}
102
- {{captions := ""}}
103
- {{if len(film.SubtitleTracks) == 0}}
104
- {{subtitles = allSubtitles}}
105
- {{else}}
106
- {{range subTrack := film.SubtitleTracks}}
107
- {{if len(subTrack) >= 3}}
108
- {{if subTrack[2] == "caption"}}
109
- {{captions = captions ? captions + ", " + subTrack[1] : subTrack[1]}}
110
- {{else}}
111
- {{subtitles = subtitles ? subtitles + ", " + subTrack[1] : subTrack[1]}}
76
+ <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
77
+ <div class="meta-detail-synopsis">{{film.Overview | raw}}</div>
78
+ <div class="meta-detail-info">
79
+ {{if len(film.Cast) > 0 }}
80
+ <div class="meta-detail-cast">
81
+ <h2>{{i18n("meta_detail_cast_title")}}</h2>
82
+ <p>
83
+ {{range index, member := film.Cast}}
84
+ {{ path := "/search.html?q=" + member.Name }}
85
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(film.Cast) - 1}}, {{end}}
86
+ {{end}}
87
+ </p>
88
+ </div>
89
+ {{end}}
90
+ {{range index, member := film.Crew}}
91
+ <div class="meta-detail-crew">
92
+ <h2>{{member.Job}}</h2>
93
+ {{ path := "/search.html?q=" + member.Name }}
94
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>
95
+ </div>
96
+ {{end}}
97
+ {{if len(film.Languages) > 0 }}
98
+ <div class="meta-detail-language">
99
+ <h2>{{i18n("meta_detail_languages", len(film.Languages))}}</h2>
100
+ <p>{{ film.Languages }}</p>
101
+ </div>
102
+ {{end}}
103
+ {{allSubtitles := film.GetSubtitles()}}
104
+ {{if len(allSubtitles) > 0 }}
105
+ {{subtitles := ""}}
106
+ {{captions := ""}}
107
+ {{if len(film.SubtitleTracks) == 0}}
108
+ {{subtitles = allSubtitles}}
109
+ {{else}}
110
+ {{range subTrack := film.SubtitleTracks}}
111
+ {{if len(subTrack) >= 3}}
112
+ {{if subTrack[2] == "caption"}}
113
+ {{captions = captions ? captions + ", " + subTrack[1] : subTrack[1]}}
114
+ {{else}}
115
+ {{subtitles = subtitles ? subtitles + ", " + subTrack[1] : subTrack[1]}}
116
+ {{end}}
117
+ {{end}}
112
118
  {{end}}
113
119
  {{end}}
120
+ {{if subtitles}}
121
+ <div class="meta-detail-subtitle">
122
+ <h2>{{i18n("meta_detail_subtitles")}}</h2>
123
+ <p>{{subtitles}}</p>
124
+ </div>
125
+ {{end}}
126
+ {{if captions}}
127
+ <div class="meta-detail-subtitle">
128
+ <h2>{{i18n("meta_detail_captions")}}</h2>
129
+ <p>{{captions}}</p>
130
+ </div>
131
+ {{end}}
132
+ {{end}}
133
+ {{if len(film.Countries) > 0 }}
134
+ <div class="meta-detail-country">
135
+ <h2>{{i18n("meta_detail_countries", len(film.Countries))}}</h2>
136
+ <p>{{ film.Countries }}</p>
137
+ </div>
138
+ {{end}}
139
+ {{if len(film.Studio) > 0 }}
140
+ <div class="meta-detail-studio">
141
+ <h2>{{i18n("meta_detail_studios", len(film.Studio))}}</h2>
142
+ {*{ FORMAT STUDIOS }*}
143
+ {{ studios := "" }}
144
+ {{ range studio := film.Studio }}
145
+ {{ studios = studios + studio + ", "}}
146
+ {{ end }}
147
+ {{ if len(studios) > 0 }}
148
+ {{ studios = studios[0:len(studios) - 2] }}
149
+ {{ end }}
150
+ <p>{{ studios }}</p>
151
+ </div>
114
152
  {{end}}
115
- {{end}}
116
- {{if subtitles}}
117
- <div class="meta-detail-subtitle">
118
- <h2>{{i18n("meta_detail_subtitles")}}</h2>
119
- <p>{{subtitles}}</p>
120
- </div>
121
- {{end}}
122
- {{if captions}}
123
- <div class="meta-detail-subtitle">
124
- <h2>{{i18n("meta_detail_captions")}}</h2>
125
- <p>{{captions}}</p>
126
- </div>
127
- {{end}}
128
- {{end}}
129
- {{if len(film.Countries) > 0 }}
130
- <div class="meta-detail-country">
131
- <h2>{{i18n("meta_detail_countries", len(film.Countries))}}</h2>
132
- <p>{{ film.Countries }}</p>
133
- </div>
134
- {{end}}
135
- {{if len(film.Studio) > 0 }}
136
- <div class="meta-detail-studio">
137
- <h2>{{i18n("meta_detail_studios", len(film.Studio))}}</h2>
138
- {*{ FORMAT STUDIOS }*}
139
- {{ studios := "" }}
140
- {{ range studio := film.Studio }}
141
- {{ studios = studios + studio + ", "}}
142
- {{ end }}
143
- {{ if len(studios) > 0 }}
144
- {{ studios = studios[0:len(studios) - 2] }}
145
- {{ end }}
146
- <p>{{ studios }}</p>
147
153
  </div>
148
- {{end}}
149
- </div>
150
- </s72-element-switcher>
154
+ </div>
155
+ </s72-element-switcher>
156
+ {{yield sponsor() film}}
157
+ </div>
151
158
  {{if len(film.Bonuses) > 0 && !film.CustomFields.GetBool("hide_bonus_content", false)}}
152
159
  <section class="meta-detail-bonus-content" aria-label="{{i18n("meta_detail_bonus_title")}}">
153
160
  <h2>{{i18n("meta_detail_bonus_title")}}</h2>
@@ -159,8 +166,7 @@
159
166
  {{end}}
160
167
  {{end}}
161
168
  </section>
162
- </div>
163
- {{end}}
169
+ {{end}}
164
170
  </div>
165
171
  </div>
166
172
  </div>
@@ -34,6 +34,7 @@
34
34
  <div class="meta-detail-tagline">
35
35
  {{yield metaItemTagline() tvseason}}
36
36
  </div>
37
+ <s72-availability-label data-slug="{{tvseason.Slug}}"></s72-availability-label>
37
38
  <div class="meta-detail-buttons">
38
39
  <s72-play-button data-slug="{{tvseason.Slug}}" data-title="{{tvseason.Title}}"></s72-play-button>
39
40
  <s72-pricing-buttons data-slug="{{tvseason.Slug}}" data-title="{{tvseason.Title}}"></s72-pricing-buttons>
@@ -45,27 +46,37 @@
45
46
  {{yield socialMediaButtons(path=currentUrlPath)}}
46
47
  </div>
47
48
  </div>
48
- <s72-availability-label data-slug="{{tvseason.Slug}}"></s72-availability-label>
49
- <div class="meta-detail-synopsis">{{tvseason.Overview | raw}}</div>
50
- <div class="meta-detail-cast">
51
- {{if len(tvseason.Cast) > 0 }}
52
- <h2>{{i18n("meta_detail_cast_title")}}</h2>
53
- {{end}}
54
- <p>
55
- {{range index, member := tvseason.Cast}}
56
- {{ path := "/search.html?q=" + member.Name }}
57
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(tvseason.Cast) - 1}}, {{end}}
49
+ <div class="element-switcher-wrapper">
50
+ <s72-element-switcher>
51
+ {{if isEnabled("element_switcher_enabled")}}
52
+ <div class="meta-detail-switcher-tagline">
53
+ <p>{{tvseason.Tagline}}</p>
54
+ </div>
58
55
  {{end}}
59
- </p>
60
- </div>
61
- <div class="meta-detail-crew d-flex">
62
- {{range index, member := tvseason.Crew}}
63
- <div class="crew-member">
64
- <h2>{{member.Job}}</h2>
65
- {{ path := "/search.html?q=" + member.Name }}
66
- <a href="{{ routeToPath(path) }}"">{{member.Name}}</a>
56
+ <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
57
+ <div class="meta-detail-synopsis">{{tvseason.Overview | raw}}</div>
58
+ <div class="meta-detail-info">
59
+ {{if len(tvseason.Cast) > 0 }}
60
+ <div class="meta-detail-cast">
61
+ <h2>{{i18n("meta_detail_cast_title")}}</h2>
62
+ <p>
63
+ {{range index, member := tvseason.Cast}}
64
+ {{ path := "/search.html?q=" + member.Name }}
65
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(tvseason.Cast) - 1}}, {{end}}
66
+ {{end}}
67
+ </p>
68
+ </div>
69
+ {{end}}
70
+ {{range index, member := tvseason.Crew}}
71
+ <div class="meta-detail-crew">
72
+ <h2>{{member.Job}}</h2>
73
+ {{ path := "/search.html?q=" + member.Name }}
74
+ <a href="{{ routeToPath(path) }}"">{{member.Name}}</a>
75
+ </div>
76
+ {{end}}
77
+ </div>
67
78
  </div>
68
- {{end}}
79
+ </s72-element-switcher>
69
80
  </div>
70
81
 
71
82
  {{if len(tvseason.Episodes) > 0}}
@@ -95,8 +106,6 @@
95
106
  {{end}}
96
107
  </div>
97
108
  </div>
98
- </div>
99
- </div>
100
109
  </div>
101
110
  {{if len(tvseason.Recommendations) > 0 }}
102
111
  <section class="page-collection recommendations-collection" aria-label="{{i18n("meta_detail_recommendations_title")}}">
@@ -137,16 +137,16 @@
137
137
  "other": "Paylaş"
138
138
  },
139
139
  "social_media_buttons_facebook": {
140
- "other": "Facebook'ta Paylaş"
140
+ "other": "Facebook"
141
141
  },
142
142
  "social_media_buttons_twitter": {
143
- "other": "Twitter'da paylaş"
143
+ "other": "Twitter"
144
144
  },
145
145
  "social_media_buttons_linkedin": {
146
- "other": "Linkedin'de paylaş"
146
+ "other": "Linkedin"
147
147
  },
148
148
  "social_media_buttons_email": {
149
- "other": "E-mail ile paylaş"
149
+ "other": "E-posta"
150
150
  },
151
151
  "social_media_buttons_email_subject": {
152
152
  "other": "Bağlantı paylaşımı"
@@ -155,7 +155,7 @@
155
155
  "other": "Link kopyalandı!"
156
156
  },
157
157
  "social_media_buttons_copy_link": {
158
- "other": "Panoya kopyala"
158
+ "other": "Bağlantıyı kopyala"
159
159
  },
160
160
  "accept_invite_page_header": {
161
161
  "other": "Hoşgeldiniz "
@@ -929,7 +929,7 @@
929
929
  "other": "Aboneliği iptal et?"
930
930
  },
931
931
  "usersubscriptions_unsubscribe_modal_body": {
932
- "other": "Bu, aboneliği iptal edecektir.{{.Name}} plan.Yine de plandaki içeriği sona erene kadar izleyebileceksiniz. {{.Expiry}}."
932
+ "other": "Bu, {{.Name}} aboneliğini iptal eder. {{.Expiry}} sona erene kadar içeriği izlemeye devam edebileceksiniz."
933
933
  },
934
934
  "shopping_card_update_reason_none": {
935
935
  "other": "Kredi kartınızı güncelleyin.Desteklenen kartlar Visa, MasterCard ve American Express'dir."
@@ -1057,7 +1057,7 @@
1057
1057
  "other": "VEYA"
1058
1058
  },
1059
1059
  "page_plan_explore_link": {
1060
- "other": "Diğer geçişleri keşfedin"
1060
+ "other": "Daha fazlasını keşfedin"
1061
1061
  },
1062
1062
  "plan_showcase_page_ownership_button_buy": {
1063
1063
  "other": "Şimdi al"
@@ -1246,9 +1246,63 @@
1246
1246
  "other": "Tamam"
1247
1247
  },
1248
1248
  "meta_description_expand": {
1249
- "other": "Daha fazla göster"
1249
+ "other": "Daha fazla gör"
1250
1250
  },
1251
1251
  "meta_description_collapse": {
1252
- "other": "Daha az göster"
1252
+ "other": "Daha az gör"
1253
+ },
1254
+ "usersubscriptions_page_header": {
1255
+ "other": "Abonelikler ve Faturalandırma"
1256
+ },
1257
+ "usersubscriptions_page_content": {
1258
+ "other": " "
1259
+ },
1260
+ "usersubscriptions_payment_section_title": {
1261
+ "other": "Ödeme şekli"
1262
+ },
1263
+ "usersubscriptions_payment_section_content": {
1264
+ "other": "Kredi kartı ödeme yönteminizde yapacağınız değişiklikler bir sonraki faturalandırma döngünüzde geçerli olacaktır."
1265
+ },
1266
+ "usersubscriptions_subscriptions_section_title": {
1267
+ "other": "Abonelik Ayrıntıları"
1268
+ },
1269
+ "usersubscriptions_subscriptions_section_content": {
1270
+ "other": " "
1271
+ },
1272
+ "usersubscriptions_subscription_status_active": {
1273
+ "other": "Aktif"
1274
+ },
1275
+ "usersubscriptions_subscription_expired": {
1276
+ "other": "Günü geçmiş"
1277
+ },
1278
+ "usersubscriptions_no_subscriptions_section_title": {
1279
+ "other": "Abonelikleri Keşfedin"
1280
+ },
1281
+ "usersubscriptions_no_subscriptions_content": {
1282
+ "other": "Burada kolayca yönetilen harika içerikleri harika fiyatlarla keşfedin."
1283
+ },
1284
+ "usersubscriptions_no_subscriptions_button_title": {
1285
+ "other": "Abonelikleri keşfedin"
1286
+ },
1287
+ "nav_subscriptions": {
1288
+ "other": "aboneliklerim"
1289
+ },
1290
+ "usersubscriptions_subscription_expiry_trialing": {
1291
+ "other": "İlk ödeme {{ .Expiry }}"
1292
+ },
1293
+ "usersubscriptions_subscription_expiry_active": {
1294
+ "other": "Sonraki {{ .Expiry }}"
1295
+ },
1296
+ "usersubscriptions_subscription_expiry_past_due": {
1297
+ "other": "Ödeme vadesi {{ .Expiry }}"
1298
+ },
1299
+ "usersubscriptions_subscription_expiry_cancelled": {
1300
+ "other": "Sona {{ .Expiry }}"
1301
+ },
1302
+ "usersubscriptions_subscription_expiry_expired": {
1303
+ "other": "Sona {{ .Expiry }}"
1304
+ },
1305
+ "sponsor_image_alt": {
1306
+ "other": "sponsor logosu"
1253
1307
  }
1254
- }
1308
+ }