1/** 2 * Global Footer Component 3 * Reusable footer and newsletter section for all portal pages 4 */ 5 6const Footer = { 7 render() { 8 const footerPlaceholder = document.getElementById("global-footer"); 9 if (!footerPlaceholder) return; 10 11 // Create temporary container to parse HTML 12 const temp = document.createElement("div"); 13 temp.innerHTML = ` 14 <!-- Newsletter Section --> 15 <section class="newsletter-section"> 16 <div class="newsletter-content"> 17 <h3>Receba as principais notÃcias do dia</h3> 18 <p> 19 Cadastre-se gratuitamente e fique por dentro de tudo 20 que acontece no Brasil e no mundo através da nossa curadoria editorial. 21 </p> 22 <form class="newsletter-form" id="newsletter-form"> 23 <input type="email" placeholder="Seu melhor e-mail" required id="newsletter-email" /> 24 <button type="submit">Inscrever-se</button> 25 </form> 26 </div> 27 </section> 28 29 <!-- Footer --> 30 <footer class="main-footer"> 31 <div class="container"> 32 <div class="footer-grid"> 33 <div class="footer-section"> 34 <span class="footer-title">Sobre</span> 35 <ul class="footer-links"> 36 <li><a href="sobre.html">Quem somos</a></li> 37 38 39 </ul> 40 </div> 41 <div class="footer-section"> 42 <span class="footer-title">Editorias</span> 43 <ul class="footer-links"> 44 <li><a href="opiniao.html">Opinião</a></li> 45 <li><a href="politica.html">PolÃtica</a></li> 46 <li><a href="economia.html">Economia</a></li> 47 <li><a href="https://www.correiodamanha.com.br/economia/justica">Justiça</a></li> 48 <li><a href="https://www.correiodamanha.com.br/esporte/">Esportes</a></li> 49 <li><a href="cultura.html">Cultura & Artes</a></li> 50 </ul> 51 </div> 52 <div class="footer-section"> 53 <span class="footer-title">Portais Regionais</span> 54 <ul class="footer-links"> 55 <li><a href="https://www.correiodamanha.com.br/" target="_blank" rel="noopener noreferrer">Correio Rio</a></li> 56 <li><a href="https://correiodamanhasp.com.br/" target="_blank" rel="noopener noreferrer">Correio SP</a></li> 57 <li><a href="https://correiodamanhadf.com.br/" target="_blank" rel="noopener noreferrer">Correio DF</a></li> 58 <li><a href="https://correiosulfluminense.com.br/" target="_blank" rel="noopener noreferrer">Correio Sul Fluminense</a></li> 59 <li><a href="https://correiopetropolitano.com.br/" target="_blank" rel="noopener noreferrer">Correio Petropolitano</a></li> 60 </ul> 61 </div> 62 <div class="footer-section"> 63 <span class="footer-title">Contato</span> 64 <ul class="footer-links"> 65 <li><a href="contato.html">Fale conosco</a></li> 66 <li><a href="anuncie.html">Anuncie</a></li> 67 <li><a href="assine.html">Assine</a></li> 68 </ul> 69 </div> 70 </div> 71 <div class="footer-bottom"> 72 <div class="footer-logo">PORTAL CM</div> 73 <p>PORTAL CM © 2026. Todos os direitos reservados. O conteúdo deste portal é protegido por lei.</p> 74 </div> 75 </div> 76 </footer> 77 `; 78 79 // Move nodes out of the placeholder 80 while (temp.firstChild) { 81 footerPlaceholder.parentNode.insertBefore(temp.firstChild, footerPlaceholder); 82 } 83 84 // Remove the placeholder 85 footerPlaceholder.remove(); 86 87 // Re-initialize newsletter logic if available 88 if (window.CM && window.CM.Newsletter) { 89 window.CM.Newsletter.init(); 90 } 91 }, 92}; 93 94window.CMFooter = Footer;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.