Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, como postei anteriormente estou criando um CMS, e uma coisa que eu queria era que desse pra alterar tudo no site pelo painel, sendo assim ficaria legal se desse pra alterar o CSS. Vi que tem 2 jeitos de fazer isso, por htaccess e pelos headers. Queria saber qual é o "mais eficaz" e se isso é ou não uma boa prática, valeu!
>
Alterar CSS por htaccess? Nunca vi isso. Qual é o objetivo? Alterar o conteúdo do arquivo ou alterar o arquivo CSS que é carregado?
Se for pra editar o arquivo, basta pegar o conteúdo dele, exibir num textarea para edição. Veja as funções file_get_contents e file_put_contents.
Se for pra editar o arquivo a ser usado, altere o caminho dele na tag <link>, dentro do <head>
É uma linha de comando no htaccess que faz com que tags php rodem dentro de arquivos com extensão .css
Pensei em usar o file get e put também, por isso decidi criar aqui pra ver como é melhor e "mais certo", vamos dizer assim hahaha
E como eu citei, o objetivo é que o usuário final consiga modificar cores, imagens, talvez até posição de elementos da página tudo isso sem que ele precise mexer com o código css em si, por isso preciso escrever o php no css, pra puxar as informações de um db ou algum arquivo de cache, não decidi ainda, e estilizar a página como ele definiu pelo painel.
Na realidade, você está apenas configurando o apache para interpretar arquivos CSS como PHP.
Seguindo a lógica de "algumas opções", é mais fácil você criar o CSS em um arquivo PHP (extensão .php), e utilizar o header para informar a interpretação daquele arquivo:
<?php
header("Content-type: text/css");
$background = '#666';
?>
.class {
background: <?= $background; ?>;
}
Isso é para o caso de troca de cores, algumas imagens definidas no CSS, tamanho e algumas posições (caso forem absolutas).
Entretanto, realmente movimentar elementos o buraco é mais embaixo... e sei bem sobre isso.
Anos atrás, fiz algo similar. Uma das partes do meu TCC, era prover um gerador de relatórios através de uma interface HTML (a ideia do projeto era mostrar o poder que linguagens subestimadas possuem). Na época, o que melhor possuíamos de suporte a isso era o jQuery UI. Mas existiam diversos bugs com o jQuery UI, principalmente ao mover e redimensionar elementos que possuem propriedades de posicionamento, ainda mais se forem relative.... Foi sofrido mas no fim das contas funcionou (ao menos o suficiente).
Entretanto, o ponto que quero chegar, é que, para permitir uma livre escolha por parte do usuário, era necessário criar e excluir os elementos.
Como por exemplo, passar a imagem A da divisão X para Y. Quando era realizada essa movimentação, era necessário clonar o elemento da coluna X dentro da coluna Y e excluí-lo da coluna X. Só nesse processo, existiam algumas situações que ocorriam, como a não interpretação do novo elemento ou a perda total, ou parcial, de suas propriedades. Se fosse mover o data source (fonte de dados do relatório) da mesma forma, era outra situação a ser resolvida e, além do mais, fontes de dados possuem tamanhos dinâmicos (não há como prever a quantidade de dados).
Para salvar, era necessário salvar todo o html gerado. Ao retornar o html, para edição, era necessário adicionar ele ao DOM de interpretação do jQuery UI (outra parte sofrida).
Possível de criar é, mas envolve um auto custo de implementação, muito estudo e horas de estresses. Ainda mais, no final das contas, eu não fiquei feliz com o resultado (apesar de, modéstia a parte, o meu projeto foi o mais elogiado).
Alterar CSS por htaccess? Nunca vi isso. Qual é o objetivo? Alterar o conteúdo do arquivo ou alterar o arquivo CSS que é carregado?
Se for pra editar o arquivo, basta pegar o conteúdo dele, exibir num textarea para edição. Veja as funções file_get_contents e file_put_contents.
Se for pra editar o arquivo a ser usado, altere o caminho dele na tag <link>, dentro do <head>