[SOLVED] CreateTextArea e classe css

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

Post Reply
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

[SOLVED] CreateTextArea e classe css

Post by nervino »

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
Last edited by nervino on Sat Sep 05, 2009 3:32 pm, edited 1 time in total.
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

Re: CreateTextArea e classe css

Post by nervino »

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:

Code: Select all


$this->CreateTextArea(true, $id, 'ciao','Data_All', 'nomeclasse', 'htmlid','encoding','stylesheet','80','20','wysiwyg_fasullo')

output:

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>


nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

Re: CreateTextArea e classe css

Post by nervino »

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

Code: Select all


$this->CreateTextArea(true, $id, $Data_All,'Data_All', '', '','','80','20','','','','class="data_all"'));

e nel template posso sovrascrivere la sua altezza:

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);

e nel template:

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;
}

Post Reply

Return to “Italian - Italiano”