Jump to content
mruoppolo

php e sass

Recommended Posts

Olá, tudo bem?

 

Eu estou criando alguns temas premium wordpress e criei um painel onde o usuário seleciona todas as cores e estilos do CSS, porém para que estas cores e estilos tenham efeito no site, elas precisam ser inseridas pelo php no sass ou no css diretamente, ai que esta o problema.

 

Eu fiz o seguinte, criei um arquivo chamado custom.php mais ou menos assim:

 

<style>
#loader p {
	color: <?php echo $preloader_typography_color; ?>;
	font-style: <?php echo $preloader_typography_style; ?>;
	font-family: <?php echo $preloader_typography_font; ?>;
	font-size: <?php echo $preloader_typography_size; ?>;
	line-height: <?php echo $preloader_typography_line; ?>;
	text-align: <?php echo $preloader_typography_align; ?>;
}
</style>

E dou um include nele bem no header, funciona, porém eu não sei se é a solução mais indicada, como os temas premium são para venda, eu fiquei na dúvida se esta é a maneira correta de fazer.

 

Eu uso muito sass para desenvolver e como tem as variáveis do sass eu pensei se o correto não seria o sass ser compilado diretamente no navegador e estes dados serem inseridos diretamente nas variáveis do sass, mas não sei se isto é possível.

 

Então qual a sua opinião, a forma que estou fazendo é a mais indicada?? Você conhece alguma outra solução mais profissional?

 

Muito obrigado :D

Share this post


Link to post
Share on other sites
1 hora atrás, ESerra disse:

Em primeiro lugar, o que é sass?

 

O Sass é uma linguagem baseada em CSS , tipo assim, ele permite utilizarmos estruturas de programação dentro do CSS, como por exemplo, laços de repetição 'foreach' e talz variáveis, é bem legal, eu vou escrevendo um arquivo style.scss como se fosse uma programação, coloco variáveis, laços de repetição, posso usar o comando extend para puxar os atributos de uma classe para dentro da outra e ele vai automaticamente compilando tudo em um arquivo css.

 

O problema é que pra funcionar eu preciso deixar o meu CMD (terminal do windows) aberto e "ouvindo" tudo o que eu digito no arquivo scss ai toda vez que eu salvo, ele compila em css e não sei como fazer isso no servidor.

Share this post


Link to post
Share on other sites

No php você pode passar o header do arquivo como css e chamar de forma externa

custom.php

<?php
header("Content-type: text/css; charset: UTF-8");
?>

#loader p {
	color: <?php echo $preloader_typography_color; ?>;
	font-style: <?php echo $preloader_typography_style; ?>;
	font-family: <?php echo $preloader_typography_font; ?>;
	font-size: <?php echo $preloader_typography_size; ?>;
	line-height: <?php echo $preloader_typography_line; ?>;
	text-align: <?php echo $preloader_typography_align; ?>;
}

para chamar, ao invés de usar .css, use .php

<link rel='stylesheet' type='text/css' href='css/custom.php?id=1' />

Está é uma forma, a outra é usar arquivos JS, exemplo seria o próprio jquery para trabalhar nos elementos.

 

A vantagem é que você pode criar os caches, tanto em CSS quanto JS e compressão do arquivo.

 

  • +1 1

Share this post


Link to post
Share on other sites

Até onde eu sei só da pra compilar o Sass localmente, pelo menos nunca consegui fazer de outra forma kk...

Quanto ao jeito de fazer, à minha mente veem 3 formas:

• A que você já citou, de incluir diretamente no HTML...

• Como o Williams falou, setando o header como text/css

• E por último, dando um file_get_contents() e posteriormente um file_put, com as novas cores

  • +1 1

Share this post


Link to post
Share on other sites

 

13 horas atrás, Mateus Silva disse:

• E por último, dando um file_get_contents() e posteriormente um file_put, com as novas cores

 

Existe formas mais elegantes e uma delas é via htaccess


Forçar o arquivo .css ou .js interpretar tags php 

 

