gdrcd 5/5.1 Note pad per chat postato il 25/02/2012 02:48:02 nel forum programmazione, gdrcd, open source, hosting e modificato da papy il 22/03/2012 23:54:03
Ragazzi ho visto alcune chat su siti basati su GDR-CD5 , dotate di un pratico blocco note.
Qualcuno sa se esiste un pacchetto aggiuntivo per poter inserire questa utilità a gdrcd5.1 ?
Grazie
Pagine → 1
16/03/2012 17:11:20
mmm.. forse non mi sono spiegato bene, visto che nessuno mi si è filato.
La mia considerazione parte dal fatto che la finestra di input messaggi della chat è piuttosto piccola e non tutti trovano comodo usare word per fare copy & paste.
L'idea è quella di inserire nella chat un pulsante che apra una finestra di pop up che in pratica replichi i comandi della chat, ma con una finestra di input decisamente piu' grande.
Ora, visto che sono un grafico, le mie conoscenze sono limitate a qualche correzione, non certo a creare codice. Ad ogni modo con la testardaggine dell'andare per esclusione, ho creato il pulsante e una paginetta che viene richiamata nella finestra di pop up. Poi ho copiato parte del codice della chat ed aggiungendo il comando
<?php
require '../ref_header.inc.php';
?>
A questo punto sono riuscito a visualizzare i vari comandi.
Solo che ovviamente il tutto non funziona (né mi illudevo di cavarmela così facilmente )
Non è che c'e' qualche anima pia disposta a dare un'occhiata ? La patch potrebbe essere utile a molti ed io ovviamente non esiterei a renderla disponibile.
Allego il pastrocchio che ho fatto e che ho chiamato chat2.php :
<?php
require '../ref_header.inc.php';
?>
<?php /* HELP: Frame della chat */
/* Tipi messaggio: (A azione, P parlato, N PNG, M Master, I Immagine, S sussurro, D dado, C skill check, O uso oggetto) */
/*Seleziono le info sulla chat corrente*/
$info = gdrcd_query("SELECT nome, stanza_apparente, invitati, privata, proprietario, scadenza FROM mappa WHERE id=".$_SESSION['luogo']." LIMIT 1");
?>
<div class="pagina_frame_chat">
<div class="page_body">
<?php
//e' una stanza privata?
if ($info['privata']==1) {
$allowance=FALSE;
if ( (($info['proprietario']==gdrcd_capital_letter($_SESSION['login'])) || (strpos($_SESSION['gilda'], $info['proprietario'])!=FALSE) || (strpos($info['invitati'], gdrcd_capital_letter($_SESSION['login']))!=FALSE) ||
(($PARAMETERS['mode']['spyprivaterooms']=='ON')&&($_SESSION['permessi']>MODERATOR))) && ($info['scadenza']>strftime('%Y-%m-%d %H:%M:%S')) ) {$allowance=TRUE;}
} else {$allowance=TRUE;}
//se e' privata e l'utente non ha titolo di leggerla
if ($allowance === FALSE) {
echo '<div class="warning">'.$MESSAGE['chat']['whisper']['privat'].'</div>';
//echo $info['invitati']; echo gdrcd_capital_letter($_SESSION['login']);
} else {
?>
<?php $_SESSION['last_message']=0; ?>
<div style="height: 1; width: 1;">
<iframe src ="pages/chat.inc.php?ref=30&chat=yes" class="iframe_chat" id="chat_frame" name="chat_frame" frameborder="0" allowtransparency="true">
</iframe>
</div>
<div id='pagina_chat' class="chat_box">
</div>
<div class="panels_box"><div class="form_chat">
<!-- Form messaggi -->
<div class="form_row">
<form action="pages/chat.inc.php?ref=10&chat=yes" method="post" target="chat_frame" id="chat_form_messages">
<div class="casella_chat">
<select name="type" id="type">
<option value="0"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type'][0]);//parlato ?></option>
<option value="1"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type'][1]);//azione ?></option>
<option value="4"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type'][4]);//sussurro ?></option>
<?php if($_SESSION['permessi']>=GAMEMASTER){ ?>
<option value="2"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type'][2]);//master ?></option>
<option value="3"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type'][3]);//png ?></option>
<?php } ?>
<?php if(($info['privata']==1)&&(($info['proprietario']==$_SESSION['login'])||((is_numeric($info['proprietario'])===TRUE)&&(strpos($_SESSION['gilda'], ''.$info['proprietario']))))){ ?>
<option value="5"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type'][5]);//invita ?></option>
<option value="6"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type'][6]);//caccia ?></option>
<option value="7"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type'][7]);//elenco ?></option>
<?php }//if ?>
</select>
<br/><span class="casella_info"><?php echo gdrcd_filter('out',$MESSAGE['chat']['type']['info']);?></span>
</div>
<div class="casella_chat">
<input name="tag" id="tag" value="" />
<br/><span class="casella_info">
<?php echo gdrcd_filter('out',$MESSAGE['chat']['tag']['info']['tag'].$MESSAGE['chat']['tag']['info']['dst']);
if($_SESSION['permessi']>=GAMEMASTER){echo gdrcd_filter('out',$MESSAGE['chat']['tag']['info']['png']);} ?>
</span>
</div>
<div class="casella_chat">
<input name="message" id="message" value="" />
<br/><span class="casella_info">
<?php echo gdrcd_filter('out',$MESSAGE['chat']['tag']['info']['msg']); ?>
</span>
</div>
<div class="casella_chat">
<input type="submit" value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['forms']['submit']); ?>" />
<input type="hidden" name="op" value="new_chat_message" />
</div>
</form>
</div>
<!-- Form messaggi -->
<?php if(($PARAMETERS['mode']['skillsystem']=='ON')||($PARAMETERS['mode']['dices']=='ON')){ ?>
<div class="form_row">
<form action="pages/chat.inc.php?ref=30&chat=yes" method="post" target="chat_frame" id="chat_form_actions">
<?php if($PARAMETERS['mode']['skillsystem']=='ON'){ ?>
<div class="casella_chat">
<?php $result = gdrcd_query("SELECT id_abilita, nome FROM abilita WHERE id_razza=-1 OR id_razza IN (SELECT id_razza FROM personaggio WHERE nome = '".$_SESSION['login']."') ORDER BY nome", 'result'); ?>
<select name="id_ab" id="id_ab">
<option value="no_skill"></option>
<?php while($row = gdrcd_query($result, 'fetch'))
{ ?>
<option value="<?php echo $row['id_abilita']; ?>">
<?php echo gdrcd_filter('out',$row['nome']); ?>
</option>
<?php }//while
gdrcd_query($result, 'free');
?>
</select>
<br/><span class="casella_info"><?php echo gdrcd_filter('out',$MESSAGE['chat']['commands']['skills']);?></span>
</div>
<div class="casella_chat">
<select name="id_stats" id="id_stats">
<option value="no_stats"></option>
<?php
/** * Questo modulo aggiunge la possibilità di eseguire prove col dado e caratteristica.
* Pertanto sono qui elencate tutte le caratteristiche del pg.
* @author Blancks
*/
foreach ($PARAMETERS['names']['stats'] as $id_stats => $name_stats)
{
if (is_numeric(substr($id_stats, 3)))
{
?>
<option value="stats_<?php echo substr($id_stats, 3); ?>"><?php echo $name_stats; ?></option>
<?php
}
}
?>
</select>
<br/><span class="casella_info"><?php echo gdrcd_filter('out',$MESSAGE['chat']['commands']['stats']);?></span>
</div>
<?php } else { echo '<input type="hidden" name="id_ab" id="id_ab" value="no_skill">';}?>
<?php if($PARAMETERS['mode']['dices']=='ON'){ ?>
<div class="casella_chat">
<select name="dice" id="dice">
<option value="no_dice"></option>
<?php
/** * Tipi di dado personalizzati da config
* @author Blancks
*/
foreach ($PARAMETERS['settings']['skills_dices'] as $dice_name => $dice_value)
{
?>
<option value="<?php echo $dice_value; ?>"><?php echo $dice_name; ?></option>
<?php
}
?>
</select>
<br/><span class="casella_info"><?php echo gdrcd_filter('out',$MESSAGE['chat']['commands']['dice']);?></span>
</div>
<?php } else { echo '<input type="hidden" name="dice" id="dice" value="no_dice">';}?>
<?php if($PARAMETERS['mode']['skillsystem']=='ON'){ ?>
<div class="casella_chat">
<?php
$result = gdrcd_query("SELECT clgpersonaggiooggetto.id_oggetto, oggetto.nome, clgpersonaggiooggetto.cariche FROM clgpersonaggiooggetto JOIN oggetto ON clgpersonaggiooggetto.id_oggetto = oggetto.id_oggetto WHERE clgpersonaggiooggetto.nome = '".$_SESSION['login']."' AND posizione > 0 ORDER BY oggetto.nome", 'result'); ?>
<select name="id_item" id="id_item">
<option value="no_item"></option>
<?php while($row=gdrcd_query($result, 'fetch')){ ?>
<option value="<?php echo $row['id_oggetto'].'-'.$row['cariche'].'-'.gdrcd_filter('out',$row['nome']); ?>">
<?php echo $row['nome']; ?>
</option>
<?php }//while
gdrcd_query($result, 'free');
?>
</select>
<br/><span class="casella_info"><?php echo gdrcd_filter('out',$MESSAGE['chat']['commands']['item']);?></span>
</div>
<?php } else { echo '<input type="hidden" name="id_item" id="id_item" value="no_item">';} ?>
<div class="casella_chat">
<input type="submit" value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['forms']['submit']); ?>" />
<input type="hidden" name="op" value="take_action">
</div>
</form>
</div>
<?php } ?>
</div></div>
<?php }//else?>
</div><!-- Page-Body -->
</div><!-- Pagina -->
28/03/2012 20:57:45 e modificato da irenes il 28/03/2012 20:58:15
Nota personale: a volte fatico a capire certe "mode" che si diffondono nelle land o nei desideri di chi le ha o vorrebbe averle. Cose come il blocchetto note che si apre a schiacciare un pulsante o altre come il lettore che manda musica random... a cosa serve mettere in land - sbattendoci la testa - cose che uno ha già comodamente nel pc? Un clic e apre il blocco note, un altro e apre il lettore con la canzone che vuole.
Comunque... così su due piedi quello che mi verrebbe da consigliarti è continuare su quello che hai fatto. Devi effettivamente creare un file che replichi le funzioni della chat, in linea di massima. Tieni presente che se lo vuoi a popup, questo blocchetto note, devi definire la funzione JS della pop up nel file che la pop up stessa la genera e il file che vai ad aprire deve avere in sè header e footer.
Mi pare un lavoretto non proprio elementare, ma credo che, sbattendoci un po' il capo, dovrebbe essere abbastanza fattibile (ripeto, io non ci perderei mai la testa per cose così, ma de gustibus.... ;) ).
Nell'attesa, comunque, se quello che ti preme è avere più spazio potrei però consigliarti di adottare una soluzione che ho già visto diverse volte: ovvero "trasformare" la stringa di chat dove si scrive e si invia in una textarea... delle dimensioni che più ti aggradano.
28/03/2012 23:20:14
28/03/2012 23:27:21 e modificato da papy il 28/03/2012 23:28:04
28/03/2012 23:29:12
29/03/2012 13:42:13 e modificato da papy il 29/03/2012 13:45:55
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Lineage II: Sblocca il tesoro del drago!
Enlisted: Cambiamento del software anti-cheat
Metin2 → Sfida i tuoi rivali a battersi con te e dimostra la tua superiorità in questo mondo fantasy!
Le Cronache di Alderon: Record demografico a Alderon
I dati del generatore di rank sono stati aggiornati!
can_can ha risposto alla discussione: Peregrine GDR
staffsc ha aperto un annuncio di ricerca: Sun City ricerca Beta Tester
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Il gestore di Le Cronache di Alderon ha risposto alla recensione di darkblade
Saint or Sinner?: fine beta test!
Planethos GdR: Casati disponibili
Blood is the new Black: Club scolastici
Infinity Kingdom → Gioco di strategia MMO in stile cartoon in cui diventi un signore pieno di risorse. Difendi la terra di Norheim dagli gnomi malvagi!
fooso ha recensito Le Cronache di Alderon
Immortals Revenge: Quattro nuovissimi mount!
Enlisted: Manutenzione del negozio
Lineage II → Entra in uno sconfinato mondo fantasy dominato da razze in contrasto tra loro. Scatena i tuoi poteri in uno dei Mmo più famosi al mondo!
Star Trek LCARS - Recensione del gioco ambientato nel mondo di Star Trek DS9!
NotebookLM - NotebookLM: la tua AI per la scrittura, la ricerca e i giochi online finalmente in Italia!
Wings of Memories - Intervista allo staff del GdR ambientato nel mondo di Final Fantasy: Wings of Memories - FFIX
Povero Gestore! - La richiesta di essere più presenti per adempiere agli impegni presi scatena strane reazioni..
Lande Shannara - Presentazione del Play by Chat Lande di Shannara!
Kick - I segreti del successo: come rendere popolare il tuo canale gaming su Kick