-
Total de itens
1339 -
Registro em
-
Última visita
-
Dias vencidos
15
Tudo que Omar~ postou
-
Ajuda em web programação [Formas de Pagamento pop up modal]!!!
Omar~ respondeu ao tópico de babylon em PHP
Se for só pela questão de um "modal" fica fácil te ajudar, mas se entramos no meios de "pagamento/valores de produto" complica porque teríamos que ter os mínimos detalhes do seu modelo de negócio. Ao modal. 99% CSS, 0,9% HTML e 0,1% javascript. Começando pelo html: Criamos duas tag DIV elas ão ficar no fim do escopo do documento html, basicamente uma div mãe e uma filha. A mãe vai ser o modal em sí "o plano de fundo" e a filha vai ser a caixa interna. <div id="modal"> <div class="conteudo_modal"> Aqui dentro você pode colocar qualquer outra tag ou qualquer outra coisa que você querer </div> </div> Para o CSS Na mãe temos que sobrepor ela a todo conteúdo do documento por isso usando os valores fixed e z-index, sendo o fixed para que possa acompanhar a página e o z-index para cobrir. Como plano de fundo da mãe podemos usar o preto rgb em alpha. Já a filha colocamos um plano de fundo branco definimos sua altura e largura conforme o desejado. #modal { z-index: 1; /* Se houver outro z-index esse valor aqui tem que ser maior */ position: fixed; top: 0; left: 0; height: 100%; width: 100%; background-color: rgba(0,0,0,.5) } #modal > .conteudo_modal { height: calc(100% - 20px); max-width: 300px; background-color: #fff; margin: 10px } Com isso você já pode está personalizando seu modal aí conforme seu gosto antes de prosseguir adicionar cabeçalho, botão de fechar e tudo mais. Agora vamos esconder ele porque o usuário vai clicar em algo para mostrar então adicionamos isso ao css.... #modal.esconder { display: none } E adicionamos esse classificado na tag cujo colocamos o identificador #modal <div id="modal" class="esconder"> Agora o javascript: Basicamente é localizar o #ID modal e remover ou adicionar o classificador esconder. function controleModal() { document.getElementById('modal').classList.toggle('esconder'); } Então é só colocar o evento "click" em um botão. O próprio botão de fechar pode usar a mesma função. <button onclick="controleModal()">Exemplo</button> Por fim vamos supor que eu precise do modal para vários produtos, eu não precisaria criar um modal para cada e sim ter uma função que modelasse o conteúdo conforme minha necessidade. Então nesse exemplo abaixo todo o código usando apenas um modal para mais de um suposto produto, o que também poderia ser para qualquer outra coisa. Lógico que isso é um exemplo genérico, apenas para mostrar uma forma de criar diferentes coisas sem precisar ficar replicando código. E é simples um modal não é nada mais que que um elemento que você oculta ou esconde conforme for a questão. Veja esse: https://github.com/Spell-Master/sm-web/tree/master/javascript/ModalShow Nesse script você tem algumas outras funcionalidades para o modal, basta que você edite o CSS conforme desejar. -
Apenas digo que jamais entregaria uma aplicação para um cliente usando o WP. Odeio tanto o wp que se eu entrar em detalhes posso ofender quem usa ou necessita da plataforma. Você não precisa do wp para criar um site, como também não precisa saber programação para mexer com wp. Qualquer leigo pode criar seu site/blog usando o wordpress pois essa a finalidade da plataforma (sei lá como chamar o wp) E sim é mais fácil com o wp pois vai poupar várias horas criando lógicas da aplicação. Pois o wp isso já está feito bastando ao usuário modular ele ao objetivo final. Mas no final tudo vai depender da proposta do cliente, se o que ele deseja não é muito específico pode-se sim usar o WP, principalmente se quem se propõe entregar a aplicação não é capaz de desenvolver algo de qualidade equiparável ou superior Isso é mito. Não passa de uma mentira contatada repetitivamente que se acaba parecendo verdade.
-
Direto ao ponto: Não entendi as minimas em relação a pergunta. Resumo: Direto ao ponto; qual é a duvida mesmo?
-
Estou com uma dúvida ao gerar os dados com uma api em js, alguém me ajuda por favor
Omar~ respondeu ao tópico de zuuzu em Javascript
Olha,.... você irá precisar de um registro; Tipo: Fulano armazenou algo, você cria um registro em um banco de dados ou arquivo... esse registro diz que existe X e o link para download é Y. E se fulano acessar Y irá fazer o download de X. É nesse contexto- 1 resposta
-
- javascript
- api
-
(e mais 2 )
Tags:
-
A questão aqui fica no encargo de como os dados trafegam do serve-side (backend) para o client-side (javascript). Somente dizendo como você repassa esses valores você já tem 50% da questão resolvida. Bom vendo isso presumo que seja um objeto uma vez que o javascript não usa arrays multi-dimensional: Como um objeto no geral nunca deveria ser indexado com um inteiro temos pegar o total de chaves dentro de um loop contando seus índices de acordo com a volta do loop, assim sendo fácil identificar qual chave do objeto temos o array para manipular. <div id="botao_aqui"></div> <div id="modal" style="display: none"> <div id="resultado_aqui"></div> </div> <script> var objeto = { 0: [1, 'Banana', '3.00', '...'], 1: [2, 'Maça', '4.00', '...'], 2: [3, 'Abacaxi', '5.00', '...'] }; var botaoAqui = document.getElementById('botao_aqui'), modal = document.getElementById('modal'), resultadoAqui = document.getElementById('resultado_aqui'), botao = null; for (var i = 0; i < Object.keys(objeto).length; i++) { botao = document.createElement('button'); botao.innerHTML = 'Visualizar > ' + objeto[i][1]; /* No caso o id do array for 3 menos um então a chave o objeto é dois * E é atravéz desse numero que podemos regatar o array do objeto alvo * objeto[i][0] - 1) */ botao.setAttribute('data-chave', (objeto[i][0] - 1)); botao.addEventListener('click', abrirModal, false); botaoAqui.appendChild(botao); } function abrirModal(alvo) { var dados = objeto[(alvo.target).dataset.chave]; resultadoAqui.innerHTML = '<p>ID(chave) : ' + dados[0] + '</p>' + '<p>Texto : ' + dados[1] + '</p>' + '<p>Preço : ' + dados[2] + '</p>' + '<p>Pontos : ' + dados[3] + '</p>'; modal.removeAttribute('style'); } </script> Também nesse caso você vai se esbarrar nesse contexto, pois os dados já foram renderizados para o cliente, ou seja vão existir na tela dele mesmo que tenham sido alterados ou excluídos. Então você tem duas alternativa: 1 - Ao invés de resgatar os dados já renderizados quando abrir o modal, você executa um ajax buscando essas informações, se elas não existirem mais você toma as medidas cabíveis de acordo com a sua necessidade. 2 - Usar um sistema como o socket.io por exemplo, para que quando essas informações sejam alteradas no servidor elas sejam renderizadas novamente para todos os usuários.
- 3 respostas
-
- vuejs
- javascript
-
(e mais 2 )
Tags:
-
Depende de como você está "tocando o som" ou como está implementando a "notificação" Vejamos algo como isso: <audio id="tocar_audio"> <source src="arquivo_de_som.wav" type="audio/x-wav"> </audio> Então por script tocamos o áudio: document.getElementById('tocar_audio').play(); Porém se o usuário bloquear execução de mídia no website, você não poderá fazer nada a respeito. Além do mais se estiver usando a API de notificação, saiba que grande parte dos usuários bloqueiam o uso dessa API, eu mesmo sou um deles uma vez que esse recurso é abrir uma brecha enorme na segurança da máquina.
- 1 resposta
-
- notification
- audio
-
(e mais 1 )
Tags:
-
Tente usar um atributo para armazenar o valor, uma vez que uma contante como o próprio nome diz é contante e não pode ser alterada uma vez que já foi criada. class Query { private static $atributo_qualquer; /* Separei em dois métodos só por exemplificar mesmo */ public static function definirValor($const) { self::$atributo_qualquer = $const; } public static function getConst() { return (self::$atributo_qualquer); } } Você não apresentou os erros, e nem sei como e onde vai ser usado o valor passado por parâmetro, no entanto acredito que usando um atributo pode suprir qualquer eventual problema.
-
php Como diferenciar imagens repetidas no upload de imagem ?
Omar~ respondeu ao tópico de DeniseAlencar em PHP
Antes que faça o insert execute a query: "SELECT arquivo FROM galeria WHERE arquivo = '{$nome_foto}'"; Assim você terá todos os registros que possuem o mesmo nome, fazendo então a contagem dos resultados você pode salvar o mome concatenado. $nome_final = $nome_foto . CONTAGEM_DE_RESULTADOS; Para mais detalhes veja: https://www.php.net/manual/pt_BR/mysqli-result.num-rows.php- 2 respostas
-
- upload
- upload de imagem
- (e mais 1 )
-
Seria isso? https://github.com/Spell-Master/sm-web/tree/master/javascript/ImageGalery
- 2 respostas
-
- modal
- javascript
-
(e mais 1 )
Tags:
-
O que chama a atenção também são endereços distintos (tecnoclean & tecnocleanct) Pode ser o apache, tanto um modo de re-escrita quanto um bloqueio de acesso a diretório. Até mesmo um replaceState ou pushState do javascript manipulando a url antes do css carregar, então nesse caso o css busca a imagem a partir do endereço real mas o browser não o acha porque a url é diferente do destino. Tente colocar o endereço completo das imagens no css background-image: url('https://SITEURL/imagens/principal.png'); Se assim não funcionar é porque você não pode acessar o diretório das imagens ou mesmo as imagens não existem, ou o endereço está errado. Desse modo se javascript manipule a url as imagens serão carregadas pelo local onde estão sem pegar a referência atual da url carregada. Pode ser que contorne o apache também, mas não sei dizer se realmente funciona, (se estiver bloqueado o acesso ao diretório é certeza que não vai carregar mesmo)
-
No rodapé aqui do fórum você tem esse recurso. Uma alternativa seria usar um sessão para armazenar o "tema" que o usuário selecionou em uma sessão. Sinceramente acho que isso é uma besteira, mas minha opinião não importa. Como a ideia é só mudar a cor vou abordar o uso do próprio css padrão que desenvolvi, apenas mudando sua paleta de cores: <?php session_start(); $_SESSION['nome_do_css'] = (isset($_SESSION['nome_do_css']) ? $_SESSION['nome_do_css'] : 'exemplo'); ?> <link href="sm-default.css" rel="stylesheet" type="text/css" /> <link href="<?= $_SESSION['nome_do_css'] ?>.css" rel="stylesheet" type="text/css" /> Note que gravamos em uma sessão o nome do arquivo que vai mudar a coloração disponível no CSS, o mesmo poderia ser feito usando um cookie caso queira que o tema continue alterado mesmo depois que o usuário fechar seu navegador. Reparando também que o arquivo ao qual vai mudar o esquema de cores vem depois, desse modo re-escrevemos propriedades do primeiro css carregado. Agora vamos ao css: Nesse meu css que é encontrado nesse endereço Podemos ver o uso da variável root :root { --white:#ffffff; --black:#333333; --grey:#808080; --red:#d42020; E mais adiante no arquivo vemos o uso dessas vars em esquema de cor: .text-white, .text-white-hover:hover {color:var(--white) !important} Então se eu criar outra folha de estilo e adicionar por exemplo: :root { --white:red; O que vai acontecer é que toda vez que o classificador text-white for carregado ao invés o texto ser branco ele será vermelho, e assim sucessivamente para todas as demais propriedades: <span class="text-white">Um texto escrito em barnco ou vermelho dependendo do valor de "--white:"</span> Bom, eu usei o meu arquivo para exemplificar, mas esse é o esquema basta que tenha um arquivo css para definir as propriedades com o nome relacionado ao "tema" que o usuário escolher E para não entrar em outras questões, para que o novo sema seja válido a página deve ser recarregada. Dar para alterar sem recarregar mais daí é outra história.
-
O problema não é PHP do contrário nem você teria erro de localização das imagens. O arquivo css que carrega as imagens está na raiz do diretório css ou em um sub diretório? Nesse seu caso: Saia de dentro de css e entre dentro de imagens. Nesse outro caso: background-image:url(imagens/principal.png); Dentro de css entre em imagens. Seguindo a imagem que você colocou esse é o problema. O que pode está acontecendo que um arquivo.css com os endereços errados nas imagens está em cache, então você deve eliminar esse cache então carregar a aplicação novamente já com o arquivo.css com os endereços corretamente.
-
Hover na Imagem mudar a cor do paragrafo
Omar~ respondeu ao tópico de flaviojuazeiro em Desenvolvimento frontend
<style> p.a { color: white } div.div1:hover > p.a { color: red } </style> <div class="div1"> <p class="a">O melhor Café</p> <p class="b">Esse não muda a cor</p> </div> Obs.: É má prática usar nomenclatura de tag com caixa alta (letras maiúsculas) -
Cruzando informações entre duas tabelas HTML + PHP + MYSQL
Omar~ respondeu ao pergunta de Kefatif em Perguntas e respostas rápidas
Não importa a linguagem a query não muda.... "Ignorando o uso de assento nas tabelas" SELECT tabela_A.código_estabelecimento, tabela_A.nome_estabelecimento, tabela_B.código_pedido, tabela_B.código_estabelecimento FROM tabela_A INNER JOIN tabela_B ON tabela_A.código_estabelecimento = tabela_B.código_estabelecimento Nesse caso é o que na tabela_A for igual na tabela_B em quando ambos tenham o mesmo código_estabelecimento. Faltou um WHERE aí, mas daí é coisa mais específica que não foi abordada na dúvida. -
usar o sistema no mesmo navegador com logins diferentes
Omar~ respondeu ao tópico de rafa-martin em PHP
É possível sim mas antes uma explicação básica: Para se logar usamos duas principais técnicas o uso de session ou cookie, em ambos os casos o navegador armazena um pequeno arquivo em seu diretório, então teoricamente não é possível uma vez que o navegador não usa arquivos distintos, a diferença é que em um session o browser só usa uma vez esse arquivo gerado enquanto você não o fecha já o cookie ele irá reutilizar. Abra o browser que você deseja usar, então abra-o novamente em janela anônima. Faça o login primeiro no que está em janela anônima. Faça o login no que está em janela padrão. Pronto você logou no mesmo sistema com 2 logins no mesmo browser. Mas você pode está usando 2 ou mais browsers para executar essa tarefa, é muito mais eficiente. -
Expansão de vídeo por CSS
Omar~ respondeu ao pergunta de GabrielKlockner em Perguntas e respostas rápidas
Tente assim eu uso para colocar vídeos do youtub e ainda ficarem responsivos: <div class="video"> <iframe src="https://www.youtube.com/watch?v=BsV7hfJAlVc" frameborder="0" allowfullscreen> </iframe> </div> CSS: .video { position: relative; padding-bottom: 56.25%; height: 0 } .video iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100% } -
Má prática não é. O problema é organização mesmo. Digamos a seguinte estrutura de arquivo na raiz. index.php imagens/arquivos/ forms/enviar.php foo/mostrar.php Aí nesse caso enviar.php é o arquivo que vai salvar um upload dentro de imagens/arquivos/ logo para um script serve-side eu uso __DIR__ . '/../../imagens/arquivos/' então facilmente localizo o diretório para salvar o arquivo digamos exemplo.jpg. Mas então quero ver a imagem em mostrar.php nesse caso uso o esquema html. <img src="../../imagens/arquivos/exemplo.jpg" alt="a imagem não foi carregada" /> Porém digamos que eu esteja usando um modo de reescrita do apache onde tudo volta ao index aí a coisa muda <img src="imagens/arquivos/exemplo.jpg" alt="a imagem não foi carregada" /> O negócio é você ir testando ai até encontrar a forma de endereçar a imagem corretamente. #EDIT:
-
Ressaltando que a constante __DIR__ não serve para renderização, e eu acho que possa ser esse caso de achar a imagem. Exemplo: <img src="<?= __DIR__ . '/diretorio/imagem.jpg' ?>" alt="Ops! a constante não serve para esse caso" /> Tente localizar a imagem a partir da raiz onde se encontra o index. E claro verifique se realmente a imagem foi salva.
-
Mas a classe também está nessa pasta Controller? Acredito que não... Tente usar a constante __DIR__ para obter o diretório atual e a partir dele indicar o local do outro diretório. Exemplo: $diretorio = __DIR__ . '/../imagens/fotos_admins/'; Nesse caso do diretório onde executamos escape um diretório atrás e entre em imagens..... Lógico que o(s) escape(s) depende da arquitetura dos diretórios do seu projeto. Esse é um truque muito eficiente que evita qualquer erro de localização de diretórios ou arquivos. Veja essa classe: https://github.com/Spell-Master/source-map/blob/master/system/class/model/ImageUpload.php <?php switch ($_FILES['foto_admin']['type']) { case 'image/jpg': case 'image/jpeg': case 'image/pjpeg': case 'image/png': case 'image/x-png': break; default: echo ("Vai dar erro ao tentar salvar pois o tipo de imagem não é aceito pela classe"); } $diretorio = __DIR__ . '/../imagens/'; $imagem = new ImageUpload($diretorio); $imagem->sendImage($_FILES['foto_admin'], 'Nome para imagem', 1024); if ($imagem->getResult()) { $nomeDaImagem = $imagem->getImgName(); echo ("No diretório {$diretorio} uma imagem foi armazenada e seu nome é {$nomeDaImagem}"); } else { echo ("A imagem não pode ser armazenada"); } Vale lembrar também que dependendo do assunto dar para recriar a imagem no servidor sem que o usuário faça upload, bastando apenas ler seus metadados e inserir o mesmo em um campo de formulário e então enviar esses dados, e com essa informação compilar a imagem no servidor. Mas nesse caso a questão é mais javascript do que php, e um recurso para esse afim é o FileReader
-
Se for só isso, pode criar um novo array $arrA = [ 'titulo' => 'AAAAAAA', 'descricao' => 'BBBBBB' ]; $arrB = []; foreach ($arrA as $valor) { $arrB[] = $valor; } var_dump($arrB);
-
completar perfil [Dúvida]Tem que completar o perfil para curtir e ser curtido sem dar erro?
Omar~ respondeu ao tópico de Hacker_Buiu em Geral
Duvido muito o iMasters está jogado as moscas.... Mas pessoalmente falando, nem ligo a ajuda que presto aqui é só por ajudar mesmo, se fosse para ter reconhecimento abriria um canal no youtube por exemplo. No entanto entendo você, e ao mesmo tempo lamento por um veículo tão importante como esse está tão jogado como está. Em outro lado, dar vontade sim criar tutoriais bacanas aqui, vejamos 99.9% dos usuários nem pesquisam pois as dúvidas que vejo seriam 99% sanadas apenas se o usuário usar o formulário de pesquisa aqui do fórum... Ou até mesmo uma "goglada" se é que me entende. Aí eu penso: Para quê! se quase ninguém vai interessar em aprender e sim que um código para dar Ctrl+C e Ctrl+V? Então é isso: Criar um conteúdo bacana aqui (inútil) quase ou ninguém vai ler. Reputação por um post (desnecessário) você ajuda por que quer e não por remuneração. -
Qual sistema operacional você usa ou gosta?
Omar~ respondeu ao tópico de Hacker_Buiu em Docker, Kubernets e outros ambientes
Entendo você @Motta. Da mesma forma que ao eu contratar os 4 funcionários que tenho, meu principal requisito nem tanto era o cara saber programar e sim saber usar o linux. Em outras palavras é o que tem para a janta... se você gosta de A ou B mas a empresa trabalha com C, e você não o conhece... nada de emprego. Mas a questão da enquete é um conceito pessoal. -
completar perfil [Dúvida]Tem que completar o perfil para curtir e ser curtido sem dar erro?
Omar~ respondeu ao tópico de Hacker_Buiu em Geral
Está zoneado é para todo mundo mesmo... E não é de hoje ou de ontem. Isso já está com problemas há muito, mas muito tempo mesmo.... -
Isso depende muito da arquitetura do projeto. Porque os browsers não compartilham seu histórico com um servidor (ainda bem) É questão de segurança e privacidade do usuário. Porém um servidor mantém a origem de onde um usuário vem dentro do seu alcance... como assim? Digamos que eu esteja em https://qualquer_coisa aí nesse local eu tenha o link assim: <a href="outro_arquivo.php">tela de login</a> Então nesse arquivo eu posso obter o endereço anterior que aquela pessoa veio (desde-que esteja no mesmo servidor) $_SERVER['HTTP_REFERER'] O que vai dar em: https://qualquer_coisa Mesmo assim isso pode alterar conforme a arquitetura do projeto, se por exemplo você usa url's amigáveis não dar para usar a referência pois de fato o usuário nunca saiu do mesmo lugar, apenas está navegando usando informações repassadas e por aí vai dentre tantas outras questões. Você pode explorar outras alternativas... Como pegar a url atual e retirar o ultimo endereço pós "/" barra e retornar o usuário para esse endereço Recarregar a página por javascript e essa página checa o login via script serve-side se não está logado manda para outro lugar. Sempre armazenar o último local em uma sessão (não sou fã disso por ser muito invasivo, lento e grotesco mediante as outras alternativas)
-
completar perfil [Dúvida]Tem que completar o perfil para curtir e ser curtido sem dar erro?
Omar~ respondeu ao tópico de Hacker_Buiu em Geral
Não mesmo... Acontece que a versão do IPB usado aqui no iMasters está bugado mesmo... Mas isso é coisa normal da invision power, apesar de ser uma ferramenta até bacana é muito propício a bugs. Só não sei porque não arrumaram ainda pois é algo relativamente simples de corrigir.