Files
wevads-platform/public/sms-templates.php
2026-02-26 04:53:11 +01:00

93 lines
11 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>WEVADS SMS Templates</title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
<style>
:root{--bg:#060a14;--s:#0c1220;--s2:#111827;--b:#1e293b;--t:#e2e8f0;--d:#64748b;--cy:#22d3ee;--gn:#34d399;--am:#fbbf24;--rd:#f87171;--pu:#a78bfa;--bl:#60a5fa;--pk:#f472b6;--og:#fb923c}
.light{--bg:#f0f2f5;--s:#fff;--s2:#f8fafc;--b:#e2e8f0;--t:#1e293b;--d:#64748b}.light input,.light select,.light textarea{background:#f8fafc!important;border-color:#e2e8f0!important;color:#1e293b!important}
*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--t);font-family:'DM Sans',sans-serif;font-size:11px}
.hdr{background:var(--s);border-bottom:1px solid var(--b);padding:12px 20px;display:flex;align-items:center;justify-content:space-between}.hdr h1{font-size:16px;font-weight:700}.hdr h1 span{color:var(--pk)}
.wrap{padding:16px;max-width:1400px;margin:0 auto}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}
.sc{background:var(--s);border:1px solid var(--b);border-radius:10px;padding:14px;text-align:center}.sc .n{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700}.sc .l{font-size:9px;text-transform:uppercase;color:var(--d);margin-top:4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.card{background:var(--s);border:1px solid var(--b);border-radius:10px;padding:16px;margin-bottom:12px}
.card h3{font-size:12px;font-weight:700;margin-bottom:10px}
.tpl{background:var(--s2);border:1px solid var(--b);border-radius:8px;padding:12px;cursor:pointer;transition:.2s}.tpl:hover{border-color:var(--pk)}
.tpl.active{border-color:var(--pk);background:rgba(244,114,182,.05)}
.tpl h4{font-size:11px;margin-bottom:4px}.tpl .meta{font-size:9px;color:var(--d)}
.badge{font-size:8px;padding:2px 6px;border-radius:3px;font-weight:600}.badge-gn{background:rgba(52,211,153,.15);color:var(--gn)}.badge-am{background:rgba(251,191,36,.15);color:var(--am)}.badge-pk{background:rgba(244,114,182,.15);color:var(--pk)}
textarea{width:100%;background:var(--s2);border:1px solid var(--b);color:var(--t);padding:8px;border-radius:6px;font-size:11px;font-family:'JetBrains Mono',monospace;min-height:100px;resize:vertical}
input,select{width:100%;background:var(--s2);border:1px solid var(--b);color:var(--t);padding:8px;border-radius:6px;font-size:11px;font-family:'DM Sans',sans-serif}
.form-row{margin-bottom:10px}.form-row label{display:block;font-size:9px;text-transform:uppercase;color:var(--d);margin-bottom:4px}
.btn{padding:8px 16px;border-radius:6px;border:1px solid var(--b);background:var(--s2);color:var(--t);cursor:pointer;font-size:10px;font-weight:600}.btn:hover{border-color:var(--pk)}
.btn-pk{background:rgba(244,114,182,.15);border-color:var(--pk);color:var(--pk)}
table{width:100%;border-collapse:collapse;font-size:10px}th{text-align:left;color:var(--d);text-transform:uppercase;font-size:9px;padding:6px 8px;border-bottom:1px solid var(--b)}td{padding:6px 8px;border-bottom:1px solid rgba(30,41,59,.3)}
.phone-preview{background:#1a1a2e;border:2px solid var(--b);border-radius:20px;padding:20px 14px;max-width:280px;margin:0 auto}
.phone-preview .msg{background:var(--pk);color:#fff;border-radius:12px 12px 4px 12px;padding:10px;font-size:11px;line-height:1.5;margin-bottom:6px}
.phone-preview .sender{font-size:9px;color:var(--d);margin-bottom:4px}
.toggle-btn{position:fixed;top:12px;right:56px;z-index:9999;width:30px;height:30px;border-radius:50%;background:rgba(17,24,39,.85);border:1px solid #334155;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;color:#e2e8f0;padding:0;line-height:1}
@media(max-width:900px){.stats{grid-template-columns:repeat(3,1fr)}.grid2,.grid3{grid-template-columns:1fr}}
</style>
</head><body>
<button id="theme-toggle" onclick="toggleTheme()" class="toggle-btn">🌙</button>
<div class="hdr"><div><h1>📱 WEVADS <span>SMS Templates</span></h1><span style="font-size:10px;color:var(--d)">Gestion des templates SMS Édition, Preview, Variables, Performance</span></div><div style="font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--d)" id="clock"></div></div>
<div class="wrap">
<div class="stats">
<div class="sc"><div class="n" style="color:var(--pk)">24</div><div class="l">Templates actifs</div></div>
<div class="sc"><div class="n" style="color:var(--cy)">850</div><div class="l">SMS envoyés 24h</div></div>
<div class="sc"><div class="n" style="color:var(--gn)">3.2x</div><div class="l">ROI moyen</div></div>
<div class="sc"><div class="n" style="color:var(--am)">15</div><div class="l">Pays couverts</div></div>
<div class="sc"><div class="n" style="color:var(--pu)">98%</div><div class="l">Taux livraison</div></div>
</div>
<div class="grid2">
<div class="card">
<h3 style="color:var(--pk)">📋 Templates</h3>
<div style="display:flex;flex-direction:column;gap:6px">
<div class="tpl active" onclick="selectTpl(this,'FOMO Flash','Nur noch {{count}} Stück! {{link}} -40% endet {{date}}. Stop:{{unsub}}','DE','4.1x','32%')"><h4>🔥 FOMO Flash Sale</h4><div class="meta">DE CTR: 32% ROI: 4.1x <span class="badge badge-gn">TOP</span></div></div>
<div class="tpl" onclick="selectTpl(this,'Pharma Trial','{{prenom}}, essayez gratuitement! Livraison offerte. {{link}} Stop:{{unsub}}','FR','3.8x','28%')"><h4>💊 Pharma Free Trial</h4><div class="meta">FR CTR: 28% ROI: 3.8x</div></div>
<div class="tpl" onclick="selectTpl(this,'Casino Bonus','🎰 {{prenom}} 50 Free Spins! No deposit. {{link}} 18+ Stop:{{unsub}}','EU','2.9x','22%')"><h4>🎰 Casino Welcome</h4><div class="meta">EU CTR: 22% ROI: 2.9x</div></div>
<div class="tpl" onclick="selectTpl(this,'Finance Alert','⚠️ {{prenom}}, action urgente sur votre compte. Vérifiez: {{link}} Stop:{{unsub}}','FR','3.5x','35%')"><h4>💰 Finance Alert</h4><div class="meta">FR CTR: 35% ROI: 3.5x</div></div>
<div class="tpl" onclick="selectTpl(this,'E-commerce','{{prenom}}, votre panier expire! -30% avec code SMS30. {{link}} Stop:{{unsub}}','FR','4.5x','30%')"><h4>🛒 E-commerce Abandon</h4><div class="meta">FR CTR: 30% ROI: 4.5x</div></div>
<div class="tpl" onclick="selectTpl(this,'Crypto Signal','📊 BTC signal detected! Entry: ${{price}}. Details: {{link}} Stop:{{unsub}}','EN','2.2x','18%')"><h4>📊 Crypto Signal</h4><div class="meta">EN CTR: 18% ROI: 2.2x</div></div>
</div>
<button class="btn btn-pk" style="width:100%;margin-top:8px"> Nouveau template</button>
</div>
<div>
<div class="card">
<h3>✏️ Éditeur</h3>
<div class="form-row"><label>Nom</label><input id="tpl-name" value="FOMO Flash Sale"></div>
<div class="form-row"><label>Contenu SMS (160 chars max)</label><textarea id="tpl-body" oninput="updatePreview()">Nur noch {{count}} Stück! {{link}} -40% endet {{date}}. Stop:{{unsub}}</textarea></div>
<div style="display:flex;gap:8px;margin-bottom:10px">
<div class="form-row" style="flex:1"><label>Langue</label><select id="tpl-lang"><option>DE</option><option>FR</option><option>EN</option><option>ES</option><option>IT</option></select></div>
<div class="form-row" style="flex:1"><label>Sender ID</label><input value="PROMO"></div>
</div>
<div style="font-size:9px;color:var(--d);margin-bottom:8px">Caractères: <span id="char-count" style="font-family:'JetBrains Mono',monospace">67</span>/160 Variables: {{prenom}}, {{link}}, {{date}}, {{count}}, {{unsub}}</div>
<div style="display:flex;gap:6px"><button class="btn btn-pk">💾 Sauvegarder</button><button class="btn">🧪 Test SMS</button><button class="btn">📊 A/B Test</button></div>
</div>
<div class="card">
<h3>📱 Preview</h3>
<div class="phone-preview"><div class="sender">PROMO Maintenant</div><div class="msg" id="phone-msg">Nur noch 3 Stück! https://trk.ex/abc -40% endet 08/02. Stop:unsub.ex/x</div></div>
</div>
</div>
</div>
<div class="card">
<h3>📊 Performance par template</h3>
<table><thead><tr><th>Template</th><th>Envoyés</th><th>Livrés</th><th>Clics</th><th>CTR</th><th>ROI</th><th>Coût</th><th>Revenu</th></tr></thead><tbody>
<tr><td style="font-weight:600">🔥 FOMO Flash</td><td>12,400</td><td style="color:var(--gn)">98%</td><td>3,968</td><td style="color:var(--gn);font-weight:700">32%</td><td style="color:var(--am);font-weight:700">4.1x</td><td>€248</td><td style="color:var(--gn)">€1,017</td></tr>
<tr><td style="font-weight:600">💊 Pharma Trial</td><td>8,200</td><td style="color:var(--gn)">97%</td><td>2,296</td><td style="color:var(--gn);font-weight:700">28%</td><td style="color:var(--am);font-weight:700">3.8x</td><td>€164</td><td style="color:var(--gn)">€623</td></tr>
<tr><td style="font-weight:600">💰 Finance Alert</td><td>5,600</td><td style="color:var(--gn)">99%</td><td>1,960</td><td style="color:var(--gn);font-weight:700">35%</td><td style="color:var(--am);font-weight:700">3.5x</td><td>€112</td><td style="color:var(--gn)">€392</td></tr>
<tr><td style="font-weight:600">🛒 E-commerce</td><td>4,100</td><td style="color:var(--gn)">98%</td><td>1,230</td><td style="color:var(--gn);font-weight:700">30%</td><td style="color:var(--am);font-weight:700">4.5x</td><td>€82</td><td style="color:var(--gn)">€369</td></tr>
</tbody></table>
</div>
</div>
<script>
function toggleTheme(){var b=document.body,t=document.getElementById('theme-toggle');if(b.classList.contains('light')){b.classList.remove('light');t.textContent='🌙';localStorage.setItem('wevads-theme','dark')}else{b.classList.add('light');t.textContent='☀️';localStorage.setItem('wevads-theme','light')}}
if(localStorage.getItem('wevads-theme')==='light'){document.body.classList.add('light');document.getElementById('theme-toggle').textContent='☀️'}
function selectTpl(el,name,body,lang,roi,ctr){document.querySelectorAll('.tpl').forEach(function(t){t.classList.remove('active')});el.classList.add('active');document.getElementById('tpl-name').value=name;document.getElementById('tpl-body').value=body;updatePreview()}
function updatePreview(){var t=document.getElementById('tpl-body').value;document.getElementById('char-count').textContent=t.length;t=t.replace(/\{\{prenom\}\}/g,'Anna').replace(/\{\{link\}\}/g,'https://trk.ex/abc').replace(/\{\{date\}\}/g,'08/02').replace(/\{\{count\}\}/g,'3').replace(/\{\{unsub\}\}/g,'unsub.ex/x').replace(/\{\{price\}\}/g,'97,420');document.getElementById('phone-msg').textContent=t}
setInterval(function(){document.getElementById('clock').textContent=new Date().toLocaleString('fr-FR')},1000);
</script>
<script src="arsenal-common.js"></script>
</body></html>