Personalizzare il menù delle dimensioni del testo [Quirks Mode]

« Older   Newer »
  Share  
view post Posted on 17/7/2012, 02:00
Avatar

Staff

Group:
ForumFree Staff
Posts:
109,436
Location:
Slayer's Flag

Status:


Attenzione

Questa guida è da utilizzare per i forum in Quirks Mode (Vecchio Template)

se il vostro forum utilizza una skin del nuovo template (Standard Mode) utilizzate la guida linkata qui sotto

Personalizzare il menù delle dimensioni del testo [Standard Mode]

***




In questa discussione trovate un javascript (in tre diverse versioni) che vi permetterà di personalizzare il menù Dimens. (Dimensioni) del modulo di inserimento messaggi e del modulo di risposta rapida.

La guida si divide in quattro parti, nel primo post trovate una introduzione, dove verranno spiegate alcune caratteristiche del BBCode size utilizzato su ForumFree e saranno fornite alcune semplici spiegazioni sul come si dimensiona il testo, il contenuto dell'introduzione vi sarà d'aiuto nell'utilizzo pratico del javascript.

Introduzione


Il menù a tendina Dimens. (Dimensioni) permette l'inserimento di un tag BBCode che può modificare le dimensioni del testo presente in un post, si tratta di un menù utile, su ForumFree, per modificare rapidamente le dimensioni di un testo di breve o media lunghezza, o anche di specifiche parole o frasi da far risaltare all'interno di un testo, con testi molto lunghi o che richiedano una formattazione particolarmente curata, si ottengono risultati migliori via CSS, utilizzando una stile in linea o attribuendo una classe al tag HTML che contiene il testo, classe a cui verranno aggiunti gli appositi attributi in Colori e stili, questo BBCode è
CODICE
[size=NUMERO][/size]

le dimensioni del testo varieranno a seconda del valore di NUMERO, di default sono presenti tre opzioni

1) size=1 corrispondente al testo Piccolo visualizzato nel menù a tendina
CODICE
[size=1][/size]

utilizzandolo per inserire un testo
CODICE
[size=1]testo di prova[/size]

il risultato è questo

testo di prova

2) size=7 corrispondente al testo Medio visualizzato nel menù a tendina
CODICE
[size=7][/size]

utilizzandolo per inserire un testo
CODICE
[size=7]testo di prova[/size]

il risultato è questo

testo di prova

3) size=14 corrispondente al testo Grande visualizzato nel menù a tendina
CODICE
[size=14][/size]

utilizzandolo per inserire un testo
CODICE
[size=14]testo di prova[/size]

il risultato è questo

testo di prova

questi tre valori sono sufficenti per l'utilizzo più semplice di quel tag, il porre in evidenza e/o far risaltare singole parole o brevi frasi all'interno di un testo, o anche per evidenziare un breve messaggio o un paragrafo all'interno di un messaggio lungo, per una regolazione più precisa delle dimensioni, è possibile modificare manualmente il valore del tag size prima di inviare il messaggio, i valori possibili vanno da un minimo di 1 (il valore Piccolo del menù a tendina) ad un massimo di 23, potete vedere qui i 23 testi di esempio
CITAZIONE
testo 1
testo 2
testo 3
testo 4
testo 5
testo 6
testo 7
testo 8
testo 9
testo 10
testo 11
testo 12
testo 13
testo 14
testo 15
testo 16
testo 17
testo 18
testo 19
testo 20
testo 21
testo 22
testo 23

