News:

Want to get involved in developing SMF? Why not lend a hand on our GitHub!

Main Menu

firme sotto spoiler

Started by marcoaureliocommodo, January 21, 2012, 03:13:39 PM

Previous topic - Next topic

marcoaureliocommodo

è possibile inserire tutte le firme in uno spoiler?intendo se nella visualizzazione del post le firme possano essere viste ma sotto...spolier
se si che div devo inserire?

grazie

emanuele

Guardando il tema di default, tutte le firme sono contenute in un div a cui è assegnata la classe "signature", quindi io metterei qualcosa di questo genere verso la fine della pagina:
sigs = document.getElementsByClassName('signature');

for(var i=0;i<sigs.length;i++)
sigs[i].style.display='none';

e poi dovrai aggiungere un pulsante per visualizzarle...


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

emanuele

Ohh...però è divertente:
sigs = document.getElementsByClassName('signature');

for(var i=0;i<sigs.length;i++)
{
sigs[i].style.display='none';
sigs[i].parentNode.innerHTML += '<a onclick="return showSign(this);">mostra/nascondi firma</a>';
}

function showSign(elem)
{
sign = elem.parentNode.getElementsByClassName('signature');
if (sign[0].style.display == 'none')
sign[0].style.display='';
else
sign[0].style.display='none';
}


Un po' brutto da vedersi, ma io e javascript non andiamo molto d'accordo... :P


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

quindi copio il codice e lo incollo alla fine della pagina, prima del tag php di chiusura giusto?

ho provato a metterlo nel file diplay.template.php e nel file personalmessage.template.php ma mi dice errore nella scansione del template se lo metto nel 1° e nel secodno file non succede nulla...

emanuele

Beh, questo è solo il javascript, per metterlo in un template dovrai metterlo in formato "php" dentro in qualche echo vedo la fine di display.template.php.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

l'ultimo echo è questo

echo '
// ]]></script>';


quindi io lo inserisco così giusto?

echo '
// ]]></script>';
sigs = document.getElementsByClassName('signature');

for(var i=0;i<sigs.length;i++)
{
sigs[i].style.display='none';
sigs[i].parentNode.innerHTML += '<a onclick="return showSign(this);">mostra/nascondi firma</a>';
}

function showSign(elem)
{
sign = elem.parentNode.getElementsByClassName('signature');
if (sign[0].style.display == 'none')
sign[0].style.display='';
else
sign[0].style.display='none';
}
}

emanuele

echo '
sigs = document.getElementsByClassName(\'signature\');

for(var i=0;i<sigs.length;i++)
{
sigs[i].style.display=\'none\';
sigs[i].parentNode.innerHTML += \'<a onclick="return showSign(this);">mostra/nascondi firma</a>\';
}

function showSign(elem)
{
sign = elem.parentNode.getElementsByClassName(\'signature\');
if (sign[0].style.display == \'none\')
sign[0].style.display=\'\';
else
sign[0].style.display=\'none\';
}
// ]]></script>';


Notare il fatto che ho davanti a tutti gli apici ho messo uno "\".


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

ho provato a sostituire l'echo di diplay.template.php ma non succede nulla

emanuele

La prima immagine è prima di schiacciare, la seconda è dopo aver premuto.

Ovviamente come ho detto non è niente di finito e c'è da lavorarci su un po' per abbellirlo. ;)

Ed ho usato esattamente il codice che ho postato sopra enl punto da te indicato sul tema di default.
Magari tu ne stai usando uno personalizzato?

Ed ho usato Opera, magari con un altro browser non funziona...ma dubito...(al massimo potrebbe non funzionare con IE :P)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

#9
funziona, grazie mille.

per far restare però la scritta mostra/nascondi firma, sempre sopra alla firma, come devo fare?
ho un'altra doamnda: se volessi far comparire la scritta mostra/nascondi firma, sotto la linea sottile che si trova immediatamente  sotto a dove ci sono gli ip ecc...?

emanuele

#10
Quote from: marcoaureliocommodo on January 22, 2012, 06:26:13 AM
per far restare però la scritta mostra/nascondi firma, sempre sopra alla firma, come devo fare?
rimpiazza:
sigs[i].parentNode.innerHTML += \'<a onclick="return showSign(this);">mostra/nascondi firma</a>\';
con:
var currentHTML = sigs[i].parentNode.innerHTML;
sigs[i].parentNode.innerHTML = \'<a onclick="return showSign(this);">mostra/nascondi firma</a>\' + currentHTML;

Magari puoi mettergli un <br /> dopo il </a> per distanziarlo un po'.

Quote from: marcoaureliocommodo on January 22, 2012, 06:26:13 AM
ho un'altra doamnda: se volessi far comparire la scritta mostra/nascondi firma, sotto la linea sottile che si trova immediatamente  sotto a dove ci sono gli ip ecc...?
Non è possibile perché quella linea è definita nello stile della classe "signature", usando quello script che ti ho dato vai a nascondere in toto il div con quella classe (che senza modifiche ulteriori al template è l'unica cosa che puoi fare, altrimenti puoi aggiungere un ulteriore dive interno a quello a cui è assegnata la classe "signature" e lavorare su quello) e quindi anche la riga...


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

grazie mille ora funziona perfettamente  ;D

Advertisement: