[Plone-IT] html filtrato, in <Button> o <Input> non accetta evento onClick

Giacomo Spettoli giacomo.spettoli a gmail.com
Ven 23 Set 2011 08:54:10 UTC


On 23/09/2011 10:22, danielemod wrote:
> Giacomo Spettoli wrote:
>> On 22/09/2011 13:46, danielemod wrote:
>>> Quali altri filtri in Plone devo
>>> disattivare oltre Input, Button, Script e Applet
>>> per far funzionare un semplice bottone
>>> che funziona da ipertesto nella stessa pagina
>>> provando con il metodo migliore:
>>>
>>> Torna a Indice
>>>
>>>
>>> oppure con il metodo "antico"
>>>
>>>
>>>
>>> Se provo a lanciare il codice fuori Plone funziona alla grande,
>>> dentro Plone appena lancio Aggiorna e Salvo
>>> tornando al codice html sparisce
>>> il testo: onClick="location. href='#heading1'"
>>>
>> ma stai parlando di un'ancora interna alla pagina? Non hai bisogno di
>> nessun javascript (onClick) per quello. Ti basta questo:
>>
>> | Anchor text
>> || site.html#anchor1 Anchor link |
>>
>>
>> Se invece intendi fare altro (cosa? la tua richiesta di aiuto non è
>> molto chiara) e vuoi avere del javascript che faccia altro ti sconsiglio
>> vivamente di metterlo nel testo di un contenuto. Piuttosto, se proprio
>> non hai voglia di fare un prodotto apposta, carica il tuo file js in uno
>> skin layer (va bene il custom) e registralo nel tool "portal_javascript".
>>
>> ciao,
>> Giacomo
>>
>> -- 
>> Giacomo Spettoli
>>
>> twitter: http://twitter.com/giacomospettoli
>> linkedin: http://linkedin.com/in/giacomospettoli
>> company site: http://redomino.com
>> blog: http://www.spettoli.com
>>
>>
>> _______________________________________________
>> Plone-IT mailing list
>> Plone-IT a lists.plone.org
>> https://lists.plone.org/mailman/listinfo/plone-plone-it
>> http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
>>
>
>
>
> Sono quasi emozionato della risposta di Giacomo,
> la prima nel mio caso,
> che evidenzia l'efficienza del forum
>
> Il mio intento semplice, ma complicato per me povero neofita di Plone e di
> HTML,
> non è di creare ancore interne peraltro già presenti e funzionanti per un
> indice,
> ma è di trasformare semplicemente queste ancore dell'indice esistente in
> BOTTONI.
> Cioè
> invece di avere i link con testi
> avere i link con i bottoni.
>
>
> Provando il codice in Plone usando il tag BUTTON  oppure di seguito con il
> tag INPUT:
>
> |<p><button type="button" onClick="location. href='#heading1'">Torna a
> Indice</button></p>
> ||<p><input type="Button" value="Torna a Indice" onClick="location.
> href='#heading1'"></p>|
>
> dentro Plone si trasforma in :
>
> |<p><button type="button">Torna a Indice</button></p>
> ||<p><input type="Button" value="Torna a Indice"></p>|
>
> eliminando nel codice l'evento java: onClick="location. href='#heading1
>
> Premettendo che lo stesso codice all'esterno di Plone funziona,
> forse è questione di sapere quale filtro HTML di Plone
> crea questo annullamento dell'evento onClick che non sono riuscito a trovare
> per provando ad eliminare nei filtri di Plone anche quelli "pericolosi"
> come: Script, Applet.
>
> In allegato c'è un file.txt
> con il codice
> visto che non sono stato capace ad inserirlo qui
> come riferimento.
>
>
>
> ps
> ma come si inserisce in questo forum
> un riferimento a del codice,
> senza che esso vada in esecuzione,
> come hai fatto tu ?
>
> http://plone-regional-forums.221720.n2.nabble.com/file/n6823398/Link_BUTTON_in_Plone_non_funziona.txt
> Link_BUTTON_in_Plone_non_funziona.txt
>

Ciao Daniele,
     ora il tuo usecase è molto più chiaro. Quindi ti ri-consiglio la 
seconda opzione che avevo proposto: un javascript indipendente.

Ti sconsiglio fortemente di consentire del javascript nel testo dei 
contenuti perchè così potrebbe essere inserito da tutti gli utenti, e 
sappiamo tutti che se ci sono almeno 2 tipi di utenti che non dovrebbero 
avere tale potere (imbranati e smanettoni).

Quindi per utilizzare un javascript custom potresti:

- assegnare una classe css ai bottoni del tipo: <input type="button" 
class="mybuttonanchors location-text1"  ...
- vai nella zmi -> in portal_skins  -> cartella custom e aggiungi dalla 
tendina in alto a dx un nuovo "File"
- gli assegni un id del tipo "myfantasticjavascript.js" e lo editi come 
preferisci. Nel codice js farai una cosa simile:

jq(document).ready(function(){
     jq('input.mybuttonanchors').click(function(){
         ...
<previeni qualsiasi comportamento di default>
<prendi la classe location-text1>
<la spezzi e prendi la parte utile>
<redirect>
    });
});

- poi vai in ZMI -> portal_javascript
- in fondo aggiungi una nuova registrazione e nel campo "ID/URL" metti 
l'id che hai scelto per il tuo file js (es. myfantasticjavascript.js)

Probabilmente esisterà un modo più elegante di fare questo e qualcuno ti 
dirà peste e corna di fare modifiche TTW....ma come livello iniziale di 
difficoltà questo è già più che sufficiente. La versione un filo più 
evoluta sarebbe registrare il javascript in un prodotto aggiuntivo sul 
filesystem, in una resource directory e via genericsetup...ma questa è 
un'altra storia e ci arriverai ;)

ciao,
Giacomo

p.s. per quanto riguarda il codice non eseguito credo dipenda dal fatto 
che io rispondo via mail e non dal forum. Se vuoi linkare del codice 
potresti usare servizi come pastie.org e inviare l'url di riferimento.

-- 
Giacomo Spettoli

twitter: http://twitter.com/giacomospettoli
linkedin: http://linkedin.com/in/giacomospettoli
company site: http://redomino.com
blog: http://www.spettoli.com



Maggiori informazioni sulla lista Plone-IT