emoticons

Domande sulle funzionalità di backend: amministrazione utenti e corsi, certificati, iscrizioni, report, ...
Post Reply
User avatar
kingbluz
FormaLms User
Posts: 216
Joined: Sat Dec 08, 2012 5:08 pm
Version: forma.lms 2.0
Location: Milano, Italy

emoticons

Post by kingbluz »

Ciao a tutti,

è possibile aggiungere dei nuovi emoticon a quelli già disponibili?
Per esempio vorrei cambiare alcune delle icone/emoticon disponibili quando si crea un nuovo forum perchè quelle esistenti hanno un'aria un po' vecchia... :(

Se non mi sbaglio gli emoticon si trovano in templates/standard/images/emoticons
Non è sufficiente caricare nuove icone nella cartella perchè se non ho capito male viene usata la tecnica CSS Sprite.
Ho provato a usare un CSS Sprite Generator gratuito che mi ha creato un nuovo file emoticon_sprite, ma anche in questo caso dopo aver caricato tutti i file non succede nulla, continuo a vedere le solite icone...

Ho esaurito le mie risorse...qualcuno sa come si fa?

Grazie in anticipo

Maurizio
User avatar
kingbluz
FormaLms User
Posts: 216
Joined: Sat Dec 08, 2012 5:08 pm
Version: forma.lms 2.0
Location: Milano, Italy

Re: emoticons

Post by kingbluz »

Sono riuscito a trovare la soluzione al mio problema di cambiare gli emoticon e volevo condividerla, magari a qualcuno può tornare utile :)

Premetto che ci sarà sicuramente qualche modo più elegante per sostituire gli emoticon ma le mie conoscenze di web editing sono un po' limitate, quindi non ho trovato di meglio...
Il post è lungo perchè cerco di spiegare tutti i passaggi :)

Il mio problema era quello di cambiare gli emoticon (le icone) che compaiono nei forum, che hanno un look un po' troppo anni 90 a differenza delle icone dell'area corsi del backend che sono state rinnovate in Forma.

Gli emoticon che possono essere scelti quando si crea un nuovo forum si trovano in templates/standard/images/emoticons
Per cambiarli servono:
1. le nuove icone (tutte di dimensioni 22px per 22px)
2. un CSS Sprite generator
3. alcune modifiche in tre file


1. Le nuove icone (meglio se png o gif) vanno copiate nella cartella templates/standard/images/emoticons.
Le vecchie icone possono essere eliminate.
In alternativa si può create un nuovo template e fare tutte le operazioni nel nuovo template lasciando invariato quello standard: per comodità riporto percorsi e cartelle del template standard, se create un nuovo template le operazioni vanno ovviamente fatte nelle cartelle del nuovo template.

2. Forma (e Docebo) gestiscono le icone utilizzando la tecnica CSS Sprite, che prevede l'uso di una sola immagine che contiene tutte le icone, e prevede una serie di istruzioni nei CSS che indirizzino di volta in volta il browser verso l'icona giusta.
Per risparmiare tempo nella creazione dei file e di parte delle istruzioni ho usato un CSS Sprite generator gratuito: ce ne sono tanti su internet, io ho usato quello a questo indirizzo http://css.spritegen.com/ ma vanno bene anche altri.

Il CSS Sprite generator produce due tipi di output: l'immagine contenente tutte le icone e alcune righe di codice da adattare e copiare successivamente in alcuni file php di Forma.

Per configurare il CSS Sprite generator ci vogliono 2 minuti e bisogna :
- caricare singolarmente o in blocco le icone (o averle sotto mano se il software è in locale)
- specificare il formato output del file che contiene tutte le icone (png, gif o jpg), un eventuale suffisso per le classi del CSS (in forma il suffisso è "emo-") e l'eventuale distanza tra le icone (padding...potete scegliere quella che volete, serve solo al CSS Sprite generator per creare il file e le righe di codice)

L'immagine contenente tutte le icone deve essere salvata con il nome "emoticon_sprite.png" in templates/standard/images/emoticons (è il nome che ha attualmente, salvarla con un altro nome significa cambiare il nome anche nel CSS)


3. I file da modificare sono tre:

a) il file templates/standard/style/lms-to-review.css righe 350-425.
Al momento si trovano una serie di istruzioni come queste:
.emo-access span { background-position: 0 0; }
.emo-agent span { background-position: 0 -44px; }
...

Devono essere sostituite con tante righe quante sono le nuove icone.
Il CSS Sprite generator dovrebbe aver generato parte del codice da copiare, comunque ogni icona deve avere una riga con la sintassi:
.emo-nomeicona1 span { background-position: X -XXpx; }

b) il file /appLms/modules/forum/forum.php righe 3707 e seguenti.
Al momento si trovano una serie di istruzioni come queste:

