Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

p.a.artegrafica

Erro misterioso de HTML & CSS na Loja Virtual

Recommended Posts

Olá, todos!
Esbarrei num problema com questões de programação linguagem HTML & CSS e busco por ajuda dos experts aqui.

 

• SINOPSE DA QUESTÃO
Montei no dreamweaver um anúncio de produto em HTML para um cliente, com a finalidade de ser exibido no site institucional da empresa e na loja virtual. 
Simplesmente exibindo nos navegadores, o HTML se comporta direitinho mas, dentro da PLATAFORMA TRAY (da loja virtual) e no site institucional do cliente o anúncio perde boa parte do layout fica quebrado, sem falar que o conteúdo não está se adequando (diminuindo e aumentando) na exibição mobile.


Se tiverem a paciência de ler e me ajudar, ficarei agradecido!
O tópico é extenso, mas sera bem explicado... Prometo!


• MEU BACKGROUND EM PROGRAMAÇÃO HTML / CSS  - Para referência.
Estou aqui no FORUM iMASTERS porque, lááááá nas antigas, fiz um curso de HTML e desenvolvimento web (comprado na época em 4 CDs) do iMSTERS. Cheguei a criar alguns sites mas, como meu foco sempre foi mais na parte gráfica (sou artista gráfico ou, designer, como queiram) acabei abandonando os projetos de web. E isso já foi lá na época das tabelas, iframes e conteúdo em flash. Seja como for, tenho uma certa noção sobre tags, termos e códigos de programação. Reforçando: "alguma" noção!

 

 

• DESENVOLVIMENTO DO TRABALHO
Meu cliente - uma empresa importadora de projetores - solicitou o desenvolvendo de várias peças gráficas (embalagens, manuais, posts para redes sociais) No pacote, me solicitaram também arquivos promocionais em  HTML pra deixar a LOJA VIRTUAL e o SITE INSTITUCIONAL mais atrativos, já que - como todos sabem, imagino -  maioria das lojas virtuais tem um espaço pra fotos e um CAMPO DE TEXTO pra descrição destes produtos. Meu cliente quer que seus anúncios sejam em HTML, bem ilustrados e chamativos como anúncios de revista.

Pois bem... Desenvolvi o layout e a arte foi aprovada.

No momento de criar o arquivo HTML propriamente dito, eu sabia que precisaria me atualizar, afinal, usar "tabelas" está fora dos padrões.

Saí a pesquisar. Li e assisti MUITA COISA (inclusive aqui dentro do Fórum iMasters) sobre DIV / HTML / CSS e, após entender a mecânica básica desses elementos, comecei a montar o HTML, simplesmente fatiando a arte criada (feita em Photoshop). Após alguns tropeços, consegui estruturar o HTML com base só em DIVs e CSS.
Testei no INTERNET EXPLORER e no GOOGLE CHROME e o anúncio (HTML) abriu sem problemas.

 

 

• OS PROBLEMAS

Layout redondinho, fatiado e estruturado em HTML e rodando sem problemas nos navegadores mas. quando o cliente colocou os arquivos (HTML / IMAGENS / ESTILO CSS) no SITE INSTTITUCIONAL e na LOJA VIRTUAL (hospedada pela TRAY E-COMMERCE), o HTML se quebrou... De primeiro, eu havia enviado o HTML, a pasta com imagens e um arquivo CSS em separado, para inserção nos sites. Como houve os problemas, inseri o CSS direto no HTML mas, os problemas persistem...

- No SITE INSTITUCIONAL a estrutura se manteve até certo ponto. Mas, o layout se quebrou em vários pontos e as partes em texto perderam a formatação e as características do texto puxadas via CSS... 
- Na LOJA VIRTUAL: Virou uma bagunça... Primeiro que o HTML só aparece num campo estreito (de uns 200 pixels) no miolo da página, com uma barra de rolagem própria. E as características de texto se perderam todas.

- Em ambos os casos (site e loja) as versões MOBILE ficaram uma bagunça só! Os problemas de visualização se mantem e com o agravante de que o HTML não se ajustou (como eu esperava) ao tamanho da tela do celular.

- Ajuste às resoluções de tela: Quando faço a análise do layout no GOOGLE CHROME (F12) o conteúdo se ajusta à tela...
Este HTML não é pra ser responsivo... Apenas deve AMPLIAR e ENCOLHER de acordo com a resolução de tela do dispositivo do usuário. Pra ficar tipo, uma "responsividade" simulada...

 

 

• DÚVIDAS
1) O que fazer para que o layout se mantenha, mesmo após inserido nos respectivos sites?

2) Qual o procedimento para que o AJUSTE ÁS RESOLUÇÕES DE TELA aconteça?

3) Quais os erros estou cometendo no código?

 

 

• RESSALVAS
Espero que não haja erros muito grotescos no código...
Fui construindo o HTML aos poucos, seguindo alguns tutoriais, uma vez que nunca havia montado nada apenas com base em DIVs

Criei um CSS pra cada linha de DIV porque, achei que deveria ser assim... Se houver uma maneira de simplificar isso, gostaria muito de saber.

Para os próximos HTMLs que estou montando, estou procurando simplificar o design, mantendo os SLICES do mesmo tamanho, assim (imgino) poderei usar uma mesma classe CSS pra diferentes DIVs... Pra facilitar a construção do HTML lá na frente.

 

 

• O CÓDIGO
Segue o link da pasta com as imagens e o HTML:
https://drive.google.com/open?id=1oxhbq48reTrxTE6iLo6J517ebfioXTNE

Aqui vai o código:
 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=content-width, initial-scale=1.0" />
