PASSO A PASSO COM O WC THEMES DINÂMICO AO LAYOUT
Vejam O Passo A Passo Da Criação WC THEMES DINÂMICO.
1° PASSO:
Criar um array com as cores e as variantes.
$cores=[
'styles'=>[
"base"=> '#e51c23',
"lighten-5"=> '#fdeaeb',
etc...
],
'red'=> [
"base"=> '#F44336',
"lighten-5"=> '#FFEBEE',
etc...
]
]
2° PASSO:
crie um arquivo com o modelo do seu css eu crie no formato txt ex:modelo.tpl.txt
.bg {
background-color: {base} !important; }
.bg-text {pre
color: {base} !important; }
Obs: voce pode usar as class do seu tema tipo os do WV! eu usei esta para alterar o efeito do hover no menu.
.main_header nav li:hover,
.main_header nav li a:hover {
color: {darken-2} !important;
background-color: {lighten-4} !important;
}
3° PASSO:
Copiar E Reescrever a
__app/WorkControl/wcView.class
Obs: eu fiz uma copia da class
__app/WorkControl/wcView.class
com O para
__app/Helper/Views.class
Por que disso?
Para poder alterar a extenção do arquivo na função
public function wcLoad($Template,$ext="txt")...
fico assim:
public function wcLoad($Template,$ext="txt") {
$this->Template = file_get_contents(sprintf("%s/%s.tpl.%s",$this->Path,$Template,$ext));
return $this->Template;
}
E na função:
public function wcShow(array $Data, $View) {
$this->setKeys($Data);
$this->setValues();
return $this->ShowView($View);->Alterei aqui adicionei o return;
}
E na função:
//Exibe o template view com echo(Agora Com return)!
private function ShowView($View) {
$this->Template = $View;
$this->Template = str_replace(array_keys(get_defined_constants(true)['user']),
array_values(get_defined_constants(true)['user']), $this->Template);
return str_replace($this->Keys, $this->Values, $this->Template);->Alterei aqui substitui o echo por return;
}
4° PASSO:
Criar a função que vai gerar os temas
$view=new Views(__DIR__);
foreach($array as $key=>$value){
Carrego o modelo
$data=$view->wcShow($value,$view->wcLoad('modelo'));
Carrego Uma copia onde eu estou/css/tema corrente
file_put_contents(sprintf("%s/css/style-%s.css",__DIR__,$key),$data);
Eu tambem fiz uma copia para a pasta _cdn/bootcss/themes assim eu posso usar em todos os temas
Verifico se _cdn/bootcss/themes existe se não existe cria
if(!is_dir(sprintf("%s/_cdn/bootcss/themes",dirname(dirname(dirname(dirname(__FILE__)))),$key))){
mkdir(sprintf("%s/_cdn/bootcss/themes",dirname(dirname(dirname(dirname(__FILE__)))),$key));
}
dai gero o tema dentro de _cdn/bootcss/themes ou outra de sua escolha
file_put_contents(sprintf("%s/_cdn/bootcss/themes/style-%s.css",dirname(dirname(dirname(dirname(__FILE__)))),$key),$data);
}
5° PASSO:
Na index principal dosite eu uma verificao pra ver se o tema escolhido existe e dai carrego eu
tambem verifico se e o tema que eu vou usar os temas css gerado.
Eu tambem crie duas contants para guardar o skin selecionado, ex:THEME_COLOR=red e a variante THEME_COLOR_VARIANT.
Na index:
< ?php if(THEME=="wc_dinamic" && file_exists(sprintf("_cdn/bootcss/themes/style-%s.css",THEME_COLOR))):? >
< link rel="stylesheet" href="< ?=sprintf("%s/_cdn/bootcss/themes/style-%s.css",B ASE,T HEME_COLOR); ? >"/>
< ?php endif;?>
Valeu Galerinha! #BoraProgamar
Veja Também:
Artigos Relacionados!




Olá, deixe seu comentário para WORK CONTROL THEMES DINÂMICO - DEV