{"id":8352,"date":"2025-10-19T22:41:24","date_gmt":"2025-10-19T22:41:24","guid":{"rendered":"https:\/\/edcelulares.com.br\/?page_id=8352"},"modified":"2025-12-07T18:38:29","modified_gmt":"2025-12-07T18:38:29","slug":"meu-painel","status":"publish","type":"page","link":"https:\/\/edcelulares.com.br\/pt\/meu-painel\/","title":{"rendered":"Meu Painel"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"pt-BR\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Painel Admin Avan\u00e7ado &#8211; Feed ED Celulares<\/title>\n<style>\nbody { font-family:\"Poppins\",sans-serif; background:#111; color:#fff; margin:0; padding:20px; }\nh1 { color:#FFD700; text-align:center; margin-bottom:20px; }\nform, .post-list { max-width:800px; margin:0 auto 30px auto; display:flex; flex-direction:column; gap:12px; }\ninput, textarea, button { padding:10px; border-radius:8px; border:none; font-size:14px; font-family:inherit; }\ntextarea { resize:vertical; min-height:60px; }\nbutton { background:#D4AF37; color:#111; font-weight:700; cursor:pointer; transition:0.2s; }\nbutton:hover { transform:scale(1.03); }\n.post-item { border:1px solid rgba(255,255,255,0.2); padding:12px; border-radius:8px; display:flex; flex-direction:column; gap:6px; background:#1a1a1a; cursor:grab; }\n.post-item.dragging { opacity:0.6; }\n.post-actions { display:flex; gap:6px; }\n.video-preview { width:100%; max-height:200px; object-fit:cover; border-radius:8px; }\n.success { color:#4CAF50; font-weight:700; }\n.error { color:#F44336; font-weight:700; }\n.copy-btn { background:#FFD700; color:#111; font-weight:700; margin-top:6px; }\n<\/style>\n<\/head>\n<body>\n\n<h1>Painel Admin Avan\u00e7ado &#8211; Feed ED Celulares<\/h1>\n\n<!-- Formul\u00e1rio para adicionar novo post -->\n<form id=\"newPostForm\">\n  <input type=\"text\" id=\"videoUrl\" placeholder=\"URL do v\u00eddeo\" required>\n  <textarea id=\"postText\" placeholder=\"Texto do post\" required><\/textarea>\n  <button type=\"submit\">Adicionar Post<\/button>\n<\/form>\n\n<div id=\"message\"><\/div>\n\n<!-- Lista de posts existentes -->\n<div class=\"post-list\" id=\"postList\"><\/div>\n\n<!-- Firebase -->\n<script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.23.0\/firebase-app-compat.js\"><\/script>\n<script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.23.0\/firebase-database-compat.js\"><\/script>\n<script>\nconst firebaseConfig = {\n  apiKey: \"AIzaSyDRccnEaoqitXhs6FR6JbWxqi2yVmzs528\",\n  authDomain: \"dados-tempo-real.firebaseapp.com\",\n  databaseURL: \"https:\/\/dados-tempo-real-default-rtdb.firebaseio.com\",\n  projectId: \"dados-tempo-real\",\n  storageBucket: \"dados-tempo-real.firebasestorage.app\",\n  messagingSenderId: \"7340009587\",\n  appId: \"1:7340009587:web:5a8c900015909423512206\"\n};\nif(!firebase.apps.length) firebase.initializeApp(firebaseConfig);\nconst database = firebase.database();\n\nconst newPostForm = document.getElementById('newPostForm');\nconst videoInput = document.getElementById('videoUrl');\nconst textInput = document.getElementById('postText');\nconst message = document.getElementById('message');\nconst postList = document.getElementById('postList');\n\nfunction showMessage(msg, type='success') {\n  message.textContent = msg;\n  message.className = type;\n  setTimeout(()=>{ message.textContent=''; }, 4000);\n}\n\n\/\/ Carregar posts em tempo real\nconst postsRef = database.ref('posts');\n\nlet dragSrcEl = null;\n\nfunction createPostItem(id, post){\n  const div = document.createElement('div');\n  div.className='post-item';\n  div.setAttribute('draggable','true');\n  div.dataset.postId=id;\n  div.innerHTML=`\n    <strong>Post ID: ${id}<\/strong>\n    <video class=\"video-preview\" src=\"${post.video}\" muted loop autoplay><\/video>\n    <input type=\"text\" class=\"edit-video\" value=\"${post.video}\" placeholder=\"URL do v\u00eddeo\">\n    <textarea class=\"edit-text\" placeholder=\"Texto do post\">${post.text}<\/textarea>\n    <div class=\"post-actions\">\n      <button class=\"saveBtn\">Salvar<\/button>\n      <button class=\"deleteBtn\">Excluir<\/button>\n      <button class=\"copyBtn\">Copiar HTML<\/button>\n    <\/div>\n  `;\n\n  \/\/ Drag events\n  div.addEventListener('dragstart', e => { dragSrcEl = div; div.classList.add('dragging'); e.dataTransfer.effectAllowed = 'move'; });\n  div.addEventListener('dragend', e => { div.classList.remove('dragging'); dragSrcEl = null; });\n  div.addEventListener('dragover', e => { e.preventDefault(); e.dataTransfer.dropEffect='move'; });\n  div.addEventListener('drop', e => {\n    e.preventDefault();\n    if(dragSrcEl && dragSrcEl!==div){\n      postList.insertBefore(dragSrcEl, div.nextSibling);\n      \/\/ Atualiza ordem no Firebase se necess\u00e1rio\n    }\n  });\n\n  \/\/ Bot\u00e3o salvar\n  div.querySelector('.saveBtn').addEventListener('click', ()=>{\n    const newVideo = div.querySelector('.edit-video').value.trim();\n    const newText = div.querySelector('.edit-text').value.trim();\n    if(!newVideo || !newText){ showMessage('Preencha todos os campos.', 'error'); return; }\n    postsRef.child(id).update({video:newVideo,text:newText}).then(()=>showMessage('Post atualizado com sucesso!'))\n      .catch(()=>showMessage('Erro ao atualizar post.', 'error'));\n  });\n\n  \/\/ Bot\u00e3o excluir\n  div.querySelector('.deleteBtn').addEventListener('click', ()=>{\n    if(confirm('Deseja realmente excluir este post?')){\n      postsRef.child(id).remove().then(()=>showMessage('Post exclu\u00eddo com sucesso!'))\n        .catch(()=>showMessage('Erro ao excluir post.', 'error'));\n    }\n  });\n\n  \/\/ Bot\u00e3o copiar HTML\n  div.querySelector('.copyBtn').addEventListener('click', ()=>{\n    const htmlSnippet = `\n<div class=\"player-text-section\" data-post-id=\"${id}\">\n  <div class=\"player-wrapper\" data-video-src=\"${post.video}\"><\/div>\n  <div class=\"post-actions-vertical\">\n    <div class=\"icon like\"><img decoding=\"async\" src=\"https:\/\/edcelulares.com.br\/wp-content\/uploads\/2025\/10\/coracao1.png\"><div class=\"count\">${post.likes||0}<\/div><\/div>\n    <div class=\"icon comment\"><img decoding=\"async\" src=\"https:\/\/edcelulares.com.br\/wp-content\/uploads\/2025\/10\/balao.png\"><div class=\"count\">${post.comments?Object.keys(post.comments).length:0}<\/div><\/div>\n    <div class=\"icon share\"><img decoding=\"async\" src=\"https:\/\/edcelulares.com.br\/wp-content\/uploads\/2025\/10\/aviao.png\"><div class=\"count\">${post.shares||0}<\/div><\/div>\n  <\/div>\n  <div class=\"text-wrapper\">\n    <div class=\"meta\">${post.text}<\/div>\n    <span class=\"readmore-link\" aria-expanded=\"false\">Leia mais<\/span>\n  <\/div>\n  <div class=\"likes-avatars\"><\/div>\n<\/div>`;\n    navigator.clipboard.writeText(htmlSnippet).then(()=>showMessage('HTML copiado para a \u00e1rea de transfer\u00eancia!'));\n  });\n\n  return div;\n}\n\n\/\/ Atualiza lista de posts\npostsRef.on('value', snap=>{\n  const data = snap.val()||{};\n  postList.innerHTML='';\n  Object.keys(data).sort((a,b)=>a-b).forEach(id=>{\n    const div = createPostItem(id,data[id]);\n    postList.appendChild(div);\n  });\n});\n\n\/\/ Adicionar novo post\nnewPostForm.addEventListener('submit', e=>{\n  e.preventDefault();\n  const video = videoInput.value.trim();\n  const text = textInput.value.trim();\n  if(!video || !text) return showMessage('Preencha todos os campos.', 'error');\n\n  postsRef.once('value').then(snap=>{\n    const posts = snap.val()||{};\n    const ids = Object.keys(posts).map(n=>parseInt(n)).filter(n=>!isNaN(n));\n    const newId = ids.length ? Math.max(...ids)+1 : 1;\n    const newPost = {id:newId, video:video, text:text, likes:0, shares:0, comments:{}};\n    postsRef.child(newId).set(newPost).then(()=>{ showMessage('Post adicionado com sucesso!'); newPostForm.reset(); })\n      .catch(()=>showMessage('Erro ao adicionar post.', 'error'));\n  });\n});\n<\/script>\n<\/body>\n<\/html>\n\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Painel Admin Avan\u00e7ado &#8211; Feed ED Celulares Painel Admin Avan\u00e7ado &#8211; Feed ED Celulares Adicionar Post<\/p>","protected":false},"author":1,"featured_media":10991,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"pagelayer_contact_templates":[],"_pagelayer_content":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-8352","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":{"css_classes":""},"_links":{"self":[{"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/pages\/8352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/comments?post=8352"}],"version-history":[{"count":26,"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/pages\/8352\/revisions"}],"predecessor-version":[{"id":8388,"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/pages\/8352\/revisions\/8388"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/media\/10991"}],"wp:attachment":[{"href":"https:\/\/edcelulares.com.br\/pt\/wp-json\/wp\/v2\/media?parent=8352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}