<title>BT835A - Betec Brasil ©</title>
<style>
body {
	font-family:"Tahoma, Verdana, Arial";
	width:1140px;
	margin:auto;
	background-color:#FFF;
}
.titulos-azul { /* FORMATAÇÃO DE TEXTO */
	font-family: Tahoma, Geneva, sans-serif;
	font-size:30pt;
	font-style:normal;
	font-weight:bold;
	font-variant:normal;
	text-align:center;
	letter-spacing:-2px;
	color:#296ba4;
	line-height:25px;
}
.titulos-branco { /* FORMATAÇÃO DE TEXTO */
	font-family:Tahoma, Geneva, sans-serif;
	font-size:30pt;
	font-style:normal;
	font-weight:bold;
	line-height:25px;
	font-variant:normal;
	color: #FFFFFF;
}
.descricoes-titulos { /* FORMATAÇÃO DE TEXTO */
	font-family:Tahoma, Geneva, sans-serif;
	font-size:15pt;
	font-style:normal;
	line-height:22px;
	font-weight:normal;
	font-variant:normal;
	text-transform:none;
	color:#868686;
	text-decoration:none;
}
.descricoes-cinza-claro { /* FORMATAÇÃO DE TEXTO */
	font-family:Tahoma, Geneva, sans-serif;
	font-size:15pt;
	font-style:normal;
	line-height:22px;
	font-weight:normal;
	font-variant:normal;
	text-transform:none;
	color:#dcdcdc;
	text-decoration:none;
}
.subtitulos { /* FORMATAÇÃO DE TEXTO */
	font-family:Tahoma, Geneva, sans-serif;
	font-size:14pt;
	font-style:normal;
	line-height:22px;
	font-weight:bold;
	font-variant:normal;
	text-transform:none;
	color:#868686;
	text-decoration:none;
}
.legenda-quadros-azul { /* FORMATAÇÃO DE TEXTO */
	font-family: Tahoma, Geneva, sans-serif;
	font-size: 15pt;
	font-style: normal;
	line-height: 22px;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	color: #296ba4;
	text-decoration: none;
}
.box-apps{ /* FORMATAÇÃO DIV DOS APLICATIVOS */
	position:relative;
	float:left;
	width:1140px;
	height:290px;
}
#container { /* FORMATAÇÃO DIV PRINCIPAL */
	position:absolute;
	width:100%;
	height:100%;
	background-color:#FFF;
	margin:auto;
}
#imgs-001{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:344px;
	margin:auto;
}
#imgs-002{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:226px;
	margin:auto;
}
#imgs-003{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:385px;
	margin:auto;
}
#imgs-004{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:423px;
	margin:auto;
}
#imgs-005{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:416px;	
	margin:auto;
}
#imgs-006{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:182px;	
	margin:auto;
}
#box-001{ /* TEXTO PROJETOR POTENTE */
	position:relative;
	text-align:center;
	float:left;
	width:1060px;
	height:170px;
	padding-left:40px;
	padding-right:40px;
	padding-top:20px;
	padding-bottom:0px;
	background-color:#FFF;
}
#box-interno{ /* CAIXA GERAL COM TODOS OS APLICATIVOS */
	position:relative;
	width:980px;
	height:290px;
	top:0px;
	left:50%;
	margin-left:-490px;
	background-color:#FFF
}
.app-mini-containers{ /* CAIXAS - IMAGENS DOS APLICATIVOS */
	display:table;
	text-align:center;
	float:left;
	padding:5px;
	margin:5 auto;
	width:235px;
	height:280px;
}
#linha-caracteristicas{ /* BOX COM AS COLUNAS CARACTERÍSTICAS DO PROJETOR */
	position:relative;
	width:1140px;
	height:558px;
	background-color:#FFF;
	float:left;
	margin:auto;
	margin-top:20px;
}
.box-menor-caracteristicas{ /* BOX COM AS COLUNAS CARACTERÍSTICAS DO PROJETOR */
	position:relative;
	width:1075px;
	height:558px;
	top:0px;
	left:0;
	margin-left:-537px;
	margin:auto;
}
.coluna1{ /* COLUNA IMAGENS ESQUERDA */
	position:relative;
	width:229px;
	height:558px;
	background-color:#FFF;
	float:left;
}
.coluna-miolo{ /* COLUNA IMAGEM MIOLO */
	position:relative;
	width:617px;
	height:558px;
	background-color:#FFF;
	alignment-adjust:central;
	float:left;	
}
.coluna2{ /* COLUNA IMAGENS DIREITA */
	position:relative;
	width:229px;
	height:558px;
	background-color:#FFF;
	float:left;
}
#fundo-titulo-cinema{ /* FUNDO DA DIV BASE */
	position:relative;
	width:1140px;
	height:110px;
	float:left;
	background-color:#FFF;
	z-index:1;
}
#barra-azul-escuro{ /* BARRA DE ACABAMENTO AZUL PARA ENCAIXE */
	position:absolute;
	width:1140px;
	height:40px;
	bottom:0px;
	text-align:center;
	background-color:#1c3850;
	z-index:2;
}
#titulo-cinema{ /* FUNDO DO TEXTO */
	position:absolute;
	width:850px;
	height:50px;
	top:50%;
	left:50%;
	margin-left:-425px;
	margin-top:-50px;
	padding-top:20px;
	text-align:center;
	background-color:#296ba4;
	z-index:3;
}
#imgs-cinema1{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:340px;	
	margin:auto;
}
#imgs-cinema2{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:403px;	
	margin:auto;
}
#box-max-desempenho{ /* TEXTO MAX DESEMPENHO */
	position:relative;
	text-align:center;
	float:left;
	width:1060px;
	height:130px;
	padding-left:40px;
	padding-right:40px;
	padding-top:20px;
	padding-bottom:0px;
	background-color:#204668;
}
#imgs-keystone{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:440px;	
	margin:auto;
}
#imgs-portatil-fixo1{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:447px;	
	margin:auto;
}
#fundo-acesso-facil{ /* FUNDO DA DIV BASE */
	position:relative;
	width:1140px;
	height:110px;
	float:left;
	background-color:#FFF;
	z-index:4;
}
#barra-azul-claro{ /* BARRA DE ACABAMENTO AZUL PARA ENCAIXE */
	position:absolute;
	width:1140px;
	height:40px;
	bottom:0px;
	text-align:center;
	background-color:#d6e4ed;
	z-index:5;
}
#titulo-acesso-facil{ /* FUNDO DO TEXTO */
	position:absolute;
	width:850px;
	height:50px;
	top:50%;
	left:50%;
	margin-left:-425px;
	margin-top:-50px;
	padding-top:20px;
	text-align:center;
	background-color:#296ba4;
	z-index:6;
}
#imgs-acesso-intuitivo1{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:552px;	
	margin:auto;
}
#box-conectividade{ /* TEXTO AMPLA CONECTIVIDADE */
	position:relative;
	text-align:center;
	float:left;
	width:1060px;
	height:130px;
	padding-left:40px;
	padding-right:40px;
	padding-top:20px;
	padding-bottom:0px;
	background-color:#FFF;
}
#imgs-conectividade1{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:368px;	
	margin:auto;
}
#imgs-conectividade2{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:368px;	
	margin:auto;
}
#box-qualidade{ /* TEXTO QUALIDADE E EFICIENCIA */
	position:relative;
	text-align:center;
	float:left;
	width:1060px;
	height:125px;
	padding-left:40px;
	padding-right:40px;
	padding-top:20px;
	padding-bottom:0px;
	background-color:#eff5f8;
}
#imgs-qualidade{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1140px;
	height:320px;
	margin:auto;
	background-color:#eff5f8;
}
#box-lamp-led{ /* TEXTO LAMPADAS LED */
	position:relative;
	text-align:center;
	float:left;
	width:1060px;
	height:130px;
	padding-left:40px;
	padding-right:40px;
	padding-top:20px;
	padding-bottom:0px;
	background-color:#FFF;
}
#imgs-led{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1120px;
	height:250px;
	margin-left:20px;
	background-color:#FFF;
}
#imgs-betec{ /* FORMATAÇÃO LINHA COM IMAGENS */
	position:relative;
	float:left;
	width:1120px;
	height:480px;
	margin-left:20px;
	background-color:#FFF;