function getEmoticonsArr() {
return array(
'access',
'agent',
...

'access' 'agent' ecc sono i nomi delle vecchie icone.
Vanno sostituiti con i nomi delle nuove icone (senza il prefisso .emo-)
Le righe 3707 e seguenti diventano quindi:

function getEmoticonsArr() {
return array(
'nomeicona1',
'nomeicona2',
...


c) il file appLms/modules/public_forum/public_forum.php righe 3904 e seguenti.
Vanno compiute le stesse operazioni del punto b)


A questo punto basta rientrare in piattaforma, fare 1-2 refresh se necessario e nell'elenco delle icone si troveranno quelle nuove.
Le icone precedentemente inserite cambiano automaticamente con quelle nuove.
Se è stato creato un nuovo template andrà assegnato agli utenti/gruppi/nodi ecc.

Maurizio
Last edited by kingbluz on Wed Oct 22, 2014 11:14 am, edited 1 time in total.
User avatar
canelli
FormaLms Guru
Posts: 496
Joined: Thu Nov 08, 2012 12:21 pm
Version: forma.lms 2.0
Contact:

Re: emoticons

Post by canelli »

grazie Maurizio per la mini-guida

Se non si vuole modoficare i file php, modificare le icone mantenendo i nomi originali.
Cercate nel forum le riposte prima di chiedere. Check the forum before posting
---------------
Claudio Anelli
Joint Technologies - Sistemi avanzati per l'information technology

http://www.joint-tech.com
---------------
User avatar
alberto
FormaLms Guru
Posts: 1135
Joined: Fri Mar 02, 2012 9:18 am
Contact:

Re: emoticons

Post by alberto »

Grazie per la condivisione! :)
User avatar
kingbluz
FormaLms User
Posts: 216
Joined: Sat Dec 08, 2012 5:08 pm
Version: forma.lms 2.0
Location: Milano, Italy

Re: emoticons

Post by kingbluz »

Riprendo questo vecchio post per aggiungere che la procedura funziona anche su Forma 2.0.

Non cambia nulla, a parte il numero in cui si trovano le righe da sostituire nei file /appLms/modules/forum/forum.php e public_forum.php (in entrambi i casi si trovano qualche centinaio di righe più in basso rispetto a prima, basta scorrere il documento per trovarle).

Aggiungo però che se si sostituiscono gli emoticon orginali, la modifica deve essere fatta per tutta la piattaforma: i file coinvolti infatti non sono solo quelli del singolo template, ma riguardano anche la cartella appLms.
Quindi non posso avere un set di emoticon per un template e un set per un altro template.
A meno che ovviamente non si usi qualche workaround (per esempio 2 template con set di emoticon diversi ma ai quali si assegna lo stesso nome...)

Maurizio
User avatar
kingbluz
FormaLms User
Posts: 216
Joined: Sat Dec 08, 2012 5:08 pm
Version: forma.lms 2.0
Location: Milano, Italy

Re: emoticons

Post by kingbluz »

Aggiungo che oltre alla procedura con le relative modifiche descritte sopra, per visualizzare gli emoticon è necessario operare altre due modifiche su forma 2.0.

In particolare nei file forum.php e public_forum.php sono specificate le modalità di costruzione dei tag html delle immagini con i relativi percorsi.
Nei due file viene specificato che le immagini degli emoticon sono sempre .gif, ma se le nuove icone sono per esempio .png bisogna specificarlo in entrambi i file (se non ho compreso male public_forum.php per la community e forum.php per i forum dei singoli corsi).

Quindi:
1) nel file public_forum.php, alla riga 342 sostituire il codice:
. '<img src="' . getPathImage ('fw') . 'emoticons/' . $emoticons . '.gif" title="' . $lang->def ('_EMOTICONS') . '" alt="' . $lang->def ('_EMOTICONS') . '" />'

con:
. '<img src="' . getPathImage ('fw') . 'emoticons/' . $emoticons . '.png" title="' . $lang->def ('_EMOTICONS') . '" alt="' . $lang->def ('_EMOTICONS') . '" />'


2) nel file forum.php, alla riga 345 sostituire il codice:
. '<img src="' . getPathImage () . 'emoticons/' . $emoticons . '.gif" title="' . $lang->def ('_EMOTICONS') . '" alt="' . $lang->def ('_EMOTICONS') . '" />'

con:
. '<img src="' . getPathImage () . 'emoticons/' . $emoticons . '.png" title="' . $lang->def ('_EMOTICONS') . '" alt="' . $lang->def ('_EMOTICONS') . '" />'


In entrambi i file ci sono altri punti dove le immagini vengono imposte come .gif, ma non ho trovato motivi per cambiare il codice ;)

Maurizio
Post Reply