Exemplo

 

index.html

css/
      /.htaccess

      /custom.css
 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Fundo Cinza</title>
        <link rel='stylesheet' type='text/css' href='css/custom.css?cor=blue' />
    </head>
    <body>

        <h1>Cor Branca</h1>
        <span class="cor">Cor Azul</span>

    </body>
</html>

 

.
/css/.htaccess

 

<FilesMatch "\.(css)$">
    SetHandler application/x-httpd-php
</FilesMatch>


/css/custom.css

 

<?php
header("Content-type: text/css; charset: UTF-8");

$cor = isset($_GET['cor']) ? $_GET['cor'] : null;
$body = "#ccc";
$h1 = "#fff";
?>

body {
    background: <?= $body ?>;
}

h1 {
    color: <?= $h1 ?>;
}

.cor {
    color: <?= $cor ?>;
}





 

  • +1 2

Share this post


Link to post
Share on other sites
1 hora atrás, Williams Duarte disse:

 

 

Existe formas mais elegantes e uma delas é via htaccess


Forçar o arquivo .css ou .js interpretar tags php 

 

Exemplo

 

index.html

css/
      /.htaccess

      /custom.css
 


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Fundo Cinza</title>
        <link rel='stylesheet' type='text/css' href='css/custom.css?cor=blue' />
    </head>
    <body>

        <h1>Cor Branca</h1>
        <span class="cor">Cor Azul</span>

    </body>
</html>

 

.
/css/.htaccess

 


<FilesMatch "\.(css)$">
    SetHandler application/x-httpd-php
</FilesMatch>


/css/custom.css

 


<?php
header("Content-type: text/css; charset: UTF-8");

$cor = isset($_GET['cor']) ? $_GET['cor'] : null;
$body = "#ccc";
$h1 = "#fff";
?>

body {
    background: <?= $body ?>;
}

h1 {
    color: <?= $h1 ?>;
}

.cor {
    color: <?= $cor ?>;
}





 

 

Muito obrigado pessoal, eu vou utilizar esta solução via htaccess, mas agradeço a todos :)

Share this post


Link to post
Share on other sites

Lembrando que, o exemplo com .htaccess é para Apache, para outros como nginx teria que converter.


http://nginx.org/en/docs/http/ngx_http_core_module.html