</style>
</head>
<body>
	<div id="container"/>
		
		<div id="imgs-001">
    		<img src="images/html-betec-bt835a_01.jpg" width="570" height="344" style="float:left;"/>
			<img src="images/html-betec-bt835a_02.jpg" width="570" height="344" style="float:left;"/></div>
		<div id="imgs-002">
    		<img src="images/html-betec-bt835a_03.jpg" width="570" height="226" style="float:left;"/>
			<img src="images/html-betec-bt835a_04.jpg" width="570" height="226" style="float:left;"/></div>    
		<div id="imgs-003">
   			<img src="images/html-betec-bt835a_05.jpg" width="570" height="385" style="float:left;"/>
			<img src="images/html-betec-bt835a_06.jpg" width="570" height="385" style="float:left;"/></div>
		<div id="imgs-004">
    		<img src="images/html-betec-bt835a_07.jpg" width="570" height="423" style="float:left;"/>
			<img src="images/html-betec-bt835a_08.jpg" width="570" height="423" style="float:left;"/></div>
		<div id="imgs-005">
    		<img src="images/html-betec-bt835a_09.jpg" width="570" height="416" style="float:left;"/>
			<img src="images/html-betec-bt835a_10.jpg" width="570" height="416" style="float:left;"/></div>
		<div id="imgs-006">
    		<img src="images/html-betec-bt835a_11.jpg" width="570" height="182" style="float:left;"/>
			<img src="images/html-betec-bt835a_12.jpg" width="570" height="182" style="float:left;"/></div>
        
		<div id="box-001">
			<p><span class="titulos-azul">PROJETOR POTENTE... SISTEMA SMART!</span></p><p><span class="descricoes-titulos">Com <strong>1600 LÚMENS</strong> para projeção, o que torna o modelo BT835A ainda mais poderoso são as<br /><strong>FUNÇÕES SMART</strong> nativas! O WI-FI integrado permite que você se conecta à internet e tenha<br />acesso direto ao <strong>YOUTUBE, GOOGLE CHROME</strong> e <strong>NETFLIX</strong>, com os aplicativos já instalados!</span></p><p><span class="subtitulos">CONEXÃO WI-FI E OS MELHORES APLICATIVOS JÁ INSTALADOS!</span></p>
		</div><!--fecha box1 -->            
            
		<div class="box-apps">
      		<div id="box-interno">
      			<div class="app-mini-containers"><img src="images/html-betec-bt835a_15.jpg" width="229" height="229"/>							<span class="legenda-quadros-azul">Conexão rápida<br />e fácil</span></div> 
      			<div class="app-mini-containers"><img src="images/html-betec-bt835a_17.jpg" width="229" height="229"/><span class="legenda-quadros-azul">O melhor navegador<br />da internet</span></div> 
      			<div class="app-mini-containers"><img src="images/html-betec-bt835a_19.jpg" width="229" height="229"/><span class="legenda-quadros-azul">Séries e filmes para<br />seu cinema em casa</span></div> 
      			<div class="app-mini-containers"><img src="images/html-betec-bt835a_21.jpg" width="229" height="229"/><span class="legenda-quadros-azul">O maior conteúdo de<br />vídeos do mundo</span>
      		</div><!--fecha box-interno -->
      	</div><!--fecha box-apps -->
        
		<div id="linha-caracteristicas">
        	<div class="box-menor-caracteristicas">
				<div class="coluna1"><img src="images/html-betec-bt835a_28.jpg" width="229" height="250"/><br /><br /><br /><br /><img src="images/html-betec-bt835a_30-04.jpg" width="229" height="250"/></div>
            	<div class="coluna-miolo"><img src="images/html-betec-bt835a_28-02.jpg" width="617" height="558" style="float:left;"/></div>
            	<div class="coluna2"><img src="images/html-betec-bt835a_30.jpg" width="229" height="250"/><br /><br /><br /><br /><img src="images/html-betec-bt835a_33.jpg" width="229" height="250"/></div><br />
			</div><!--Fecha Div Box-Menor-->
        </div><!--Fecha Div Linha-Características-->
        
		<div id="fundo-titulo-cinema">
	        <div id="barra-azul-escuro">
            	<div class="titulos-branco" id="titulo-cinema">CINEMA NO TAMANHO CERTO</div>
            </div><!--Fecha Barra Azul Escuro-->
		</div><!--Fecha Titulo Cinema-->
        
		<div id="imgs-cinema1">
    		<img src="images/html-betec-bt835a_37.jpg" width="570" height="340" style="float:left;"/>
			<img src="images/html-betec-bt835a_38.jpg" width="570" height="340" style="float:left;"/></div>
		<div id="imgs-cinema2">
    		<img src="images/html-betec-bt835a_39.jpg" width="570" height="403" style="float:left;"/>
			<img src="images/html-betec-bt835a_40.jpg" width="570" height="403" style="float:left;"/></div>

		<div id="box-max-desempenho">
			<p><span class="titulos-branco">OBTENHA O MÁXIMO DESEMPENHO</span></p><p><span class="descricoes-cinza-claro"><strong>PARA IMAGENS COM MÁXIMA NITIDEZ, UTILIZE O PROJETOR<br />EM AMBIENTES ESCUROS OU COM BAIXA LUMINOSIDADE!</strong></span></p>
		</div><!--fecha box Max desempenho -->             

		<div id="imgs-keystone">
    		<img src="images/html-betec-bt835a_45.jpg" width="570" height="440" style="float:left;"/>
			<img src="images/html-betec-bt835a_46.jpg" width="570" height="440" style="float:left;"/></div>
		
        <div id="imgs-portatil-fixo1">
    		<img src="images/html-betec-bt835a_45a.jpg" width="570" height="447" style="float:left;"/>
			<img src="images/html-betec-bt835a_46a.jpg" width="570" height="447" style="float:left;"/></div>
            
    	<div id="imgs-portatil-fixo2">
    		<img src="images/html-betec-bt835a_47.jpg" width="570" height="447" style="float:left;"/>
			<img src="images/html-betec-bt835a_48.jpg" width="570" height="447" style="float:left;"/></div>

		<div id="fundo-acesso-facil">
	        <div id="barra-azul-claro">
            	<div class="titulos-branco" id="titulo-acesso-facil">ACESSO FÁCIL E INTUITIVO</div>
            </div><!--Fecha Barra Azul Claro-->
		</div><!--Fecha Acesso Facil-->

		<div id="imgs-acesso-intuitivo1">
    		<img src="images/html-betec-bt835a_53.jpg" width="570" height="552" style="float:left;"/>
			<img src="images/html-betec-bt835a_54.jpg" width="570" height="552" style="float:left;"/>
 		</div><!--Fecha imgs Acesso Intuitivo --> 

		<div id="box-conectividade">
			<p><span class="titulos-azul">AMPLA CONECTIVIDADE</span></p><p><span class="descricoes-titulos">Acesso direto a vários tipos de conexão de entrada, aliando praticidade e tecnologia.<br />Conexão de saída para sistema de som externo de alta fidelidade. Qualidade total para a sua projeção.</span></p>
		</div><!--fecha conectividade -->  

		<div id="imgs-conectividade1">
    		<img src="images/html-betec-bt835a_56.jpg" width="570" height="369" style="float:left;"/>
			<img src="images/html-betec-bt835a_57.jpg" width="570" height="369" style="float:left;"/></div>
		<div id="imgs-conectividade2">
    		<img src="images/html-betec-bt835a_58.jpg" width="570" height="368" style="float:left;"/>
			<img src="images/html-betec-bt835a_59.jpg" width="570" height="368" style="float:left;"/></div>

		<div id="box-qualidade">
			<p><span class="titulos-azul">QUALIDADE E EFICIÊNCIA</span></p><p><span class="descricoes-titulos">Projetado com cuidado e construído com componentes de alta qualidade, o projetor <strong>BT835A</strong><br />é uma combinação elegante da tecnologia de ponta com o ótimo desempenho.</span></p>
		</div><!--fecha conectividade --> 
        
        <div id="imgs-qualidade">
    		<img src="images/html-betec-bt835a_58a.jpg" width="570" height="291" style="float:left;"/>
			<img src="images/html-betec-bt835a_59a.jpg" width="570" height="291" style="float:left;"/></div>

		<div id="box-lamp-led">
			<p><span class="titulos-azul">PROJEÇÃO COM LÂMPADA LED</span></p><p><span class="descricoes-titulos">Lâmpadas LED são muito mais eficientes, duráveis e consomem muito menos energia.<br />Além disso, custam até 5 vezes menos que as lâmpadas de projetores comuns!</span></p>
		</div><!--fecha conectividade --> 
        
        <div id="imgs-led"><img src="images/html-betec-bt835a_68.jpg" width="537" height="211" style="float:left;"/><img src="images/html-betec-bt835a_69.jpg" width="538" height="211" style="float:left;"/></div>

		<div id="imgs-betec">
    		<img src="images/html-betec-bt835a_72.jpg" width="549" height="437" style="float:left;"/>
			<img src="images/html-betec-bt835a_73.jpg" width="548" height="437" style="float:left;"/></div>

