[Risolto] [GDRCD 5.6.0.2] - Creare un secondo Tag postato il 29/01/2023 18:15:25 nel forum programmazione, gdrcd e open source e modificato da sallys il 10/02/2023 12:27:38
Nella ricerca che ho fatto, ho trovato un post di Haruka che mi sembra trattare qualcosa di simile, ma mi pare che quello non sia un tag ma un checkbox se non sbaglio(?), quindi non so se sia quello che cerco io, inoltre: non ci ho capito niente di niente .__.
In poche parole io vorrei avere un secondo tag in chat a fine azione, in cui resti salvato ciò che viene scritto al suo interno, esattamente come il tag che già esiste, ma senza che ci compaia il nome della persona a cui sussurrare in caso si clicchi sul suo nome.
Immagino lo si debba creare prima nel db? Io ho creato il campo tag_pf, simile al campo destinatario, che se non sbaglio è quello del tag, ma non so bene come procedere in ref_header.inc.php (in frame_chat.inc.php forse ci arrivo...forse xD)
Pagine → 1
30/01/2023 00:21:18
Ammetto di non aver capito l'esigenza:
chiedi dove è il punto per aggiungere un nuovo input nella maschera dell'azione nelle chat di gioco? Tipo una cosa simile al Tag/Dest./PNG?
Kasa.
GitHub: https://github.com/GDRCD/GDRCD
Discord: https://discord.com/invite/K2eWXpvu4M
GdR-O: https://www.gdr-online.com/readforum.asp?id=250579
30/01/2023 08:47:57
Sì, cioè...non so proprio dove mettere le mani per creare un secondo Tag come quello di posizione/sussurro (da te citato appunto tag/destinatario/png) solo che non abbia la funzione di sussurro, ma di memorizzare ciò che viene scritto all'interno.
30/01/2023 13:58:32 e modificato da haruka il 30/01/2023 14:01:50
Ciao, in effetti io avevo risolto grazie agli aiuti qui in portale.
https://www.gdr-online.com/readforum.asp?id=252442 qui c'è la discussione che citi.
Ora, in effetti, il mio è un checkbox:
<div class="casella_chat" id="tagchat">
<input type="checkbox" name="inpvt" value="0" id="inpvt">
<br /><span class="casella_info">
PVT
</span>
</div>
<div class="casella_chat">
<input name="secondo_tag" id="secondo_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>
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
30/01/2023 16:18:49
Il problema è che di quella discussione, come dicevo appunto, non ci ho capito niente di niente ._. in quanti files devo fare le modifiche?
04/02/2023 13:54:21 e modificato da sallys il 10/02/2023 12:19:20
Dunque, io CREDO di esserci riuscita, dopo giorni di follia @__@
Sottolineo il "CREDO", perchè anche se lo inseriva, poi improvvisamente tutta la chat era totalmente sballata, nel senso che le azioni non uscivano più una dietro l'altra in verticale, ma in orizzontale! E' stato un incubo...
Adesso non succede più ma non sono sicura che sia per la correzione che ho fatto, dato che per un attimo aveva smesso di farlo, poi lo ha fatto di nuovo e...boh, non so.
Per ora non lo fa, scorre liscio, quindi spero tantissimo di aver sistemato.
Provo a postare di seguito ciò che ho fatto cercando di seguire il post si haruka, ma se trovate errori, segnalateli assolutamente!
In caso contrario, spero possa servire a qualcuno in futuro ❤️
Prima di tutto bisogna andare nel database > tabella chat, cliccare sulla scheda struttura in alto e creare un nuovo campo uguale a quello del destinatario, chiamandolo come preferite (in questo caso io l'ho chiamato tag_2).
Poi...
PASSO 1.
Nel file pages/frame_chat.inc.php
<div class="casella_chat">
<input name="tag_2" id="tag_2" value="" /><br />
<span class="casella_info">
Tag 2
</span>
</div>
$_SESSION['tag'] = "";
(io ce l'ho circa alla riga 83)$_SESSION['tag_2'] = "";
# SE ho piu' di una sola carica
else{
$query = "UPDATE clgpersonaggiooggetto SET cariche = cariche -1 WHERE nome ='{$me}' AND id_oggetto='{$item}' LIMIT 1";
}
gdrcd_query($query);
gdrcd_query("INSERT INTO chat ( stanza, imgs, mittente, destinatario, tag_2, ora, tipo, testo ) VALUES (".$_SESSION['luogo'].", '".$_SESSION['sesso'].";".$_SESSION['img_razza']."', '".$_SESSION['login']."', '', NOW(), 'O', '".$_SESSION['login'].' '.gdrcd_filter('in', $MESSAGE['chat']['commands']['die']['item']).': '.gdrcd_filter('in', $item[2])."')");
}
}
/*Se ho inviato un messaggio*/
if(gdrcd_filter('get', $_POST['op']) == 'new_chat_message') {
$actual_healt = gdrcd_query("SELECT salute FROM personaggio WHERE nome = '".$_SESSION['login']."'");
$chat_message = gdrcd_filter('in', gdrcd_angs($_POST['message']));
$tag_n_beyond = gdrcd_filter('in', $_POST['tag']);
$tag_2 = gdrcd_filter('in', $_POST['tag_2']);
$type = gdrcd_filter('in', $_POST['type']);
$first_char = substr($chat_message, 0, 1);
elseif(($type == "3") && ($_SESSION['permessi'] >= GAMEMASTER)) { /*PNG*/
$m_type = 'N';
$_SESSION['tag'] = $tag_n_beyond;
$_SESSION['tag_2'] = $tag_2;
} else {
if(($type == "0") || (empty($type) === true)) { /*Parlato*/
if($actual_healt['salute'] > 0) {
$m_type = 'P';
$_SESSION['tag'] = $tag_n_beyond;
$_SESSION['tag_2'] = $tag_2;
} else {
$m_type = 'S';
$tag_n_beyond = $_SESSION['login'];
$chat_message = gdrcd_filter('in', $MESSAGE['status_pg']['exausted']);
}
}
}
/*Inserisco il messaggio*/
/*E controllo se la chat non era una privata scaduta @author GoddessDanielle*/
$mappa = gdrcd_query("SELECT * FROM mappa where id = '".$_SESSION['luogo']."'");
if ($mappa['privata']==1 && strtotime($mappa['scadenza']) < time()) {
gdrcd_query("INSERT INTO chat ( stanza, imgs, mittente, destinatario, tag_pf, ora, tipo, testo ) VALUES (".$_SESSION['luogo'].", '".$_SESSION['sesso'].";".$_SESSION['img_razza']."', '".$_SESSION['login']."', '".gdrcd_capital_letter(gdrcd_filter('in', $tag_n_beyond))."', '".gdrcd_capital_letter(gdrcd_filter('in', $tag_2))."', NOW(), 'M', 'Chat scaduta')");
} else {
gdrcd_query("INSERT INTO chat ( stanza, imgs, mittente, destinatario, tag_pf, ora, tipo, testo ) VALUES (".$_SESSION['luogo'].", '".$_SESSION['sesso'].";".$_SESSION['img_razza']."', '".$_SESSION['login']."', '".gdrcd_capital_letter(gdrcd_filter('in', $tag_n_beyond))."', '".gdrcd_capital_letter(gdrcd_filter('in', $tag_2))."', NOW(), '".$m_type."', '".$chat_message."')");
}
if(empty($_POST['tag']) === false) {
gdrcd_query("INSERT INTO messaggi ( mittente, destinatario, tag_2, spedito, letto, testo ) VALUES ('System message', '".gdrcd_capital_letter(gdrcd_filter('in', $_POST['tag']))."', '".gdrcd_capital_letter(gdrcd_filter('in', $_POST['tag_2']))."', NOW(), 0, '".$_SESSION['login'].' '.$MESSAGE['chat']['warning']['invited_message'].' '.$info['nome']."')");
}
$_SESSION['tag'] = gdrcd_filter('in', $_POST['tag']);
$_SESSION['tag_2'] = gdrcd_filter('in', $_POST['tag_2']);
$query = gdrcd_query(" SELECT chat.id, chat.imgs, chat.mittente, chat.destinatario, chat.tag_2, chat.tipo, chat.ora, chat.testo, personaggio.url_img_chat, personaggio.sesso, mappa.ora_prenotazione
$add_chat .= ($row['tipo'] === 'P') ? ' : </span> ' : '</span>';
$add_chat .= '<span class="chat_msg">'.gdrcd_chatme($_SESSION['login'], gdrcd_chatcolor(gdrcd_filter('out', $row['testo']))).'</span>';
if(empty ($row['tag_2']) === false) {
$add_chat .= '<span class="chat_tag_2"> <a onclick="Javascript: document.getElementById(\'tag_2\').value=\''.$row['tag_2'].'\'; document.getElementById(\'type\')[0].selected = \'1\'; document.getElementById(\'message\').focus();">['.gdrcd_filter('out', $row['tag_2']).']</a></span>';
}
if(empty ($row['tag_2']) === false) {
$add_chat .= '<span class="chat_tag_2"> ['.gdrcd_filter('out', $row['tag_2']).']</span>';
}
case 'N':
/** * Fix problema visualizzazione spazi vuoti con i sussurri
* @author eLDiabolo
*/
$add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
$add_chat .= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
$add_chat .= '<span class="chat_name">[PNG] '.$row['destinatario'].': </span> ';
$add_chat .= '<span class="chat_msg">'.gdrcd_chatcolor(gdrcd_filter('out', $row['testo'])).'</span>';
$add_chat .= '<span class="chat_tag_p2"> <a onclick="Javascript: document.getElementById(\'tag_2\').value=\''.$row['tag_2'].'\'; document.getElementById(\'type\')[4].selected = \'1\'; document.getElementById(\'message\').focus();">['.gdrcd_filter('out', $row['tag_2']).']</a></span>';
if((gdrcd_filter('get', $_POST['op']) == 'take_action') || (gdrcd_filter('get', $_POST['op']) == 'new_chat_message')) {
if($PARAMETERS['mode']['skillsystem'] == 'ON') {
echo 'parent.document.getElementById(\'chat_form_actions\').reset();';
}
echo 'parent.document.getElementById(\'chat_form_messages\').reset();
parent.document.getElementById(\'chat_form_messages\').elements["tag"].value=\''.$_SESSION["tag"].'\';
parent.document.getElementById(\'chat_form_messages\').elements["tag_2"].value=\''.$_SESSION["tag_2"].'\';';
}//if
echo '}</script>';
04/02/2023 18:46:59
Ritiro tutto...ho tolto la dicitura "risolto" perchè i messaggi continuano ad uscirmi sballatissimi...qualcuno ha idea del perchè? 😭
10/02/2023 12:27:15
AGGIORNAMENTO: Nel post soprastante pare non ci sia nessun errore.
Il problema stava in una cosa da me aggiunta nel mio codice, che qui non compare e che non esiste nella versione pulita di gdrcd, quindi DOVREBBE FUNZIONARE TUTTO CIO' CHE HO SCRITTO SOPRA....spero xD
Avevo semplicemente sbagliato alcune chiusure seguenti nel codice e ringrazio tantissimo ancora una volta l'utante cbr89 per averle trovate (perchè a me si incrociavano gli occhi xD).
Piccola nota: Ho modificato il codice soprastante facendo in modo che anche il tag del PNG se cliccato venga copiato, ma ATTENZIONE, in questo modo si imposta automaticamente l'azione come PNG. Quindi se non lo volete cliccabile basta che togliete questa parte:
<a onclick="Javascript: document.getElementById(\'tag_2\').value=\''.$row['tag_2'].'\'; document.getElementById(\'type\')[4].selected = \'1\'; document.getElementById(\'message\').focus();">
16/03/2023 11:01:55 e modificato da sallys il 16/03/2023 11:03:01
Mi sono accorta che ho scordato di dire una cosa leGGermente importante...smemorata come sempre e chiedo venia:
Ovviamente bisogna inserire il secondo tag anche nel database, quindi:
Prima di tutto bisogna entrare su Altervista (o dove avete uppato tutta la land), cliccare su: Accedi a PhpMyAdmin, nel menù di sinistra cliccare su chat, in alto, cliccare sulla scheda struttura, nella pagina che si apre, aggiungere 1 campo con i seguenti parametri:
Nome: Tag_2
Tipo: VARCHAR
Lungezza/Valori: 200
Predefinito: NULL
Codifica Caratteri: utf8_general_ci
Perdonat le mie solite dimenticanze @_@
16/03/2023 11:31:27
Grazie mille per il dettagliato passo passo che hai scritto per implementare un secondo tag!
Meraviglioso :)
Discussione seguita da
Pagine → 1
Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
breathofspring ha aperto un annuncio di ricerca: Breath of Spring ricerca Beta Tester
✋😟
Abbiamo rilevato che stai usando un software per bloccare la pubblicità!
L'utilizzo di GDR-online.com è gratuito da oltre 18 anni ma è necessario coprire i costi per mantenerlo online... ti chiediamo di aiutarci disabilitando il blocco dei banner pubblicitari.
Togliere il blocco significa fare in modo che GDR-online.com possa continuare a far conoscere piccoli giochi amatoriali gratuitamente e offrire un servizio sempre migliore e adatto alle esigenze dei suoi giocatori!
Se questo avviso continua ad apparire nonostante tu abbia autorizzato il portale:
- Verifica nelle opzioni che venga disattivato AdBlock in tutto il dominio gdr-online.com e non solo in una pagina
- Controlla di non avere fra le estensioni installate altre analoghe ad AdBlock, come AdBlock Plusbr, ublock origin, ecc.
- Probabilmente sul tuo PC è installato un Antivirus che ha anche funzioni di blocco pubblicità
- Se usi Firefox impostare il "Blocco Contenuti" su "Normale" e non su "Restrittivo". Per farlo clicca sull'icona dello scudo vicino all'URL e clicca su "Disattiva Blocco per questo sito"
- Prova a premere CTRL + F5, riloggarti e vedi se il problema persiste