Ciao,
sapete se è possibile assegnare una classe CSS ad una Textarea creata con la funzione CreateTextArea()?
Nelle Apidoc (http://www.cmsmadesimple.org/apidoc/) sembra che il 5° parametro serva proprio a specificare la classe. Ma non funziona.
Inoltre, non funziona nemmeno l'impostazione di righe e colonne.
Il problema che voglio risolvere, comunque, è quello di NON visualizzare il pulsante "Scambia WYSIWYG on/off" SOLO per alcune TextArea o magari solo per un modulo. Se disabilito il pulsante dalla configurazione di TinyMCE, me lo toglie ovviamente dappertutto.
Qualche idea?
grazie
[SOLVED] CreateTextArea e classe css
Moderator: magallo
[SOLVED] CreateTextArea e classe css
Last edited by nervino on Sat Sep 05, 2009 3:32 pm, edited 1 time in total.
Re: CreateTextArea e classe css
Ho fatto altre prove ed ho visto che se si specifica l'ultimo parametro (quello per forzare l'editor), allora vengono passati anche i parametri classe ecc. Ma le impostazioni di righe e colonne continuano ad essere sempre sovrascritte.
Esempi
Se forzo un editor inesistente, viene passata la classe CSS, ma ovviamente non funziona il WYSIWYG
input:
output:
Se forzo TinyMCE, vedo il WYSIWYG ma non la classe CSS
input:
output:
Esempi
Se forzo un editor inesistente, viene passata la classe CSS, ma ovviamente non funziona il WYSIWYG
input:
Code: Select all
$this->CreateTextArea(true, $id, 'ciao','Data_All', 'nomeclasse', 'htmlid','encoding','stylesheet','80','20','wysiwyg_fasullo')
Code: Select all
<p class="pageinput"><textarea name="m1_Data_All" cols="80" rows="20" class="nomeclasse" id="htmlid">ciao</textarea>
Se forzo TinyMCE, vedo il WYSIWYG ma non la classe CSS
input:
Code: Select all
$this->CreateTextArea(true, $id, 'ciao','Data_All', 'nomeclasse', 'htmlid','encoding','stylesheet','80','20','TinyMCE')
output:
Code: Select all
<textarea id="m1_Data_All" name="m1_Data_All" cols="80" rows="25" >ciao</textarea>
<br/>
<input type="checkbox" checked="checked" onclick="toggleEditor('m1_Data_All');" id="check_m1_Data_All" />
<label for="check_m1_Data_All">Scambia WYSIWYG on/off</label>
Re: CreateTextArea e classe css
Ho risolto così:
Altezza/larghezza della singola textarea
ho visto che nel file /lib/classes/class.module.inc.php, che crea la funzione CreateTextArea, per questa funzione c'è anche il parametro (non documentato) $addtext=''.
Quindi aggiungo la classe alla textarea con
e nel template posso sovrascrivere la sua altezza:
Per nascondere checkbox e label "Scambia WYSIWYG on/off" per singola Textarea, ho usato i seguenti selettori CSS.
Ho dovuto passarmi anche l'id del modulo e ricatturarlo nel template (se a qualcuno viene in mente un metodo migliore gli sarei grato se volesse postarlo)
Assegno l'id a Smarty:
e nel template:
Altezza/larghezza della singola textarea
ho visto che nel file /lib/classes/class.module.inc.php, che crea la funzione CreateTextArea, per questa funzione c'è anche il parametro (non documentato) $addtext=''.
Quindi aggiungo la classe alla textarea con
Code: Select all
$this->CreateTextArea(true, $id, $Data_All,'Data_All', '', '','','80','20','','','','class="data_all"'));
Code: Select all
.data_all {
height:5em;
}
Per nascondere checkbox e label "Scambia WYSIWYG on/off" per singola Textarea, ho usato i seguenti selettori CSS.
Ho dovuto passarmi anche l'id del modulo e ricatturarlo nel template (se a qualcuno viene in mente un metodo migliore gli sarei grato se volesse postarlo)
Assegno l'id a Smarty:
Code: Select all
$this->smarty->assign('myid', $id);
Code: Select all
input[type="checkbox"][id="check_{/literal}{$myid}{literal}Data_All"],[id="check_{/literal}{$myid}{literal}Note"] {
visibility:hidden;
display:none;
}
label[for="check_{/literal}{$myid}{literal}Data_All"],[for="check_{/literal}{$myid}{literal}Note"] {
visibility:hidden;
display:none;
}