</div><!--Fecha Div Container-->

</body>
</html>

 

______________________________

Espero não ter esquecido nada e... 
Se obtiver alguma resposta... Fico agradecido imensamente!

Obrigado a todos, desde já!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, você acabou criando um site com código sem necessidade de repetição.

posso não resolver seus problemas mas irá uma dica até você que vale a pena tentar.

separe o html do css

  • crie um: site.html, e um estilo.css. Quando os 2 estão separados a forma de visualização fica mais fácil.
  • comece a criar a prática de comentar os códigos, no html seria <!-- Comentário --> e no css seria: /* Comentário */.
  • as imagens com width e height iguais podem simplesmente ter uma classe que atribui sua altura e largura sem a necessidade de ter que repetir varias vezes.
  • comece a colocar altura e largura em porcentagem(%) isso deixará o site responsivo.
  • o html não funciona que nem uma imagem que se auto ajusta com o dispositivo que está sendo usado.
  • peça para que quando seu cliente coloque o seu código no site dele para ele referenciar o seu css depois de todos os outros o html sempre vai priorizar o ultimo css a ser referenciado.
  • sempre deixe seu código identado.

como eu havia dito, talvez isso não resolva seu problema, mas são boas práticas que você deve criar para facilitar a manipulação e a leitura do seu código.

