Pesquisar na Comunidade
Mostrando resultados para as tags ''edição''.
Encontrado 11 registros
-
Desafio Edição de Mapas Desafio Lançado aos DEV de Map Editing WYD
hamiltoncw postou um tópico no fórum em WYD - Bate Papo
MEUS CANAIS DE VÍDEOS HC CURSOS E TUTORIAIS 🎬 ▶️ PLAYLIST DO MEU CANAL NO YOUTUBE 🎬 ▶️ VEICARECA GAMES 🎬 ▶️ PLAYLIST DO MEU CANAL NO YOUTUBE 🎬 ▶️ -
mapping Está saindo coisas novas, em breve....
hamiltoncw postou um tópico no fórum em WYD - Bate Papo
MEUS CANAIS DE VÍDEOS HC CURSOS E TUTORIAIS 🎬 ▶️ PLAYLIST DO MEU CANAL NO YOUTUBE 🎬 ▶️ VEICARECA GAMES 🎬 ▶️ PLAYLIST DO MEU CANAL NO YOUTUBE 🎬 ▶️- 3 respostas
-
- 19
-
-
-
editar janelas 🔥 COMO EDITAR PAINEIS DO WYD (With Your Destiny) DO ZERO AO AVANÇADO!🔥
hamiltoncw postou um tópico no fórum em Tutoriais
[Hidden Content][/hide] -
Eai gente, tudo bem? Bom eu comecei a aprender edição de video a um tempinho e to curtindo muito. Enviei um video ontem ao youtube e gostaria de pedir um tempinho de quem puder pra dar uma olhadinha. Seria muito importante pra mim saber como eu estou indo e os pontos que preciso melhorar. Se tiverem alguma dica será de grande ajuda também. Link do video: VIDEO Obrigadao pessoal! Boa semana a todos.
- 7 respostas
-
- edição
- league of legends
-
(e 2 mais)
Tags:
-
Na internet, existem centenas de sites que oferecem o serviço de edição de fotos, mas separei pra vocês 4 serviços GRATUITOS para editar suas fotos online. Às vezes, a luz do local não é a melhor, você precisa cortar algo da foto ou corrigir algum defeito… Para estes casos, você precisa de um editor de fotos. Confira e escolha o melhor para você. 1. Adobe Photoshop Express Editor Nível de dificuldade: médio Idioma: inglês Para os amantes do Photoshop, essa é a melhor opção. O Express Editor oferece o básico do programa de edição de imagens, com a possibilidade de, por exemplo, alterar saturação e exposição. Na seção de ajustes, você pode brincar com o foco de algum ponto específico da imagem e ajustar a luz. Existem também efeitos, mais artísticos do que os mais comuns hoje em dia (como os disponíveis no Instagram), que deixam a foto como uma pintura ou preto e branco, por exemplo. Além disso, a ferramenta oferece a possibilidade de usar recursos “gráficos”, como textos e desenhos. Para usar o editor é bem simples: basta carregar sua foto, editar e ao fim salvar em seu computador. 2. Fotoram!o Nível de dificuldade: fácil Idioma: existem 12 idiomas disponíveis O Fotoramio é uma ferramenta bem intuitiva e simples. Para começar a usar, você pode entrar em seu Facebook e buscar por uma foto ou carregar alguma de seu computador. O editor oferece as opções básicas como cortar a imagem ou aumentar alguma cor primária. Ele disponibiliza, também, filtros de efeito bem parecidos com o que o Instagram oferece, como o Nashville. Além disso, no Fotoramio você pode adicionar vários tipos de texturas na foto, como de uma foto velha ou com luzes noturnas. Molduras, textos e cliparts também estão disponíveis na ferramenta. Ao fim, você pode salvar a foto em seu computador ou compartilhar no Facebook, Twitter ou Tumblr. 3. FotoJet Nível de dificuldade: fácil Idioma: português Intuitivo e simples, o FotoJet oferece vários recursos para quem busca serviços gratuitos para edição de fotos online. Assim como o Fotoramio, este editor permite que você use uma foto de seu Facebook ou escolha alguma de seu computador. A ferramenta oferece os recursos básicos, como alterar exposição e cor da foto, além de outras opções mais avançadas. O editor disponibiliza, também, muitos tipos de efeitos, texturas, molduras, textos e cliparts. No entanto, algumas das opções são apenas para assinantes. Essa é a principal desvantagem do FotoJet: muitos dos recursos são pagos, mesmo que em todas as seções existam pelo menos uma opção gratuita. Você pode salvar a foto editada em seu computador ou compartilhar a imagem em seu Facebook, Twitter, Pinterest e Tumblr. 4. Be Funky Nível de dificuldade: fácil Idioma: existem 12 idiomas disponíveis O Be Funky é uma das ferramentas mais completas para editar fotos online, além de ser bem fácil de mexer. Para iniciar, você pode escolher uma foto do seu computador, Google Drive, Facebook ou até Dropbox. O editor oferece todas as funções básicas de edição de foto e um plus: a seção de retoques. Infelizmente, muitas das funções são para assinantes, mas você pode branquear dentes e apagar manchas de forma gratuita. O cardápio de efeitos do Be Funky é bem extenso e, apesar de também conter opções pagas, é possível usar vários efeitos diferenciados que são oferecidos. A única seção completamente paga da ferramenta é a “artístico”, que contém efeitos que imitam pinturas e desenhos. Outro diferencial do Be Funky são as sobreposições, que colocam um desenho no centro da foto. Além de todos esses recursos, o editor possui gráficos, molduras, texturas e textos. Ao fim, a imagem pode ser salva no computador, Google Drive, na própria ferramenta ou como projeto. Além de poder ser compartilhada no Facebook, Twitter e Pinterest. Que tal você começar a editar suas fotos agora mesmo? Use esses serviços em trabalhos e até mesmo em imagens pessoais que você acredita que precisam de um toque a mais. Tem algum outro editor online que você usa? Comentei ai e contribua com o post. Espero que tenha lhe ajudado, forte abraço! Fonte: PTi profissionais TI
-
Olá! Sei que eu havia dito que o meu último post, seria o meu provável último trabalho com edição no Android mas eu não consigo parar... Acho que vou diminuir a frequência, mas, parar de fazer não... Dito isso, prossigamos... A seguir, meus 2 últimos trabalhos feitos, ambos no Android, como sempre, mas não se preocupem com isso.. Sobre a segunda imagem, tirando o "efeito AVC" de tão torta que ficou, quero que deem a opinião sincera de vocês, pois é o meu primeiro desenho no Android, e não é muito fácil desenhar com o dedo rs... Sem mais delongas, com vocês: Obs:sobre os riscos brancos nos lábios, eram pra dar a ideia de brilho, porém o APP não tinha muitas ferramentas, então improvise com o melhor que eu achei.. Grato pela compreensão!
-
Bem, fiz uma ediçãozinha meio brizante. O que acharam garera? (Mike Ross - Suits) ORIGINAL:
-
Há algum software simples para editar imagens? Normalmente Photoshop é complicado e requer horas e horas de tutoriais. Quero um bem simples mesmo. Indiquem-me.
-
Server DragonCraft9 1.8 e 1.5.2 Rankup/edit Full X
FirsKill postou um tópico no fórum em Minecraft - Servidores Privados
Salve Galera Vim Aqui Apresentar a Vocês Meu Servidor 1.8.x e 1.5.2 Ambos são rankup/Pvp/edits O 1.5.2 é Mais Velho tem 7 meses o 1.8.x é novo Inaugurado Hoje Temos vagas de Divulgador apenas pois temos pouco's Player's Chame 5 Amigos e Receba prêmios 1.5.2 IP: dragoncraft9.batt.host 1.8.x IP: dragoncraft9.desire.host Deem dicas do que por Pra inovar Eventos etc Estarei Esperando Vocês lá Pelo Servidor ser novo Queremos Sua Ajuda Com Dicas. -
javascript Criação e Edição de Pagina Dinamico
Juliana~* postou um tópico no fórum em Desenvolvimento Web
Bom, eu postei um tópico aqui a um tempo atrás e vi que o titulo ficou errado e fiquei bolada. kkk Resolvi fazer um melhor e mais completo para postar aqui até porque posso corrigir o titulo do post anterior. Pense o seguinte: O sistema que desenvolvi ele visa uma única pagina para a criação de um artigo e edição. Através da variável na URL, podemos saber quando o usuário está querendo inserir algo no banco de dados, ou seja, criar uma pagina, ou editar um artigo já existente. Assim: // se não foi setado o primeiro, os outros também não // lembrando que $_GET['t'] = 'painel'; // pois no site que desenvolvi é inserido em uma div através do método include if (!isset($_GET['t'])||!isset($_SESSION['id'])) exit; $post_titulo = null; $post_descricao = null; $post_content = null; $post_categoria = null; $post_tipo = null; O GET['tt'] representa o 'novoartigo' ou 'editartigo' // caso seja edição, através do id coletamos os dados do artigo e inserimos nas variáveis que representaram o formulário de criação/edição if ( $_GET['tt'] == 'editartigo' && isset($_GET['ttt']) ) { $c = (int)$_GET['ttt']; $d = $db->prepare('SELECT titulo,descricao,content,categoria,tipo FROM post WHERE id = :id'); $d->bindParam(':id',$c); if ($d->execute()) if ($d->rowCount() > 0) { $e = $d->fetch(PDO::FETCH_NUM); $post_titulo = $e[0]; $post_descricao = $e[1]; $post_content = $e[2]; $post_categoria = $e[3]; $post_tipo = $e[4]; } } Segue o restante: ?> <div id="new-artigo"> <h1>Novo Artigo</h1> <div class="new-artigo-click"> <ul id="new-artigo-click"> <li><a href="">Artigo Escrito</a></li> <li><a href="">Artigo Line, ex:document.getElementById('')</a></li> <li><a href="">Artigo Composto</a></li> </ul> </div> <form id="new-artigo-form" method="POST" action="<?php echo $local ?>painel/<?php echo $_GET['tt'] ?>/"> <input type="text" name="titulo" placeholder="Titulo" value="<?php echo $post_titulo ?>"/><br /> <textarea name="descricao" placeholder="Descrição do Artigo"> <?php echo $post_descricao ?> </textarea> <div id="lcs-editor"> <ul> <li class="lcs-editor" data-tipo="a">EDITOR</li> <li class="lcs-editor" data-tipo="tituloA">TITULO 1</li> <li class="lcs-editor" data-tipo="tituloAA">TITULO A</li> <li class="lcs-editor" data-tipo="texto">TEXTO</li> <li class="lcs-editor" data-tipo="code">CODE</li> <li class="lcs-editor" data-tipo="html">HTML</li> <li class="lcs-editor" data-tipo="js">JS</li> <li class="lcs-editor" data-tipo="resposta">RESPOSTA</li> </ul> </div> <div class="pre-view"></div> <textarea name="content" style="display:none"> <?php echo $post_content ?> </textarea> <select name="categoria"> <option value="<?php echo $post_categoria ?>"> <?php echo $post_categoria == null ? 'Categoria:' : $post_categoria ?> </option> <option value="javascript">Javascript</option> </select> <select name="tipo"> <option value="<?php echo $post_tipo ?>"> <?php echo $post_tipo == null ? 'Tipo de Artigo:' : $post_tipo ?> </option> <option value="curso">Curso</option> <option value="dicas">Dicas</option> </select><br /> <?php if (isset($_GET['ttt'])) { echo '<input type="hidden" name="id" value='.$_GET['ttt'].'">'; } ?> <div style="clear:both"></div> <input type="submit" value="Concluir!" /> </form> </div> <script> var newArtigoForm = '#new-artigo-form', $newArtigoForm = $(newArtigoForm), txtContent = 'textarea[name=content]', txtDescricao = 'textarea[name=descricao]', cLcsEditor = '.lcs-editor', cPreview = '.pre-view', cBox = '.LCSbox', cEtapaIndex = '.box_etapa_index', cEtapaEdit = '.box_etapa_edit', cEtapaDelete = '.box_etapa_delete', cEtapaMove = '.box_etapa_move', cEtapaMoveText = '.box_etapa_moveText', cEtapaMoveCima = '.box_etapa_moveCima', cEtapaMoveBaixo = '.box_etapa_moveBaixo', cEtapaClear = '.box_etapa_clear', cElemEdicao = '.LCSeditor', keys = [true]; </script> <?php if ($_GET['tt'] == 'editartigo') { ?> <script> // EDIÇÃO DO ARTIGO $(cPreview).html($(txtContent).text()); // edição $(cEtapaIndex).click(function() { // permissão para execução do evento // evita bugs if ( !keys[0] ) return false; // ... var index = $(cEtapaIndex).index(this), tipo = $(this).attr('data-tipo'); editarLCSeditor(true,index,tipo); // após execução o evento deve ser bloqueado keys[0] = false; }); // click delete elemento $(cEtapaDelete).on('click',function(event) { var _cElemEdicao = cElemEdicao; if (document.getElementsByClassName(_cElemEdicao.replace('.','')).length) { alert('Feche o campo aberto antes!'); return false; } // permissão para deletar, caso seja deletado o evento desse elemento será encerrado também if (confirm("Deseja Realmente Deletar Esse Bloco?")) $(this).off(event); else return false; // prossiga... var _index = $(cEtapaDelete).index(this); $(cBox+':eq('+_index+')').remove(); }); // click move $(cEtapaMove+' span').click(function() { // var cEtapaMoveIndex = $(this).closest(cBox).index(); // var cEtapaMoveSpanIndex = $(this).index(); // mover elemeto para cima if ( cEtapaMoveSpanIndex == 0 ) { // if ($(cBox+':eq('+(cEtapaMoveIndex - 1)+')')) { // $(cBox+':eq('+cEtapaMoveIndex+')'). insertBefore($(cBox+':eq('+(cEtapaMoveIndex - 1)+')')); // } // } else if ( cEtapaMoveSpanIndex == 2 ) { // if ($(cBox+':eq('+(cEtapaMoveIndex + 1)+')')) { // $(cBox+':eq('+cEtapaMoveIndex+')'). insertAfter($(cBox+':eq('+(cEtapaMoveIndex + 1)+')')); }; } }); // verificando chave if ( !keys[0] ) keys[0] = true; // removendo bug de interpretação das tags $('.prettyprint').each(function() { $(this).text($(this).html()); }); </script> <?php } ?> <script> // removendo bug descricao $(document).ready(function() { var a = $(txtDescricao).text(); a = a.replace(' ','').replace(' ',''); $(txtDescricao).text(a); }); // formulario $newArtigoForm.submit(function() { $(txtContent).text($(cPreview).html()); }); // inserir elemento no editor $(cLcsEditor).click(function() { var insertTipo = $(this).attr('data-tipo'), insertIndex = $(cLcsEditor).index(this); insertLCSeditor(insertTipo); insertLCSdelete(); }); // deletar o elemento - OBS: deve-se acompanhar o .box_etapa_index function insertLCSdelete() { $(''+ '<div class="box_etapa_delete">'+ '<span>'+ '[DELETAR]'+ '</span>'+ '</div>'+ '').appendTo(cBox+':last'); $(cEtapaDelete+':last').on('click', function(event) { var _cElemEdicao = cElemEdicao; if (document.getElementsByClassName(_cElemEdicao.replace('.','')).length) { alert('Feche o campo aberto antes!'); return false; } // permissão para deletar, caso seja deletado o evento desse elemento será encerrado também if (confirm("Deseja Realmente Deletar Esse Bloco?")) $(this).off(event); else return false; // prossiga... var _index = $(cEtapaDelete).index(this); $(cBox+':eq('+_index+')').remove(); }); $(''+ '<div class="box_etapa_move">'+ '<span class="box_etapa_moveCima">'+ '[MOVER PARA CIMA]'+ '</span>'+'<br/>'+ '<span class="box_etapa_moveBaixo">'+ '[MOVER PARA BAIXO]'+ '</span>'+ '</div>'+ '').appendTo(cBox+':last'); // mover elemento // precisamos de chave para ter o controle e evitar bugs keys[1] = true; keys[2] = false; $(cEtapaMove+':last span').click(function() { // var cEtapaMoveIndex = $(this).closest(cBox).index(); // var cEtapaMoveSpanIndex = $(this).index(); // mover elemeto para cima if ( cEtapaMoveSpanIndex == 0 ) { // if ($(cBox+':eq('+(cEtapaMoveIndex - 1)+')')) { // $(cBox+':eq('+cEtapaMoveIndex+')'). insertBefore($(cBox+':eq('+(cEtapaMoveIndex - 1)+')')); // } // } else if ( cEtapaMoveSpanIndex == 2 ) { // if ($(cBox+':eq('+(cEtapaMoveIndex + 1)+')')) { // $(cBox+':eq('+cEtapaMoveIndex+')'). insertAfter($(cBox+':eq('+(cEtapaMoveIndex + 1)+')')); }; } }); // $(''+ '<div class="box_etapa_clear">'+ '</div>'+ '').appendTo(cBox+':last'); } // mover o elemento - OBS: deve-se acompanhar o .box_etapa_index e .box_etapa_delete function insertLCSmove(_index) { } // edição textual do elemento function insertLCSeditor(_insertTipo) { // texto default var titulo = 'Pronto Para Editar! :)', elemento = null; // alterando valor padrão, no final o valor volta no padrão cEtapaEdit = cEtapaEdit.replace('.',''); // criação do elemento switch (_insertTipo) { case 'tituloA': tipoCampo = 'textarea'; elemento = ''+ '<pre class="'+cEtapaEdit+' box_etapa_tituloA">'+ titulo+ '</pre>'; break; case 'tituloAA': tipoCampo = 'text'; elemento = ''+ '<h4 class="'+cEtapaEdit+' box_etapa_tituloAA">'+ titulo+ '</h4>'; break; case 'texto': tipoCampo = 'textarea'; elemento = ''+ '<pre class="'+cEtapaEdit+' box_etapa_text">'+ titulo+ '</pre>'; break; case 'code': tipoCampo = 'text'; elemento = ''+ '<code class="'+cEtapaEdit+' prettyprint">'+ '<span></span>'+ '</code>'; break; case 'html': tipoCampo = 'textarea'; elemento = ''+ '<h6 class="box_etapa_html">HTML</h6><br />'+ '<pre class="'+cEtapaEdit+' prettyprint">'+ '<html></html>'+ '</pre>'; break; case 'js': tipoCampo = 'textarea'; elemento = ''+ '<h6 class="box_etapa_js">JS</h6><br />'+ '<pre class="'+cEtapaEdit+' prettyprint">'+ '<script></script>'+ '</pre>'; break; case 'resposta': tipoCampo = 'textarea'; var textoElemento = prompt("Insira o Titulo"); if ( !textoElemento ) textoElemento = 'Resposta'; elemento = ''+ '<h6 class="box_etapa_js">'+textoElemento+'</h6><br />'+ '<pre class="'+cEtapaEdit+' prettyprint">'+ '<script></script>'+ '</pre>'; break; } // voltando valor padrão cEtapaEdit = '.'+cEtapaEdit; // $(''+ '<div class="LCSbox">'+ '<div class="box_etapa_index" data-tipo="'+tipoCampo+'">'+ // box_etapa_edit onde ocorre a alteração do texto elemento+ '</div>'+ '</div>'+ '').appendTo(cPreview); // edição $(cEtapaIndex).click(function() { // permissão para execução do evento // evita bugs if ( !keys[0] ) return false; // ... var index = $(cEtapaIndex).index(this), tipo = $(this).attr('data-tipo'); editarLCSeditor(true,index,tipo); // após execução o evento deve ser bloqueado keys[0] = false; }); } function editarLCSeditor(key,_index,_tipo) { // premissão de acesso if ( ! key ) return false; // setando variaveis var txtCEtapaIndex = cEtapaIndex+':eq('+_index+') '+cEtapaEdit, cEtapaIndexText = $(txtCEtapaIndex).text(); // criando o elemento para edição var elemEdicaoTexto = null; switch (_tipo) { case 'text': elemEdicaoTexto = ''+ '<input class="LCSeditor" data-tipo="text" type="text" value="'+ cEtapaIndexText+ '" />'; break; case 'textarea': elemEdicaoTexto = ''+ '<textarea class="LCSeditor" data-tipo="textarea" type="text">'+ cEtapaIndexText+ '</textarea>'; break; } // removendo conteudo do campo clicado $(txtCEtapaIndex).empty(); // inserção do elemento no campo de pre-visualização $(elemEdicaoTexto).appendTo(txtCEtapaIndex); // atalhos para edicao $(cElemEdicao).keydown(function(e) { if (e.keyCode == 13 && _tipo == 'text') { var a = $(cElemEdicao).val(); $(txtCEtapaIndex).text(a); $(cElemEdicao).remove(); keys[0] = true; // libera evento novamente } else if (e.keyCode == 27 && _tipo == 'textarea') { var a = $(cElemEdicao).val(); $(txtCEtapaIndex).text(a); $(cElemEdicao).remove(); keys[0] = true; // libera evento novamente // atalho TAB } else if (e.keyCode == 9) { _cElemEdicao = cElemEdicao; e = document.getElementsByClassName(_cElemEdicao.replace('.','')); e = e[0]; var start = e.selectionStart; var end = e.selectionEnd; var $this = $(e); var value = $this.val(); // set textarea value to: text before caret + tab + text after caret $this.val(value.substring(0, start) + "\t" + value.substring(end)); // put caret at right position again (add one for the tab) e.selectionStart = e.selectionEnd = start + 1; // prevent the focus lose return false; } }); } </script> Criação: Visualização: Edição: Voltando para os script, o arquivo que recebe o conteúdo <?php $acess = false; if (isset($_SESSION['id'])) { $acess = true; } if (isset($_GET['tt']) && $acess) { // pagina post $a = $_GET['t']; $b = $_GET['tt']; switch ($b) { case 'novoartigo': case 'editartigo': if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { extract($_POST); $aa = $titulo; $ab = $descricao; $ac = $content; date_default_timezone_set('America/Sao_Paulo'); $ad = date('Y/m/d H:i:s'); $ae = $categoria; $af = (int)$_SESSION['id']; $ag = $tipo; if ($b == 'novoartigo') { $d = $db->prepare('INSERT INTO post VALUES (:id,:titulo,:descricao,:content,'. ':datatempo,:categoria,:usuario,:tipo)'); } else { $d = $db->prepare('UPDATE post SET titulo = :titulo,descricao = :descricao,content = :content,'. 'datatempo = :datatempo,categoria = :categoria,usuario = :usuario,tipo = :tipo WHERE id = :ids'); } if (!isset($id)) $d->bindValue(':id',0); else $d->bindValue(':ids',$id); $d->bindValue(':titulo',$aa); $d->bindValue(':descricao',$ab); $d->bindValue(':content',$ac); $d->bindValue(':datatempo',$ad); $d->bindValue(':categoria',$ae); $d->bindValue(':usuario',$af); $d->bindValue(':tipo',$ag); if ($d->execute()) { if ($d->rowCount() > 0) { header('location:'.$local.'artigosucesso/'); } else // rowCount echo 'Nenhum dado encontrado!'; } else // execute echo '[ERRO] Não foi possivel executar o SQL'; } else // request method include 'painel/novo_artigo.php'; break; default: header('location:'.$local); } // para exibir a pagina, o usuário precisa estar logado em sua conta } Para quem precisar da classe de conexão: <?php /** * Classe de conexão ao banco de dados usando PDO no padrão Singleton. * Modo de Usar: * require_once './Database.class.php'; * $db = Database::conexao(); * E agora use as funções do PDO (prepare, query, exec) em cima da variável $db. */ class Database { # Variável que guarda a conexão PDO. protected static $db; # Private construct - garante que a classe só possa ser instanciada internamente. private function __construct() { # Informações sobre o banco de dados: $db_host = "localhost"; $db_nome = "database_nome"; $db_usuario = "root; $db_senha = "senha"; $db_driver = "mysql" // tipo de conex]ao; # Informações sobre o sistema: $sistema_titulo = "Titulo"; $sistema_email = "[email protected]"; try { # Atribui o objeto PDO à variável $db. self::$db = new PDO("$db_driver:host=$db_host; dbname=$db_nome", $db_usuario, $db_senha); # Garante que o PDO lance exceções durante erros. self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); # Garante que os dados sejam armazenados com codificação UFT-8. self::$db->exec('SET NAMES utf8'); } catch (PDOException $e) { # Envia um e-mail para o e-mail oficial do sistema, em caso de erro de conexão. mail($sistema_email, "PDOException em $sistema_titulo", $e->getMessage()); # Então não carrega nada mais da página. die("Connection Error: " . $e->getMessage()); } } # Método estático - acessível sem instanciação. public static function conexao() { # Garante uma única instância. Se não existe uma conexão, criamos uma nova. if (!self::$db) { new Database(); } # Retorna a conexão. return self::$db; } } Créditos: [felladrin - GitHub] Pela Classe de Conexão com o PDO. Eu pelo resto. Dúvidas? Só perguntar...