A primeira opção lá em cima, fica independente, se é apache ou nginx vai rodar, já que boa parte dos usuários wordpress, vem migrando para nginx.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By fideles
      Pessoal, tenho uma dúvida, talvez muito boba.
       
      Tenho um formulario com os input em array, e um alert javascript mostrando que foi registrado com suceso.
       
      O problema maior é que se for gravado 30 registro no banco de dados, ele mostra 30 alertas de registro gravado com suceso, por acaso é possivel limitar esse tanto de alerta para somente 1 independente da quantidade que ele grava no banco ?
    • By violin101
      Caros amigos, saudações...
       
      Desculpa em recorrer ao auxílio dos amigos.
       
      Como consigo realizar ORDENAÇÃO de Tabela usando Radio button ?

      por Exemplo:
      ordenar por: [ ]Código  ou  [ ]Descrição.
       
      Grato,
       
      Cesar
    • By Diego-SLP
      Bom dia,
       
      Estou fazendo uma tela de relatorios de registro de ponto e não estou conseguindo totalizar as horas conforme trago do banco de dados, se alguem puder me ajudar.
       
      SELECT p.cod_obra,f.nome,o.obra, TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(p.totalhora))),'%H:%i') AS hora, TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(p.totalhoraextra))),'%H:%i') AS horaextra, f.funcao FROM rh_pontoFuncionario p, rh_funcionario f, rh_obra o WHERE p.data BETWEEN '2020/10/01' AND '2020/11/20' AND p.cod_obra = '20056' AND p.cod_func = f.cod AND p.cod_obra = o.cod GROUP BY p.cod_obra, f.nome Essa query me traz COD_OBRA,NOME,OBRA,HORA,HORAEXTRA,FUNCAO e eu gostaria de TOTALIZAR o campo HORA e HORAEXTRA somando todas as linhas mas não consigo
    • By Erick Plant
      Olá! Precisando de uma ajudinha.
       
      FICAREI MUITO GRATO PELA AJUDA...SE PUDEREM ME DAR UMA LUZ!
       
      Estou arrumando um código que foi de outra pessoa, mas antes disso, preciso "apagar o incêndio" aqui e fazer funcionar uma implementação.
       
      Tenho um dropzone que carrega um arquivo sem necessidade de form. O problema começa por agora. Foi-me pedido para que eu implementasse um select trazendo do banco uma info e que enviasse via get 'junto com a url que envia as informaçoes do arquivo'.
      O carregador do select foi feito, eu estou pegando o value do select dinamicamente, pois não tem form.
      Porém, o problema é q nao sei como pegar esse value capturado para implentá-lo  na url via get.
       
       
      o js  e o dropzone na pag é esse:
      //AQUI EU PEGO O VALOR DO SELECT DE FORMA DINÂMICA id = ''; $(document).ready(function () { $("#seguimento").change(function () { id = $('#seguimento').val(); }); }); Dropzone.autoDiscover = false; Dropzone.options.tstDz = { //////////////////////////////////////////////////////// //AQUI O DROPZONE QUE PASSA OS PARAMETROS VIA GET /////////////////////////////////////////////////////// url: "<?= base_url('homeCgmrr/MonitoramentoPadraoDesempenho/addDoc?ambiente='.$ambiente.'&value='); ?>", paramName: "arquivo", maxFilesize: 2, acceptedFiles: ".xlsx,.ods,.xls,.csv", addRemoveLinks: true, // init: function () { // this.on("complete", function (file) { // setGallery(file); // }) // } init: function () { this.on('error', function(file, response) { $.notify("Você não pode fazer upload de arquivos com essa extensão, apenas arquivos .xlsx !", 'warning'); }); this.on('success', function(file, resp){ if(resp['status'] == false){ $.notify("Ocorreu erro no preenchimento da planilha. Por favor, verifique e tente novamente.", 'warning'); setGalleryError(file); }else{ setGallery(file); $.notify("Arquivo enviado com Sucesso!", 'success'); } }); } };  
      Como eu posso fazer pra carregar o id SE o base_url está em PHP?
      url: "<?= base_url('homeCgmrr/MonitoramentoPadraoDesempenho/addDoc?ambiente='.$ambiente.'&value='AQUI VAI O ID); ?>",  
      Obrigado pela ajuda!
       
    • By Elisame Araújo
      Bom dia,
       
      Estou montando um site de clã de jogos online (especificamente de Battlefield), e neste momento estou desenvolvendo o painel de administração do site, mas me deparei com uma dúvida que não consigo encontrar uma situação na internet que se aplique ao que eu preciso.
       
      A situação é a seguinte:
       
      Eu tenho um módulo onde o administrador vai adicionar um mapa, um tamanho de jogo e um modo para a rotação do servidor do clã, a exemplo desse pop-up:
       
      A lista de mapas vem do BD.
       
      O que eu preciso é que o segundo e o terceiro <select> sejam preenchidos baseados na seleção do primeiro. Onde, a exemplo:

       
      Seleção de Mapa: Ilhas Lofoten
      Opções Disponíveis a partir do 1º Select: 16 e 32 Jogadores
      Opções Disponíveis a partir do 1º e 2º Select: Dominação, TDM, etc.
       
      Para ficar mais simplificado: Seleção 1 > Opções A Partir de Seleção 1 > Opções A partir de Seleção 1 e 2
       
      Infelizmente eu ainda não tenho conhecimento em JavaScript ou JQuery ou JSON - ainda estou para aprender -, e não consigo encontrar uma resposta simplificada para isso
       
      Como eu poderia fazer isso da maneira mais simples ou didática?
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.