tente mudar seu width e height para % isso resolverá seu problema com responsividade.

sempre evite ao maximo usar qualquer forma de definir o tamanho de algo que não seja com %.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!
Caro XDXD...

Mano... Muito obrigado pela resposta! Mesmo!
Como eu coloquei ali, tenho uma "certa noção" sobre HTML e afins mas, as atualizações da linguagem são muito novidades pra mim e, de certa maneira, eu sabia que alguma (algumas) coisas não estavam (não ficariam) certas no código.

MUITO OBRIGADO - novamente - pelas dicas... Já deu "uma luz".
Guardarei as sugestões com carinho e à saplicarei... DE CERTEZA!

Especificamente sobre as "classes" e o fato delas não precisarem ser repetidas, eu meio que suspeitava mas, na hora de fatiar, como eu não tinha usado tamanhos semelhantes, achei melhor criar uma classe pra cada DIV... Agora já esto cuidando pra fatiar as imagens em tamanhos iguais e o próximo HTML terá apenas 4 classes diferentes pras DIVs.

E agora que você falou sobre as PORCENTAGENS ficou claro pra mim como trabalhar o conteúdo!

Valeu mesmo!
Ate breve e... SUCESSO aí pra você!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Jack Oliveira
      Ola estou fazendo um instalador de banco de dados 
       
      em parte funciona  
       
      Mas quando uso o
      <<<HTML
       
      HTML;
       
      Ele fica com estas informações no top
       
      7.4 ao 8.38.0.28512MOnOnOnOffOffOnOffOffOnOnOnOnOnprogress-bar-success
       
      <?php $MeuHtml = <<<HTML <!DOCTYPE html> <html> <head><meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Instalação {$autor}</title> <link rel="icon" href="{$urlApi}api/allinstall/assets/icone.png?v={$versao}" sizes="32x32"> <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> <link rel="stylesheet" href="{$urlApi}api/allinstall/assets/css/app.css?v={$versao}"> <style type="text/css"> .license { background-color: #FFF; height: 400px; width: 100%; margin: 10px; } .form-control{ margin-bottom: 5px; } #primary{background: #FF6403} .paper-card{background: #272c33} .card{background: none;} .sw-theme-circles>ul.step-anchor:before{background-color: #30363d} .sw-theme-circles>ul.step-anchor>li>a{border: 3px solid #30363d} .sw-theme-circles>ul.step-anchor>li>a{background: #f5f5f5; min-width: 50px; height: 50px; text-align: center; -webkit-box-shadow: inset 0 0 0 3px #fff!important; box-shadow: inset 0 0 0 3px #fff!important; text-decoration: none; outline-style: none; z-index: 99; color: #999; background: #fff; line-height: 2; font-weight: bold;} .sw-theme-circles>ul.step-anchor>li{margin-left: 15%;} .card-header{border-bottom: 0} .table-striped tbody tr:nth-of-type(odd){background-color: #30363d;} .table-bordered{border: 1px solid #30363d;} .table-bordered td, .table-bordered th { border: 1px solid #30363d; } </style> </head> <body class="light loaded"> <div id="app"> <main> <div id="primary" class="p-t-b-100 height-full"> <div class="container"> <div class="row"> <div class="col-lg-8 mx-md-auto paper-card"> <div class="text-center"> <img class="img-responsive" src="{$urlApi}api/allinstall/assets/{$imagem}?v={$versao}"> <p><strong><H3>Instalação {$projeto} | V: {$versao}</H3></strong></p> </div> HTML; if (!isset($_GET['step']) || $_GET['step'] == '1') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li><a href="#step-2y">2</a></li> <li><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <h6><b>Configurações do Servidor</b></h6><br> <table class="table table-condensed table-bordered table-striped"> <tr> <th>Função / Extensão</th> <th>Config. Necessária</th> <th>Config. Atual</th> <th width="50px">Status</th> </tr> <tr> <td>Versão do PHP</td> <td> HTML; echo $php7. ' ao '.$php8; $MeuHtml .= <<<HTML </td> <td> HTML; echo phpversion(); $MeuHtml .= <<<HTML </td> <td> HTML; if(phpversion() >= $php7 && phpversion() <= $php8) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> HTML; $MeuHtml .= <<<HTML <tr> <td>Memória do PHP</td> <td>128MB</td> <td> HTML; echo $mem = ini_get('memory_limit'); $MeuHtml .= <<<HTML </td> <td> HTML; if($mem >= 128) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>cURL</td> <td>On</td> <td> HTML; if(function_exists('curl_init')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('curl_init')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Allow URL fopen</td> <td>On</td> <td> HTML; if(ini_get('allow_url_fopen')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(ini_get('allow_url_fopen')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>File Get Contents</td> <td>On</td> <td> HTML; if(function_exists('file_get_contents')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('file_get_contents')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Sessão Auto Start</td> <td>Off</td> <td> HTML; if(ini_get('session_auto_start')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('session_auto_start')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Safe Mode</td> <td>Off</td> <td> HTML; if(ini_get('safe_mode')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('safe_mode')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Short Open Tags</td> <td>On</td> <td> HTML; if(ini_get('short_open_tag')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(ini_get('short_open_tag')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Magic Quotes GPC</td> <td>Off</td> <td> HTML; if(ini_get('magic_quotes_gpc')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('magic_quotes_gpc')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Register Globals</td> <td>Off</td> <td> HTML; if(ini_get('register_globals')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('register_globals')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>PHPMail</td> <td>On</td> <td> HTML; if(function_exists('mail')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('mail')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { $i = $i + 1; echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>MySQLi</td> <td>On</td> <td> HTML; if(extension_loaded('mysqli')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('mysqli')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>ZIP</td> <td>On</td> <td> HTML; if(extension_loaded('zip')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('zip')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>MBString</td> <td>On</td> <td> HTML; if(extension_loaded('mbstring')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('mbstring')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>XML</td> <td>On</td> <td> HTML; if(extension_loaded('libxml')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('libxml')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> </table> <hr> <h6><b>Diretórios e Permissões de Arquivos</b></h6><br> <table class="table table-condensed table-bordered table-striped"> <tr> <th>Diretório</th> <th style="width: 40px">Status</th> </tr> <tr> <td>database</td> <td> HTML; if(is_writable('database')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> </table> <hr> <h6><b>Pontuação / Compatibilidade</b></h6><br> <div class="progress"> <div class="progress-bar progress-bar-striped progress-bar-animated HTML; echo ProgressBar(substr(VerificaPontuacao($i,'16'),0,4)); $PontPorce = VerificaPontuacao($i,'16'); $pont100 = substr(VerificaPontuacao($i,'16'),0,4); $MeuHtml .= <<<HTML " role="progressbar" aria-valuemax="100" style="width: {$PontPorce}%;"> <strong>{$pont100} / 100</strong> </div> </div> <center> <br> <button class="btn btn-primary" onclick="document.location.href='{$URL}?step=1';">Verificar</button> <button class="btn btn-primary" onclick="document.location.href='{$URL}?step=2';">Próximo</button> </center> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '2') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body "> <iframe src="{$urlApi}api/allinstall/termos.php{$Frame}" class="license" frameborder="0" scrolling="auto"></iframe> <form action="setup.php"> <input type="hidden" name="step" value="3"> <label><input type="checkbox" required=""> Sim, eu aceito</label> <center> <br> <a href="javascript:history.back()"><button class="btn btn-primary">Voltar</button></a> <button class="btn btn-primary" type="submit">Próximo</button> </center> </form> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '3') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li class="active"><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <form method="post" action="?InstallDB"> <h6><b>1. MySQL - Configuração do Banco de Dados</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">MySQL Host:</label> <div class="col-sm-9"> <input class="form-control" name="dbhost" value="localhost" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Usuário MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbuser" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbpass"> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Banco MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbname" required> </div> </div> <h6><b>2. Configuração Comum</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Site:</label> <div class="col-sm-9"> <input class="form-control" name="nomesite" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">URL do Site:</label> <div class="col-sm-9"> <input class="form-control" name="urlsite" value="{$urlsite}" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">URL de Instalação:</label> <div class="col-sm-9"> <input class="form-control" name="siteurl" value="{$siteurl}" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Extensão:</label> <div class="col-sm-9"> <select class="form-control" name="extensao" required> <option value=""> Selecionar Extensão </option> <option value="1"> MYSQLI </option> <option value="2"> PDO </option> </select> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Define TimeZone:</label> <div class="col-sm-9"> <select class="form-control" name="timezone" id="timezone"> HTML; foreach ($timezones as $timezone) : echo '<option value="'.$timezone.'" '.$timezone === $current_timezone ? 'selected' : ''.'> '.$timezone.' </option>'; endforeach; $MeuHtml .= <<<HTML </select> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">E-mail:</label> <div class="col-sm-9"> <input class="form-control" name="email" required> <em>Mesmo e-mail cadastrado em nosso Site.</em> </div> </div> <h6><b>3. Configuração do Administrador</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Usuário:</label> <div class="col-sm-9"> <input class="form-control" name="usuario" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Login:</label> <div class="col-sm-9"> <input class="form-control" name="login" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha:</label> <div class="col-sm-9"> <input class="form-control" type="password" name="senha" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha[confimação]:</label> <div class="col-sm-9"> <input class="form-control" type="password" name="senhaconfirm" required> </div> </div> <center> <a class="btn btn-primary" href="javascript:history.back()">Voltar</a> <button class="btn btn-primary">Próximo</button> </center> </form> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '4') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li class="active"><a href="#step-3y">3</a></li> <li class="active"><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <div> <h4><b>Instalação realizada com sucesso!</b></h4> <p>Agora você poderá utilizar o seu {$projeto}, em caso de dúvidas entre em contato com o suporte: <b>{$emailautor}</b></p> </div> <center> <form action="{$URL}?step=4" method="post"> <button type="submit" name="realizar_login" class="btn btn-primary">Realizar Login</button> </form> </center> </div> </div> HTML; } if (isset($_POST['realizar_login'])) { // Deletar os arquivos @unlink('setup.php'); @unlink($URL); @unlink('termos.php'); @unlink('database/BD.sql'); @unlink('controller/setup.php'); // Redirecionar para a página de login ou outra página desejada header('Location: login.php?finish'); exit; } $MeuHtml .= <<<HTML <div class="box-footer"> <center> Todos os Direitos Reservados {$autor} </center> </div> </div> </div> </div> </div> </main> </div> <script src="{$urlApi}api/allinstall/assets/js/app.js"></script> </body> </html> HTML; echo $MeuHtml;  
    • Por Jack Oliveira
      Ola pessoal, boa noite a todos
       
      Bom é o seguinte tenho um codigo html onde selecione um modelo de site para poder criar na base selecionada, ele criar ate então, mas ele esta pegando somente o index.html
      Mas quero que ele salva junto ao novo projeto o css, js, img, images, assets e fonts, quando faço os ajuste para que pega tudo isso ele me da erro ao salvar 
      Vou mostra parte do html onde faz a seleção dos modelos
       
      <!-- new page modal--> <div class="modal fade" id="new-page-modal" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <form id="newPageForm" method="POST" action="save.php"> <div class="modal-content"> <div class="modal-header"> <h6 class="modal-title text-primary fw-normal"><i class="la la-lg la-file"></i> Nova página</h6> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"> </button> </div> <div class="modal-body text"> <div class="mb-3 row" data-key="type"> <label class="col-sm-3 col-form-label"> Modelo <abbr title="O conteúdo deste modelo será usado como ponto de partida para o novo modelo"> <i class="la la-lg la-question-circle text-primary"></i> </abbr> </label> <div class="col-sm-9 input"> <div> <select class="form-select" name="startTemplateUrl"> <option value="themes/modelo-branco/branco-template.html">Modelo em branco</option> <option value="themes/modelo1/index.html">Modelo 1 de L2</option> <option value="themes/modelo2/index.html">Modelo 3 de L2</option> <option value="themes/modelo3/index.html">Modelo 3 de L2 </option> </select> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Nome da página</label> <div class="col-sm-9 input"> <div> <input name="title" type="text" value="Minha página" class="form-control" placeholder="Minha página" required> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Nome do arquivo</label> <div class="col-sm-9 input"> <div> <input name="file" type="text" value="my-page.html" class="form-control" placeholder="index.html" required> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Salvar na pasta</label> <div class="col-sm-9 input"> <div> <input name="folder" type="text" value="my-pages" class="form-control" placeholder="/" required> </div> </div> </div> </div> <div class="modal-footer"> <button class="btn btn-secondary btn-lg" type="reset" data-bs-dismiss="modal"><i class="la la-times"></i> Cancelar</button> <button class="btn btn-primary btn-lg" type="submit"><i class="la la-check"></i> Criar página</button> </div> </div> </form> </div> </div> A ideia aqui é salvar tudo que tiver depois do themes/demo1/
      quando ele salva so salva 
      my-pasta/index.html
      e quando for salva ele salva dentro de um pasta Projetos/MeuSite1
      Projetos/MeuSite2  e assim vai
      Este é o save.php
       
      <?php define('MAX_FILE_LIMIT', 1024 * 1024 * 2);//Tamanho máximo de arquivo HTML de 2 megabytes define('ALLOW_PHP', false);//verifique se o html salvo contém tag php e não salve se não for permitido define('ALLOWED_OEMBED_DOMAINS', [ 'https://www.youtube.com/', 'https://www.vimeo.com/', 'https://www.twitter.com/' ]);//carregar URLs apenas de sites permitidos para oembed function sanitizeFileName($file, $allowedExtension = 'html') { $basename = basename($file); $disallow = ['.htaccess', 'passwd']; if (in_array($basename, $disallow)) { showError('Nome de arquivo não permitido!'); return ''; } //sanitize, remova o ponto duplo .. e remova os parâmetros get, se houver $file = preg_replace('@\?.*$@' , '', preg_replace('@\.{2,}@' , '', preg_replace('@[^\/\\a-zA-Z0-9\-\._]@', '', $file))); if ($file) { $file = __DIR__ . DIRECTORY_SEPARATOR . $file; } else { return ''; } //permitir apenas extensão .html if ($allowedExtension) { $file = preg_replace('/\.[^.]+$/', '', $file) . ".$allowedExtension"; } return $file; } function showError($error) { header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500); die($error); } function validOembedUrl($url) { foreach (ALLOWED_OEMBED_DOMAINS as $domain) { if (strpos($url, $domain) === 0) { return true; } } return false; } $html = ''; $file = ''; $action = ''; if (isset($_POST['startTemplateUrl']) && !empty($_POST['startTemplateUrl'])) { $startTemplateUrl = sanitizeFileName($_POST['startTemplateUrl']); $html = ''; if ($startTemplateUrl) { $html = file_get_contents($startTemplateUrl); } } else if (isset($_POST['html'])){ $html = substr($_POST['html'], 0, MAX_FILE_LIMIT); if (!ALLOW_PHP) { //if (strpos($html, '<?php') !== false) { if (preg_match('@<\?php|<\? |<\?=|<\s*script\s*language\s*=\s*"\s*php\s*"\s*>@', $html)) { showError('PHP não permitido!'); } } } if (isset($_POST['file'])) { $file = sanitizeFileName($_POST['file']); } if (isset($_GET['action'])) { $action = htmlspecialchars(strip_tags($_GET['action'])); } if ($action) { //ações do gerenciador de arquivos, excluir e renomear switch ($action) { case 'rename': $newfile = sanitizeFileName($_POST['newfile']); if ($file && $newfile) { if (rename($file, $newfile)) { echo "Arquivo '$file' renomeado para '$newfile'"; } else { showError("Erro ao renomear arquivo '$file' renomeado para '$newfile'"); } } break; case 'delete': if ($file) { if (unlink($file)) { echo "Arquivo '$file' excluído"; } else { showError("Erro ao excluir arquivo '$file'"); } } break; case 'saveReusable': //bloco ou seção $type = $_POST['type'] ?? false; $name = $_POST['name'] ?? false; $html = $_POST['html'] ?? false; if ($type && $name && $html) { $file = sanitizeFileName("$type/$name"); if ($file) { $dir = dirname($file); if (!is_dir($dir)) { echo "$dir pasta não existe\n"; if (mkdir($dir, 0777, true)) { echo "$dir pasta foi criada\n"; } else { showError("Erro ao criar pasta '$dir'\n"); } } if (file_put_contents($file, $html)) { echo "Arquivo salvo '$file'"; } else { showError("Erro ao salvar arquivo '$file'\nAs possíveis causas são falta de permissão de gravação ou caminho de arquivo incorreto!"); } } else { showError('Nome de arquivo inválido!'); } } else { showError("Faltam dados de elementos reutilizáveis!\n"); } break; case 'oembedProxy': $url = $_GET['url'] ?? ''; if (validOembedUrl($url)) { header('Content-Type: application/json'); echo file_get_contents($url); } else { showError('URL inválida!'); } break; default: showError("Ação inválida '$action'!"); } } else { //salvar pagina if ($html) { if ($file) { $dir = dirname($file); if (!is_dir($dir)) { echo "$dir pasta não existe\n"; if (mkdir($dir, 0777, true)) { echo "$dir pasta foi criada\n"; } else { showError("Erro ao criar pasta '$dir'\n"); } } if (file_put_contents($file, $html)) { echo "Arquivo salvo '$file'"; } else { showError("Erro ao salvar arquivo '$file'\nAs possíveis causas são falta de permissão de gravação ou caminho de arquivo incorreto!"); } } else { showError('O nome do arquivo está vazio!'); } } else { showError('O conteúdo HTML está vazio!'); } } Espero que possam entender o que preciso aqui....  fico no aguardo!  quando eu tento mudar a forma de salva no php, ele me da erro de que não foi salvo, e volta ao orginal como esta ai acima ele salva, talvez eu esteja escapando alguma coisa que não estou vendo.... 
    • Por juliosonic
      Boa noite..
      Estou desenvolvendo um site de https://www.maithunatantra.com.br/ e estou com um duvida sobre o menu de navegação da versão mobile.
      O menu que tem o dropdown "Terapeutas" e "Terapias" quando clico em cima ele expande como deve ser, mas quando clico denovo para recolher os submenus
      nao acontece nada.. segue o trecho do codigo do menu..
      <div class="collapse navbar-collapse" id="navbarsExample09">             <ul class="navbar-nav ml-auto">               <li class="nav-item  active"><a class="nav-link" href="index.html">Home</a></li>               <li class="nav-item  active"><a class="nav-link" href="about-us.html">Quem Somos</a></li>               <li class="nav-item dropdown1">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapeutas</a>                     <ul class="dropdown-menu">                         <li><a class="dropdown-item" href="terapeuta-julio-cezar.html">Julio Cezar</a></li>                         <li><a class="dropdown-item" href="terapeuta-pamela-priscila.html">Pamela Priscila</a></li>                     </ul>                                    </li>               <li class="nav-item dropdown">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapias</a>                     <ul class="dropdown-menu" aria-labelledby="dropdown01">                         <li><a class="dropdown-item" href="o-que-e-reiki.html">O que é Reiki</a></li>                         <li><a class="dropdown-item" href="beneficios-reiki.html">Benefícios do Reiki</a></li>                         <li><a class="dropdown-item" href="principios-reiki.html">Princípios do Reiki</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Reiki em Animais</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Estudos Sobre Reiki</a></li>                         <li><a class="dropdown-item" href="terapia-massagem-tantrica.html">Terapia Tântrica</a></li>                     </ul>               </li>               <li class="nav-item  active"><a class="nav-link" href="blog.html">Blog</a></li>                <li class="nav-item"><a class="nav-link" href="contato.html">Contato</a></li>             </ul>         </div>  
      Massagem Tantrica em Curitiba
      Tantra Curitiba
      Massagem Tântrica
      Tantra
      Julio Darshan

      Obrigado
      Att
      Julio Cezar
       
       
       
    • Por Felipe Medeiros
      Bom, criei um tema filho e o que aprendi é que para alterar qualquer coisa do tema filho eu preciso copiar o arquivo do tema pai o colocar dentro da pasta do tema filho.
       
      No meu caso, estou usando o tema "Astra" bem famosinho. O arquivo css que quero modificar não está dentro da pasta do tema pai, está em "wp-content/uploads/uag-plugin/assets/0/uag-css-10.css" sendo que o diretorio do tema pai é "wp-content/themes/Astra"
       
      O problema é o seguinte, preciso modificar a barra de pesquisa da pagina inicial, porem o inspetor de elementos do chrome ta acusando que esse arquivo é o responsavel por estilizar a barra de pesquisa. Será que isso tem a ver com "Cache de objetos", eu sei que o plugin liteSpeed Cache, AMP, Rank Math, todos eles tem essas paradas de criar arquivos css e js para tornar o site mais rapido.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.