Pagina 1 di 2

mChat apri e chiudi

Inviato: 09/05/2011, 23:49
da lenders
Non è possibile fare in modo che la mChat si chiude e si apre?Tipo come questa guida http://xiradorn.it/forum/guida-phpbb-co ... -t666.html

Re: mChat apri e chiudi

Inviato: 11/05/2011, 11:02
da lenders
Apri il file mchat_body.html
Cerca:

Codice: Seleziona tutto

<dt><!-- IF MCHAT_ARCHIVE_MODE -->{L_MCHAT_ARCHIVE_PAGE}<!-- ELSE --><a href="{U_MCHAT}" title="{L_MCHAT}">{L_MCHAT_TITLE}</a><!-- ENDIF --></dt>
Sostituisci con:

Codice: Seleziona tutto

    <dt><!-- IF MCHAT_ARCHIVE_MODE -->{L_MCHAT_ARCHIVE_PAGE}<!-- ELSE --><a href="{U_MCHAT}" title="{L_MCHAT}">{L_MCHAT_TITLE}</a><!-- IF not MCHAT_CUSTOM_PAGE -->&nbsp;&bull;&nbsp; <a href="javascript:void(0);" name="minichat" onclick="if (document.getElementById('mChat').style.display != ''){document.getElementById('mChat').style.display = ''; this.innerHTML = '<a href=\'#minichat\' onClick=\'return false;\'>Nascondi</a>'; } else { document.getElementById('mChat').style.display = 'none'; this.innerHTML = '<a href=\'#minichat\' onClick=\'return false;\'>Mostra</a>'; }">Mostra</a><!-- ENDIF --><!-- ENDIF --></dt>
Cerca:

Codice: Seleziona tutto

<div class="postbody mChatBodyFix" id="mChat">
Sostituisci con:

Codice: Seleziona tutto

        <div class="postbody mChatBodyFix" id="mChat" <!-- IF not MCHAT_ARCHIVE_MODE --><!-- IF not MCHAT_CUSTOM_PAGE -->style="display: none;"<!-- ENDIF --><!-- ENDIF -->>
Ho provato a fare questa modifica presa dal forum di Sir che l'ha usata sulla vecchia versione,mentre io l'ho provata sulla nuova versione,sembra funzionare però mi da un problema.Guarda immagine:

http://img600.imageshack.us/i/senzascritta.png/
http://img863.imageshack.us/i/conscritta.png/

Ogni volta che ci scrivo qualcosa si fa piccolo,come mai?

Re: mChat apri e chiudi

Inviato: 11/05/2011, 17:10
da T@by
quel style.display = '' non piace molto.

Consiglierei
sostituire tutte le ricorrenze di style.display = '' con style.display = 'block'
sostituire }">Mostra</a> con }">Nascondi</a>
sostituire <!-- IF not MCHAT_CUSTOM_PAGE -->style="display: none;"<!-- ENDIF --> con <!-- IF not MCHAT_CUSTOM_PAGE -->style="display: block;"<!-- ENDIF -->

Non ho provato ma al 90% funziona.

Re: mChat apri e chiudi

Inviato: 11/05/2011, 18:13
da lenders
Ho modificato cosi

Codice: Seleziona tutto

<dt><!-- IF MCHAT_ARCHIVE_MODE -->{L_MCHAT_ARCHIVE_PAGE}<!-- ELSE --><a href="{U_MCHAT}" title="{L_MCHAT}">{L_MCHAT_TITLE}</a><!-- IF not MCHAT_CUSTOM_PAGE -->&nbsp;&bull;&nbsp; <a href="javascript:void(0);" name="minichat" onclick="if (document.getElementById('mChat').style.display = 'block' != ''){document.getElementById('mChat').style.display = 'block' = ''; this.innerHTML = '<a href=\'#minichat\' onClick=\'return false;\'>Nascondi</a>'; } else { document.getElementById('mChat').style.display = 'block' = 'none'; this.innerHTML = '<a href=\'#minichat\' onClick=\'return false;\'>Mostra</a>'; }">Nascondi</a><!-- ENDIF --><!-- ENDIF --></dt>
E cosi

Codice: Seleziona tutto

		<div class="postbody mChatBodyFix" id="mChat" <!-- IF not MCHAT_ARCHIVE_MODE --><!-- IF not MCHAT_CUSTOM_PAGE -->style="display: block;"<!-- ENDIF --><!-- ENDIF -->>
Ma non funziona

Re: mChat apri e chiudi

Inviato: 11/05/2011, 21:02
da lenders
Novità ho fatto cosi

Codice: Seleziona tutto

    <dt><!-- IF MCHAT_ARCHIVE_MODE -->{L_MCHAT_ARCHIVE_PAGE}<!-- ELSE --><a href="{U_MCHAT}" title="{L_MCHAT}">{L_MCHAT_TITLE}</a><!-- IF not MCHAT_CUSTOM_PAGE --><span style="float:right;"><a href="#" onclick="mChat.toggle('Body'); return false;">Nascondi</a></span><!-- ENDIF --><!-- ENDIF --></dt>

