Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
quantas vezer você quer uma determinada cor para um usuário, para uma única área do site ou tamanhos, posições, etc.
E quando você faz 50 folhas css e coloca 50 endereços na sua página deixando o header maior de que o resto código.
Você vai vai fazer o seguinte; EM CASO DE NÂO USAR BANCO DE DADOS:
se você não usa banco então crie suas folhas normalmente quantas quiser mas não mais vai coloca-las na sua página.
Você vai colocar um único endereço(link rel) para uma única pagina que será .php e vai enviar variáveis para a página php que terá um header css como você verá a seguir. Note tambem que todas as outras páginas css será .php
PÀGINA: SYLES.CSS.PHP ou STYLES.PHP
<link rel="stylesheet" type="text/css" href="styles/SYLES.CSS.PHP?pg=index" />
<?
header('Content-Type: text/css; charset=ISO-8859-1'); // Define um header css
$pg = strip_tags($_GET["pg"]); // pega a variável da pagina que a visita está
switch($pg):
case 'index':
//Require ou Include
require('styles/paginaCssParaIndex.php'); // no caso da css está em uma pasta chamada styles.
break;
endswitch;
<?
AGORA COM BANCO:
PÀGINA: SYLES.CSS.PHP ou STYLES.PHP
Você criou uma tabela chamada ex: cssStyles
Em: cssPage = O nome da página do css,js etc.
Em: styles = O conteúdo css, js etc.
CREATE TABLE `cssStyles` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`cssPage` VARCHAR ( 30 ) NOT NULL,
`styles` MEDIUMTEXT NOT NULL,
);
<?
header('Content-Type: text/css; charset=ISO-8859-1'); // Define um header css
$pg = strip_tags($_GET["pg"]); // pega a variável da pagina que a visita está
$QUERY = MYSQL_QUERY("SELECT * FROM `cssStyles` WHERE `cssPage` = '$pg'");
$GET_STYLES = MYSQL_FECTH_ARRAY($QUERY);
$STYLES_DA_INDEX = $GET_STYLES['styles'];
ECHO $STYLES_DA_INDEX;
<?
RESUMINDO COM IDEIAS:
Aqui não usei objetos CLASS, FUNCTIONS mas é apenas para você se tornar cada vez mais dinâmico, BEM, você pode aplicar isto a o que desejar ex: JAVASCRIPT, CSS, XML, IMAGE, HTML, OU O QUE VOCÊ PRECISAR.
Suponha que você permite que o visitante troque uma imagen de fundo da página como no google, então você pode gravar a imagen escolhida num banco ou arquivo de texto com o IP do PC etc. E depois quando a visita entrar você pega a imagen que aquela visita escolheu e envia para o css ex:
<link rel="stylesheet" type="text/css" href="styles/SYLES.CSS.PHP?fundo=estaImagen.jpg" />
// LÁ NO CSS QUE ESTÁ EM UMA PG .PHP:
body{
background:url(pastaDasImagens/'.$fundo.');
}Concordo com o Andrey,
Mas a ideia é util.
Poderiamos fazer a pasta userCSS, e colocar 1 folha de estilos personalizada para cada cliente, e então, quando ele retornasse, usariamos um evercookie, com uma id, iriamos atribuir a id do evercookie dele à folha de estilos.
Marcos vai no site
O site da um evercookie: 44sf34
O site cria um css com a folha de estilos dele.
Marcos muda o background dele para 'images/bg.png'
O css é alterado, e fica assim:
userCSS/44sf34.css
body
{
background-image: url(../images/bg.png);
}
../ pois eu estou dentro da userCSS, e quero voltar 1 pasta.
Quando ele voltasse, dariamos
<link rel="stylesheet" type="text/css" href="userCSS/<?php echo $_COOKIE['evercookie'];?>.css" />
Ou então podiamos jogar na "atribuições" somente o fundo do usuario.
<link rel="stylesheet" type="text/css" href="CSS/CSS.css.php?fundo=<?php echo @file_get_contents['CSS/'.$_COOKIE['evercookie'].'.txt'] ?>" />
CSS/CSS.css.php:
<?
header('Content-Type: text/css; charset=ISO-8859-1'); // Define um header css
echo "body{background-image: url(../".$_GET['fundo'].");}";
CSS/$_COOKIE['evercookie'].txt:
images/bg.png
>
...
Não vejo utilidade nenhuma pra isso, mais pelo fato
de usar o banco de dados, e não de incluir em cada página
É um desperdício de processamento é SQL usada atoua, joga isso num txt
e roda um while pegando cada linha como link ué, ou joga no xml que pode estruturar
varias coisas em cima do html ..
:ermm:
Quando você precisar vazer um projeto grando vai enteder, não sabe que até este forum aqui da invision usa css e até php direto do Banco Por várias razões até de segurança, e outros como PHPMYADMIN - quando a galera altera um tema no orkut você acha que é como? tudo fica armazenado no BANCO. Este post não é para quem hospeda site em servidor de 10MB e sim para quem tem projetos grandes, "É um desperdício de processamento"; cuidado com suas palavras.
<_< , eles armazenam no banco pra ser configuravel a qualquer momento, e não ter que abrir o código fonte
Isso no caso do invision, se você tá fazendo um projeto grande, coloca todos os css na index úe ..
Tente não refatorar muito a folha de estilos
>
"É um desperdício de processamento"; cuidado com suas palavras.
Claro que é, você vai usar SQL pra buscar um LINK ? ..
Se o problema for ler todos o css, faz um glob na pasta onde eles ficam ..
:lol:
Não mano a ideia do post é outro não é armazenar css em banco, esqueça isso quem quiser faça, mas, a ideia é armazenar por ex: Eu deixo você editar uma div no site colocando no lugar que quiser o aument-la, então guardo apenas as suas configurações da div ex: largura, posição etc. e depois pego direto em uma página css.php sem precisar pegar na própria div. Criar páginas css, js com PHP facilita pegar variáveis direto na página como uma tradução por, ESQUEÇA BD, não é para pegar conteúdo de banco, a ideia é esta Criar páginas css, js com PHP facilita pegar variáveis direto na página como uma tradução.
Sim, isso tem uma aplicação, mas deve ser usado com moderação.
PHP é uma linguagem interpretada e por essa natureza, é LENTO.
Apesar de o banco de dados facilitar na hora de salvar e recuperar os estilos, ele próprio pode se tornar um gargalo.
Imagine um projeto grande, com 20 mil acessos diários (o que não é tão absurdo).
Se cada usuário tiver que ficar carregando estilos do banco a cada requisição de página, sua transferência de dados atingirá patamares estratosféricos.
Mesmo o uso de arquivos comuns diminui a performance do sistema, pois primeiramente o arquivo PHP é lido do HD do servidor, depois é interpretado, depois vai novamente no HD para ler a parte do CSS.
Tendo em vista que leitura de dados em memória secundária é 'n' vezes mais lenta que em memória principal (com n > 1000), já sabemos onde isso vai dar...
Para certos casos, é sim inevitável, mas não vale abusar :thumbsup:
Tem razão rick, sem contar os requests que serão feitos pelo browser, o browser limita a 4
ou seja, você já vai ter um grande desperdício no tráfego de requisições entre cliente, servidor, banco
sendo a sua rota assim ...
Isso eu digo, se você quer alterar estruturas de HTML dinamicamente, ou 'almentar o tamanho da div' como você disse
Tem varias formas de fazer, porem aí já te livra da gordurinha que você cria no banco
Uma delas e um XML, ou XSL que é possível estilizar ..
Pra te falar verdade cara, eu estou me limitando a usar de banco de dados
O Primeiro motivo que a cota já e baixa dependendo do servidor que o cara usa
Segundo que pra maioria das coisas que faço, mesmo sendo mais fácil de manipular informações em um banco de dados
eu utilizo XML pra guardar varias coisas, faço uma distribuição de vários
dados em subdomínios que são acessíveis facilmente, coloco em servidores externos é chamo por SOAP
dependendo da minha necessidade
Entre varias outras coisas que podem ser feitas para melhorar o processamento de todo o site
também pensando bem, o browser limita a 4 requests por arquivo js, css etc ..
isso por domínio, agora se você tem static1, static2, static3 ( tudo pra css, js, xml, wsdl )
seu site iria andar 30% mais rápido a cada arquivo que você tiver distribuído nos servidores
Você falou sobre o orkut, você também já percebeu como ficam as folhas de estilos deles ?
já percebeu que não fica tudo no mesmo servidor ? eles refatoram todo o css, js em vários
subdomínios ou domínios externos mesmo ..
...
Não vejo utilidade nenhuma pra isso, mais pelo fato
de usar o banco de dados, e não de incluir em cada página
É um desperdício de processamento é SQL usada atoua, joga isso num txt
e roda um while pegando cada linha como link ué, ou joga no xml que pode estruturar
varias coisas em cima do html ..
:ermm: