Joomla.it Forum

Joomla! 3 => I Template di Joomla! 3 => : miciomao 24 Nov 2014, 23:31:15

: gestione parametri del template
: miciomao 24 Nov 2014, 23:31:15
Ciao a tutti.
Sto realizzando un template da zero e  vorrei poterne controllare il comportamento dal backend (p.es colori, numero colonne, font di default ecc.) con dei parametri nel file templateDetails.xml, per esempio per  la gestione del colore di sfondo imposto una variabile:
:
<config>
<fields name="params">
<fieldset name="advanced">
<field name="backgroundcolor" type="color" default="#eee" label="colore background" description="il colore di background del body"/>
</fieldset>
</fields>
</config>

se adesso nell' index.php del template inserisco un'istruzione del tipo:
:
<?php $colore $this->params->get('backgroundcolor'); 
echo 
'colore ',$colore?>

posso visualizzare il valore del parametro impostato.

quello che non riesco a fare e' recuperare il suddetto valore anche nel file parametri_css.php dove dovrei gestire i css dinamici. Il file inizia con la riga:
:
<?php header("Content-type: text/css"); ?> e seguono istruzioni css scritte in php che funzionano benissimo,
l'unica cosa che proprio non mi riesce e' il recupero dei parametri Ovviamente se non riesco a utilizzare i parametri impostati tutto l'ambaradan e' inutile.....
Dove sbaglio?

In anticipo, grazie
: Re:gestione parametri del template
: conti1 28 Nov 2014, 22:38:14
ciao
non so tu come stia scivendo quel xml

maio di solito se serbe lo faccio in questa maniera

:
  <field name="backgroundVariation" type="list" default="Blue" label="TPL_SCROLL_BACKGROUND_LAYOUT" description="BACKGROUND variation ">
                    <option value="Blue">Default</option>
                    <option value="bluee">blue</option>
                    <option value="rosso">Red</option>                   
                    <option value="white">White</option>
                   
                        </field>

nel index
ci metto
:
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/<?php echo $this->params->get('backgroundVariation'); ?>.css" type="text/css" />
   

e poi crei i vari css
vedi che i css devono avere  inomi  uguali a quelli messi  nel file xml

ps: devi far caricare i css che hai creato
ps: questo  esempio postato  e per un template di joomla 2.5  ma joomla 3 non ci dovrebbe esere molta differenza
: Re:gestione parametri del template
: miciomao 29 Nov 2014, 17:54:03
ciao conti1,
il sistema che tu suggerisci  consente di richiamare nell'index.php un determinato foglio di stile in base al valore del parametro.

Io sto cercando invece di rendere disponibile all'interno del foglio di stile il valore del parametro per usarlo direttamente e rendere cosi il css dinamico.

Sulla scrittura dell' xml e  sull'uso del parametro nel file index.php non ho problemi, cosi' come riesco a utilizzare variabili locali nel foglio di stile scritto in php.
Quello che non riesco a fare e' passare il valore del paramentro nel foglio di stile per utilizzarlo da li'.



: Re:gestione parametri del template
: conti1 29 Nov 2014, 18:40:20
fammi capire
tu allora vuoi fare il cambio dello stile agli utenti dimmi se sbaglio esempio rosso verde giallo   che in base  a cosa cliccano  cambia colore .
altrimenti non oh capito cosa vuoi fare
: Re:gestione parametri del template
: miciomao 29 Nov 2014, 21:22:32
no,  la gestione viene fatta da backend, mettendo nell'xml questa direttiva:
:
<field name="backgroundcolor" type="color" default="#eee" label="colore background" description="il colore di background del body"/>fa si che chi ha i privilegi, dalla gestione stili del template, nella linguetta 'avanzate' puo' scegliere un colore qualsiasi.

il codice di quel colore lo posso recuperare se metto nell'head dell'index.php

:
<?php  $colore $this->params->get('backgroundcolor'); ?>
<style type ="text/css">
   body { background-color: <?php echo $colore ?> ; }
</style> 
 
lo sfondo assume il colore impostato nel backend; e fin qui tutto bene, funziona come previsto.

Se pero' voglio fare la stessa operazione con un css esterno gestito in php, come detto nei post precedenti, non so come recuperare il valore del parametro.

: Re:gestione parametri del template
: tomtomeight 29 Nov 2014, 22:06:28
Css esterno? O forse intendi css inline.
: Re:gestione parametri del template
: miciomao 29 Nov 2014, 23:48:05
no quello che vorrei utilizzare e' esterno:
:
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/miotemplate/css/miostile.php" type="text/css" />
: Re:gestione parametri del template
: tomtomeight 30 Nov 2014, 07:40:18
Se css perché  metti estensione .php, deve essere .css o se li vuoi compilati .less
: Re:gestione parametri del template
: miciomao 30 Nov 2014, 09:34:18
perche i parametri che desidero utilizzare per la scrittura del css sono variabili php quindi mi sembrava logico usare php per generare il css (http://css-tricks.com/css-variables-with-php/)
ovviamente considero ogni soluzione alternativa.
quello che mi serve e' portare nel css il valore del parametro che in index.php recupero con
:
<?php  $colore $this->params->get('backgroundcolor'); ?>
: Re:gestione parametri del template
: tomtomeight 30 Nov 2014, 10:25:25
Mah non mi sembra sia come dici te, il php richiama le classi come variabili ed i file .php devono essere richiamati come include. In ogni caso potresti vedere come sono impostate le variabili ed il loro utilizzo nel framework gantry.