Codice: Seleziona tutto

<div class="postbody mChatBodyFix" id="mChatBody" <!-- IF not MCHAT_ARCHIVE_MODE and not MCHAT_CUSTOM_PAGE -->style.display = 'block'<!-- ENDIF -->>
E non sembra dare problemi,però io invece vorrei che la chat rimane sempre chiusa e solo l'utente può decidere se aprirla oppure chiudere la chat

Re: mChat apri e chiudi

Inviato: 12/05/2011, 13:28
da T@by
A prescindere dal fatto che

Codice: Seleziona tutto

<div class="postbody mChatBodyFix" id="mChatBody" <!-- IF not MCHAT_ARCHIVE_MODE and not MCHAT_CUSTOM_PAGE -->style.display = 'block'<!-- ENDIF -->>
e' formalmente errato in quanto andrebbe scritto così

Codice: Seleziona tutto

<div class="postbody mChatBodyFix" id="mChatBody" <!-- IF not MCHAT_ARCHIVE_MODE and not MCHAT_CUSTOM_PAGE -->style="display: block"<!-- ENDIF -->>
"display: block" stabilisce che l'elemento genera un block box (quindi e' visibile)
per nasconderlo dovresti usare "display: none"
Peccato che utilizzando "display: none" la casella di testo si ridimensiona alla battitura del secondo carattere (a me succede così, non so se vale anche per te). Non ho indagato piu' di tanto ma credo che dipenda dal timer utilizzato.

La grossa pecca di questo metodo e' che non ricorda l'ultimo stato selezionato quindi ricaricando la pagina troverai sempre la chat aperta o chiusa a seconda dell'impostazione data dal codice qui sopra; e comunque il testo hyperlink (Nascondi) rimane invariato.

Passando sopra al problema del ridimensionamento della casella di testo, il problema del riproporre la chat aperta o chiusa a seconda della scelta operata dall'utente si risolve sostituendo

Codice: Seleziona tutto

<div class="postbody mChatBodyFix" id="mChatBody" <!-- IF not MCHAT_ARCHIVE_MODE and not MCHAT_CUSTOM_PAGE -->style="display: block"<!-- ENDIF -->>
con

Codice: Seleziona tutto

<div class="postbody mChatBodyFix" id="mChatBody" <!-- IF not MCHAT_ARCHIVE_MODE and not MCHAT_CUSTOM_PAGE -->style="display: block;" <!-- ENDIF -->>
<!-- IF not MCHAT_ARCHIVE_MODE and not MCHAT_CUSTOM_PAGE --><script type="text/javascript">
// <![CDATA[
if(jQuery.cookie('mChatShowBody')!='yes'){
	jQuery('#mChatBody').css('display','none');
}
// ]]>
</script><!-- ENDIF -->

In sintesi con l'ausilio di jQuery si va a leggere il cookie impostato da mChat e si setta il div che la ospita di conseguenza.

Appena posso cerco di scoprire come mai il textbox viene impostato a 50px passando da 'none' a 'block'.

Re: mChat apri e chiudi

Inviato: 12/05/2011, 15:03
da T@by
Risolto problema del ridimensionamento del textbox.
in mchat/mchat_ajax_mini.js
cerca

Codice: Seleziona tutto

if(val===(val=input.val())){return}
dopo aggiungi

Codice: Seleziona tutto

minWidth=o.minWidth||$jQ(this).width();
Se serve spiego il workaround del problema

Re: mChat apri e chiudi

Inviato: 12/05/2011, 16:08
da lenders
Assa fa cosi funziona,cosa hai fatto spiega spiega

Re: mChat apri e chiudi

Inviato: 12/05/2011, 18:04
da T@by
In mchat_ajax_mini.js l'autore ha inserito una funzione che calcola l'ampiezza del textbox al momento del primo draw della chat. Alla pressione dei tasti effettua alcuni settaggi tra i quali anche quello dell'ampiezza del textbox (non ho idea del perchè lo faccia anche considerando che farlo solo alla creazione non ha molto senso e comunque phpBB3 ha un'ampiezza minima).
Inserendo la possibilità di rendere invisibile il contenitore della chat accade che gli elementi contenuti restituiscano larghezza nulla (0) benchè correttamente tracciati, quindi la funzione pone nella sua variabile un valore corrispondente all'ampiezza minima. A causa del meccanismo di cui sopra alla pressione del secondo tasto il textbox viene ridimensionato all'ampiezza minima.
La modifica postata non fa altro che, alla pressione di ogni tasto, rideterminare l'ampiezza del textbox selezionando il valore maggiore tra il minimo calcolato e quello effettivo. Essendo l'elemento a questo punto visibile ovviamente 'vince' il valore effettivo.

Rimane il problema dell'hyperlink... lo risolverei sostituendolo con un'icona

Re: mChat apri e chiudi

Inviato: 13/05/2011, 9:43
da lenders
Capito.Vabbe posso anche rimanere la scritta.Non è un problema