Joomla.it Forum
Joomla! 3 => I Template di Joomla! 3 => : 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
-
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
-
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'.
-
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
-
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.
-
Css esterno? O forse intendi css inline.
-
no quello che vorrei utilizzare e' esterno:
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/miotemplate/css/miostile.php" type="text/css" />
-
Se css perché metti estensione .php, deve essere .css o se li vuoi compilati .less
-
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'); ?>
-
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.