nodebb-plugin-ezoic-infinite 1.8.29 → 1.8.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/public/style.css +46 -17
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-ezoic-infinite",
3
- "version": "1.8.29",
3
+ "version": "1.8.31",
4
4
  "description": "Production-ready Ezoic infinite ads integration for NodeBB 4.x",
5
5
  "main": "library.js",
6
6
  "license": "MIT",
package/public/style.css CHANGED
@@ -1,5 +1,7 @@
1
1
  /*
2
- * NodeBB Ezoic Infinite Ads — style.css (v20)
2
+ * NodeBB Ezoic Infinite Ads — style.css (v20.3)
3
+ * Objectif: comportement "v50-like" (pas de rognage des pubs),
4
+ * tout en gardant anti-sticky + gestion .is-empty.
3
5
  */
4
6
 
5
7
  /* ── Wrapper ──────────────────────────────────────────────────────────────── */
@@ -8,7 +10,10 @@
8
10
  width: 100%;
9
11
  margin: 0 !important;
10
12
  padding: 0 !important;
11
- overflow: hidden;
13
+
14
+ /* IMPORTANT (v50-like): ne pas couper les ads rendues */
15
+ overflow: visible;
16
+
12
17
  contain: layout style;
13
18
  }
14
19
 
@@ -18,6 +23,7 @@
18
23
  margin: 0 !important;
19
24
  padding: 0 !important;
20
25
  min-height: 1px;
26
+ max-width: 100%;
21
27
  }
22
28
 
23
29
  /* ── Ciblage précis des nœuds Ezoic dans nos wraps ───────────────────────── */
@@ -30,21 +36,44 @@
30
36
  font-size: 0 !important;
31
37
  }
32
38
 
33
- .nodebb-ezoic-wrap div[id$="__container__"] {
39
+ /* Container Google/Ezoic: surtout NE PAS overflow:hidden (sinon rognage) */
40
+ .nodebb-ezoic-wrap div[id$="__container__"],
41
+ .nodebb-ezoic-wrap [id^="google_ads_iframe_"][id$="__container__"] {
34
42
  display: block !important;
35
43
  line-height: 0 !important;
36
44
  font-size: 0 !important;
45
+
46
+ /* comportement v50-like */
47
+ overflow: visible !important;
48
+
49
+ /* centrage sans casser les inline styles */
50
+ margin-left: auto !important;
51
+ margin-right: auto !important;
52
+ max-width: 100% !important;
53
+ box-sizing: border-box !important;
37
54
  }
38
55
 
39
- /* Ne pas écraser la hauteur réelle calculée par Ezoic */
56
+ /* Le conteneur Ezoic : ne pas écraser la hauteur calculée, centrer, ne pas rogner */
40
57
  .nodebb-ezoic-wrap .ezoic-ad,
41
58
  .nodebb-ezoic-wrap span.ezoic-ad {
42
- margin: 0 !important;
43
- padding: 0 !important;
44
59
  display: block !important;
60
+ margin: 0 auto !important;
61
+ padding: 0 !important;
62
+
45
63
  height: auto !important;
46
64
  min-height: unset !important;
47
65
  max-height: none !important;
66
+
67
+ /* On borne visuellement si possible, sans couper */
68
+ max-width: 100% !important;
69
+ box-sizing: border-box !important;
70
+ }
71
+
72
+ /* Iframes : centrées, ne pas forcer width:auto (laisse Ezoic/Google décider) */
73
+ .nodebb-ezoic-wrap iframe {
74
+ margin-left: auto !important;
75
+ margin-right: auto !important;
76
+ max-width: 100% !important;
48
77
  }
49
78
 
50
79
  /* Reportline en absolu pour ne pas impacter le layout */
@@ -60,8 +89,8 @@
60
89
 
61
90
  /* ── État vide ────────────────────────────────────────────────────────────── */
62
91
  /*
63
- Ajouté 20s après showAds si aucun fill détecté.
64
- Collapse à 1px : réserve minimale demandée, reste observable par l'IO.
92
+ Ajouté après le délai d'empty-check si aucun fill détecté.
93
+ Collapse à 1px : réserve minimale, reste observable par l'IO.
65
94
  */
66
95
  .nodebb-ezoic-wrap.is-empty {
67
96
  display: block !important;
@@ -70,17 +99,11 @@
70
99
  max-height: 1px !important;
71
100
  margin: 0 !important;
72
101
  padding: 0 !important;
73
- overflow: hidden !important;
102
+ overflow: hidden !important; /* ici OK, car vide */
74
103
  }
75
104
 
76
- /* ── Ezoic global (hors de nos wraps) ────────────────────────────────────── */
77
- .ezoic-ad {
78
- margin: 0 !important;
79
- padding: 0 !important;
80
- }
81
-
82
-
83
- /* Anti-faux-empty : si une pub est présente, annule le collapse */
105
+ /* Anti-faux-empty : si la pub est réellement là, on annule le collapse
106
+ (support moderne; si non supporté, le JS enlève .is-empty) */
84
107
  .nodebb-ezoic-wrap.is-empty:has(iframe),
85
108
  .nodebb-ezoic-wrap.is-empty:has([data-google-container-id]),
86
109
  .nodebb-ezoic-wrap.is-empty:has(div[id$="__container__"]) {
@@ -89,3 +112,9 @@
89
112
  max-height: none !important;
90
113
  overflow: visible !important;
91
114
  }
115
+
116
+ /* ── Ezoic global (hors de nos wraps) ────────────────────────────────────── */
117
+ .ezoic-ad {
118
+ margin: 0 !important;
119
+ padding: 0 !important;
120
+ }