occorre specificare (servirà per meglio comprendere l'utilizzo di una delle versioni del javascript) che i tag BBCode sono stati creati come semplificazione dell'HTML, per essere compresi ed utilizzati dagli utenti dei forum, e che non vengono letti direttamente dai browsers, perchè tale lettura sia possibile il tag BBCode viene convertito, quando il messaggio inserito nel forum viene salvato sul server, nel tag HTML che rappresenta (nel caso di ForumFree, si tratta di un semplice span, a cui vengono aggiunti, tramite uno stile in linea, gli attributi del testo), e anche il valore numerico deve essere convertito in una misura che i browsers possano comprendere.

Le unità di misura delle dimensioni del testo di possono dividere in due categorie principali, assolute o relative, su ForumFree vengono utilizzate principalmente due unità di misura assolute, i punti (pt) e i pixel (px) e, in minor misura, una relativa, a cui accenneremo nella sezione dedicata alla seconda versione del javascript, per ora basterà dire che con il BBCode ForumFree le dimensioni vengono converite in punti (pt), partendo da un minimo di 8pt (size=1) e arrivando ad un massimo di 30pt (size=23), praticamente per passare dal valore del BBCode al valore espresso in punti basta fare valore del BBCode + 7, quindi i tre valori base del menù saranno

Piccolo
HTML
[size=1]testo 1[/size]

dimensione del testo di 8pt, visualizzando il sorgente del messaggio dopo averlo inviato, vedremo infatti che il BBCode è stato convertito in questo HTML
HTML
<span style="font-size: 8pt; line-height: 100%;">1</span>


Medio
HTML
[size=7]testo 7[/size]

dimensione del testo di 14pt, visualizzando il sorgente del messaggio dopo averlo inviato, vedremo infatti che il BBCode è stato convertito in questo HTML
HTML
<span style="font-size: 14pt; line-height: 100%;">14</span>


Grande
HTML
[size=14]testo 14[/size]

dimensione del testo di 21pt, visualizzando il sorgente del messaggio dopo averlo inviato, vedremo infatti che il BBCode è stato convertito in questo HTML
HTML
<span style="font-size: 21pt; line-height: 100%;">14</span>


il rendere in punti (come nella stampa su carta) le dimensioni del testo stabilite tramite le opzioni del menù a tendina e, più in generale, tramite il BBCode size risale alle origini di ForumFree, e prima ancora, al software da cui ForumFree è stata sviluppata (in quelle board, nei messaggi si potevano inserire soltanto tag BBCode, non si poteva usare direttamente l'HTML), e nelle skin originali (e in quelle direttamente derivate da essere) anche la normale dimensione dei caratteri nei messaggi era stabilita in punti, questo consentiva agli autori di skin di "armonizzare" la dimensione scelta, di base, per il testo, con le opzioni del menù.

Con lo sviluppo dello skinning su ForumFre, arrivato a livelli ben superiori alle vecchie skin di base, e anche con il diffondersi dell'abitudine di stabilire le dimensioni del testo in pixel, e non in punti, la cura di questo particolare è stata, di fatto abbandonata, dato che quel menù ha solo tre opzioni, la cosa non ha costituito un problema, però utilizzando i javascript che trovate nei prossimi capitoli della guida potrete non solo personalizzare le opzioni, ma anche aumentarne il numero, quindi potrebbe risultare utile "l'armonizzare" le opzioni che inserirete con le dimensioni del testo previste, per i messaggi, dalla skin utilizzata sul vostro forum, a questo scopo viene fornita qui una piccola tabella di conversione approssimativa fra il testo dimensionato in punti (pt) e quello dimensionato in pixel (px)

PuntiPixelsPuntiPixels
6pt8px16pt22px
7pt9px17pt23px
7.5pt10px18pt24px
8pt11px20pt26px
9pt12px22pt29px
10pt13px24pt32px
10.5pt14px26pt35px
11pt15px27pt36px
12pt16px28pt37px
13pt17px29pt38px
13.5pt18px30pt40px
14pt19px32pt42px
14.5pt20px34pt45px
15pt21px36pt48px


Passiamo ora alla seconda parte della guida, cioè a presentare la versione base del javascript che modifica il menù Dimensioni
 
Web  Top
view post Posted on 17/7/2012, 02:00
Avatar

Staff

Group:
ForumFree Staff
Posts:
109,436
Location:
Slayer's Flag

Status:


Come personalizzare il menù delle dimensioni del testo

Versione base, personalizzazione del tag BBCode size


Per personalizzare il menù Dimensioni, inserite questo javascript
CODICE
<script type="text/javascript"><!--
if( document.REPLIER ) {
size = document.REPLIER.SIZE;
size.onchange = function() { tag('[size='+this.options[this.selectedIndex].value+']','[/size]'); this.selectedIndex=0; document.REPLIER.Post.focus(document.REPLIER.Post.caretPos) };
size.options.item(1).style.display='none';
size.options.item(2).style.display='none';
size.options.item(3).style.display='none';
}
if(document.URL.indexOf('act=Post')!=-1||document.URL.indexOf('?t=')!=-1||document.URL.indexOf('act=Msg&CODE=04')!=-1)
{
var size=new Array("1","4","7","14","21");
var nomi={1: 'ExtraSmall', 4: 'Small', 7: 'Medium', 14: 'Large', 21: 'ExtraLarge'}

var y=document.getElementsByName("SIZE")[0];
for(i=0; i<size.length; i++)
y.options[y.options.length]=new Option(nomi[size[i]] ,size[i]);
y.options[y.options.length - 1].style.size =size[i];
}
//--></script>

in Amministrazione > Grafica > Codice HTML > Codice HTML che sarà mostrato in FONDO a tutte le pagine, lo script di esempio inserisce 5 valori, i tre di base, size=1, size=7 e size=14, un valore intermedio fra i primi due, size=4, e il size=21, passeremo ora ad analizzarlo e a spiegare come modificarlo per inserire il numero e il tipo di dimensioni desiderate.

Lo script consiste in due sezioni distinte, la prima, su cui non è necessario intervenire, sovrascrive il menù Dimensioni di ForumFree, nascondendo le tre opzioni preimpostate, la seconda sezione è quella che ci consente di inserire il numero ed il tipo di opzioni da noi desiderate, in questa sezione le parti da modificare sono due, nella prima

var size=new Array("1","4","7","14","21");

vanno inseriti i valori numerici (nell'esempio indicati in blu) che vogliamo vengano assegnati alle opzioni del menù a tendina, come potete vedere vanno inseriti fra doppi apici e separati con una virgola dal valore che li precede, qui un esempio con 9 valori

var size=new Array("1","3","5","7","9,"11,"13,"15,"17");

ovviamente potete inserire i valori che preferite, si consiglia di inserirli in ordine crescente, in modo che nel menù a tendina vengano visualizzati a "scendere", dal minore al maggiore, ricordate che il valore minimo è 1 (8 punti) e il valore massimo è 23 (30 punti), la seconda parte da modificare è questa

var nomi={1: 'ExtraSmall', 4: 'Small', 7: 'Medium', 14: 'Large', 21: 'ExtraLarge'}

che serve ad abbinare ad ogni dimensione un corrispondente testo che verrà visualizzato nel menù a tendina (esattamente come i testi Piccolo, Medio e Grande del menù standard) qui potete inserire i termini che preferite, evitate termini troppo lunghi (che potrebbero causare deformazioni del menù) ed è ovviamente consigliato l'utilizzo di termini che descrivano la dimensione inserita, come potete vedere le dimensioni inserite nella prima parte vanno qui ripetute, dopo ogni valore (in blu) inserite i due punti e lasciate uno spazio, il nome che lo segue va inserito fra apici semplici, in questo modo 'ExtraSmall', separando il nome dal valore sucessivo con una virgola, è teoricamente possibile inserire tutti i possibili valori supportati dal BBCode size (da 1 a 23), per non allungare troppo il menù è comunque consigliabile non inserire più di una dozzina di opzioni.

Terminata la descrizione del'utilizzo del javascript si può passare alla terza parte di questa guida, dove verrà presentata la prima versione alternativa dello script, versione di utilizzo leggermente più complesso, in quanto sostituisce il BBCode con un tag HTML che consente alcune personalizzazioni.
 
Web  Top
view post Posted on 17/7/2012, 02:01
Avatar

Staff

Group:
ForumFree Staff
Posts:
109,436
Location:
Slayer's Flag

Status:


Come personalizzare il menù delle dimensioni del testo

Versione alternativa, con l'utilizzo diretto di un tag HTML



Questa versione alternativa ha lo stesso scopo della versione base, per personalizzare il menù Dimensioni, inserite questo javascript
CODICE
<script type="text/javascript"><!--
if( document.REPLIER ) {
size = document.REPLIER.SIZE;
size.onchange = function() { tag('<span style="font-size:'+this.options[this.selectedIndex].value+'pt\;line-height: 100%\;">','<\/span>'); this.selectedIndex=0; document.REPLIER.Post.focus(document.REPLIER.Post.caretPos) };
size.options.item(1).style.display='none';
size.options.item(2).style.display='none';
size.options.item(3).style.display='none';
}
if(document.URL.indexOf('act=Post')!=-1||document.URL.indexOf('?t=')!=-1||document.URL.indexOf('act=Msg&CODE=04')!=-1)
{
var size=new Array("8","11","14","21","28");
var nomi={8: 'ExtraSmall', 11: 'Small', 14: 'Medium', 21: 'Large', 28: 'Huge'}

var y=document.getElementsByName("SIZE")[0];
for(i=0; i<size.length; i++)
y.options[y.options.length]=new Option(nomi[size[i]] ,size[i]);
y.options[y.options.length - 1].style.size =size[i];
}
//--></script>

in Amministrazione > Grafica > Codice HTML > Codice HTML che sarà mostrato in FONDO a tutte le pagine, la differenza, rispetto alla versione base, è che non viene più utilizzato il tag BBCode size, lo script inserisce direttamente il tag HTML equivalente, potete vedere qui la differenza fra i due script, versione base
CODICE
size.onchange = function() { tag('[size='+this.options[this.selectedIndex].value+']','[/size]');

versione alternativa
CODICE
size.onchange = function() { tag('<span style="font-size:'+this.options[this.selectedIndex].value+'pt\;line-height: 100%\;">','<\/span>');

il tag inserito non sarà questo
CODICE
[size=NUMERO][/size]

ma questo
HTML
<span style="font-size: NUMEROpt; line-height: 100%;"></span>

i vantaggi offerti da questa versione sono

1) non si è limitati alle dimensioni supportate dal BBCode, si può scendere sotto agli 8 punti (sconsigliato) e/o salire sopra ai 30 punti

2) si possono sfruttare dimensioni espresse anche con i mezzi punti, esempio 10.5 (il decimale va separato con un punto, e non con una virgola)

3) si possono sostituire le dimensioni espresse in punti, con dimensioni espresse in pixel, modificando questa parte
CODICE
<span style="font-size:'+this.options[this.selectedIndex].value+'pt\;

basta sostituire il pt (punti) con unpx (pixel)
CODICE
<span style="font-size:'+this.options[this.selectedIndex].value+'px\;

Le due variabili, quella delle dimensioni

var size=new Array("8","11","14","21","28");

e quella dei nomi che appariranno nel menù a tendina

var nomi={8: 'ExtraSmall', 11: 'Small', 14: 'Medium', 21: 'Large', 28: 'Huge'}

funzionano con le stesse modalità già spiegate per la versione base, l'unica differenza è costituita dal fatto che i valori numerici sono dimensioni espresse in punti (o pixel) e non valori del BBCode, passiamo ora alla quarta parte della guida, che contiene la seconda (e più complessa) versione alternativa di questo script
 
Web  Top
view post Posted on 17/7/2012, 02:03
Avatar

Staff

Group:
ForumFree Staff
Posts:
109,436
Location:
Slayer's Flag

Status:


Come personalizzare il menù delle dimensioni del testo

Seconda versione alternativa, con l'utilizzo diretto di un tag HTML a cui vengono attribuiti dei selettori di classe


In questa quarta parte della guida, trovate la versione più complessa (e personalizzabile) dello script, questa versione non inserisce direttamente un tag che permetta di regolare le dimensioni del testo, quello che viene inserito è uno span generico, senza stili in linea, a cui può, però, essere attribuito un selettore di classe, il risultato sarà una cosa di questo tipo
HTML
<span class="selettoreclasse" style="line-height: 100%;"></span>

aggiungerete poi il selettore di classe in colori e stili, dove potrete attribuirgli le caratteristiche che desiderate.

Con questo script potete quindi personalizzare a vostra discrezione ognuna delle opzioni di quel menù a tendina, utilizzando, se volete, diverse unità di misura per le varie opzioni, e aggiungendo, ad ogni opzione, personalizzazioni diverse dal semplice dimensionamento del testo (tipo di font, colore, corsivo, eccetra), postiamo ora lo script con delle opzioni di esempio, questa parte
CODICE
<script type="text/javascript"><!--
if( document.REPLIER ) {
size = document.REPLIER.SIZE;
size.onchange = function() { tag('<span class="'+this.options[this.selectedIndex].value+'" style="line-height: 100%\;">','<\/span>'); this.selectedIndex=0; document.REPLIER.Post.focus(document.REPLIER.Post.caretPos) };
size.options.item(1).style.display='none';
size.options.item(2).style.display='none';
size.options.item(3).style.display='none';
}
if(document.URL.indexOf('act=Post')!=-1||document.URL.indexOf('?t=')!=-1||document.URL.indexOf('act=Msg&CODE=04')!=-1)
{
var size=new Array("extrasmall","small","medium","large","huge");
var nomi={extrasmall: 'ExtraSmall', small: 'Small', medium: 'Medium', large: 'Large', huge: 'Huge'}

var y=document.getElementsByName("SIZE")[0];
for(i=0; i<size.length; i++)
y.options[y.options.length]=new Option(nomi[size[i]] ,size[i]);
y.options[y.options.length - 1].style.size =size[i];
}
//--></script>

va sempre inserita in Amministrazione > Grafica > Codice HTML > Codice HTML che sarà mostrato in FONDO a tutte le pagine, come potete vedere è simile alla versione precedente, la principale differenza è nell'utilizzo delle due variabili, in questa

var size=new Array("extrasmall","small","medium","large","huge");

non vanno inseriti i valori numeri di dimensione, ma i selettori di classe che volete utilizzare, l'altra

var nomi={extrasmall: 'ExtraSmall', small: 'Small', medium: 'Medium', large: 'Large', huge: 'Huge'}

serve sempre per personalizzare il testo che appare nel menù a tendina, ad ogni selettore di classe abbinerete il testo corrispondente, fatto questo, aggiungete, in colori e stili, i selettori di classe utilizzati
CODICE
.extrasmall {font-family: verdana; font-size: 8pt; color: #FF0000}
.small {font-family: arial; font-size: 11pt; color: #00FF00}
.medium {font-family: tahoma; font-size: 14pt; color: #0000FF}
.large {font-family: helvetica; font-size: 21pt; color: #FF00FF}
.huge {font-family: courier; font-size: 28pt; color: #FFFF00}

a cui aggiungerete gli attributi desiderati, come potete vedere, in quelli di esempio, ad ogni classe corrisponde non solo una diversa dimensione del testo, ma anche un diverso tipo di font e un diverso colore del testo

Opzionalmente, ma è sconsigliato, potete aggiungere le classi non in colori e stili, ma in codice HTML, utilizzando una piccola dichiarazione di stile inseribile in Codice HTML che sarà mostrato in CIMA a tutte le pagine
CODICE
<style type="text/css">.extrasmall {font-family: verdana; font-size: 8pt; color: #FF0000}
.small {font-family: arial; font-size: 11pt; color: #00FF00}
.medium {font-family: tahoma; font-size: 14pt; color: #0000FF}
.large {font-family: helvetica; font-size: 21pt; color: #FF00FF}
.huge {font-family: courier; font-size: 28pt; color: #FFFF00}</style>


infine, potete aggiungere un'altra personalizzazione al testo che apparirà nel menù a tendina (attenzione, si tratta di un metodo che non è supportato da tutti i browsers), aggiungendo, in colori e stili (o nella dichiarazione di stile) questi selettori di attributo
CODICE
.codebuttons [value="extrasmall"] {font-family: verdana; color: #FF0000}
.codebuttons [value="small"] {font-family: arial; color: #00FF00}
.codebuttons [value="medium"] {font-family: tahoma; color: #0000FF}
.codebuttons [value="large"] {font-family: helvetica; color: #FF00FF}
.codebuttons [value="huge"] {font-family: courier; color: #FFFF00}

le modifiche effettuate con questi selettori si applicheranno al testo visibile nel menù a tendina (identificato, nel foglio di stile del vostro forum, con la classe codebuttons, a cui aggiungerete lo specifico valore delle varie opzioni di quel menù, cioè i selettori di classe che avrete inserito nella variante nomi del primo script
 
Web  Top
3 replies since 17/7/2012, 02:00   1619 views
  Share