GDRCD 5.4 Nuova sezione testuale scheda
GDRCD 5.4 Nuova sezione testuale scheda postato il 06/05/2019 10:35:10 nel forum programmazione, open source e hosting
Salve! Chiedo anticipatamente perdono se la domanda è un po' "generica" ma avrei bisogno di capire essenzialmente da dove poter partire senza andare a creare troppa confuzione con l'attuale codice di gdrcd e finire in bug che non saprei risolvere.
____________________________
Vorrei creare, nella scheda del personaggio, una sezione chiamata "capacita"
Dovrebbe funzionare al pari delle classiche Affetti, Background e cose così, ma dovrebbe essere modificabile solo da Admin
____________________________
Ho creato il campo nel database
ho creato la pagina "scheda_capacita.inc.php" per richiamare il campo, lasciando l'attuale controllo se è abilitato HTML o BBCODE nella modifica della sezione
<div> TEST CAPACITA </div>
<div class="body_box">
<?php
if ($PARAMETERS['mode']['user_bbcode'] == 'ON')
{ if ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd' && $PARAMETERS['settings']['bbd']['free_html'] == 'ON')
{echo bbdecoder(gdrcd_html_filter($record['capacita']), true);
}elseif ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd')
{echo bbdecoder(gdrcd_filter('out',$record['capacita']), true);
}else
{echo gdrcd_bbcoder(gdrcd_filter('out',$record['capacita']));
}
}else
{echo gdrcd_html_filter($record['capacita']);
}
?></div>
A questo punto, nella sezione
scheda_modifica.inc.php
dovrei inserire i dati per richiamare il campo "capacita" e modificarlo....e quì viene il problema (se non ho già sbagliato precdentemente ^^)
_________________________________________________________
PARTE 1
Ho agito così (segno in grassetto le modifiche da me effettuate)
Abilito/disabilito HTML o BBCODE
$modifica_affetti = gdrcd_filter('in',$_POST['modifica_affetti']);
$modifica_background = gdrcd_filter('in',$_POST['modifica_background']);
$modifica_capacita = gdrcd_filter('in',$_POST['modifica_capacita']);
if ($PARAMETERS['mode']['user_bbcode'] == 'OFF' || ($PARAMETERS['mode']['user_bbcode'] == 'ON' && $PARAMETERS['settings']['forum_bbcode']['type'] == 'bbd' &&$PARAMETERS['settings']['bbd']['free_html'] == 'ON'))
{$modifica_affetti = gdrcd_filter('addslashes', $_POST['modifica_affetti']);
$modifica_background = gdrcd_filter('addslashes', $_POST['modifica_background']);
$modifica_capacita = gdrcd_filter('addslashes', $_POST['modifica_capacita']);
}
risposta alla modifica
gdrcd_query("UPDATE personaggio SET cognome = '".gdrcd_filter('in',$_POST['modifica_cognome'])."', affetti = '".$modifica_affetti."', descrizione = '".$modifica_background."', capacita = '".$modifica_capacita."', url_media = '".gdrcd_filter('in',gdrcd_filter('fullurl',$_POST['modifica_url_media']))."', blocca_media = "....ecc...ecc..;
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
carico le informazioni del personaggio
$record = gdrcd_query("SELECT descrizione, affetti, capacita, cognome, online_status, url_img, url_img_chat, url_media, blocca_media, stato, salute FROM personaggio WHERE nome='".gdrcd_filter('get',$_REQUEST['pg'])."'");
___________________________
PARTE 2
inserisco la sezione per modificare ed il tasto modifica
<?php
}//if
if($_SESSION['permessi']>=SUPERUSER){
?>
<div>
<form action="popup.php?page=scheda_modifica" method="post">
<div class='form_label'>
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['capacita']); ?>
</div>
<div class='form_field'>
<textarea type="textbox" name="modifica_capacita" class="form_textarea"><?php echo gdrcd_filter('out',$record['capacita']); ?></textarea>
</div>
<div class="form_info">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['help']['bbcode']); ?>
</div>
//inserisco il tasto per modificarlo
<div class='form_submit'>
<input type="submit" value="<?php echo $MESSAGE['interface']['forms']['submit']; ?>" class="form_submit" />
<input type="hidden"
value="<?php echo gdrcd_filter('get',$_REQUEST['pg']); ?>"
name="pg" />
</div>
</form>
?>
Ora...sono sicurassima dia aver sbagliato qualcosa dato che non funziona, come posso risolvere?
devo collegare in qualche modo il bottone unicamente al mio <form> sennò modifica anche gli altri campi? COllegare da qualche parte la sezione "capacita"?
Alternativa differente per ottenere lo stesso risultato?
Grazie anticipatamente come al solito!
Pagine → 1
10/05/2019 18:04:53
Concordo con Nutria, dicendoti che devi creare un else if così:
/*Se un Admin o superiore ha richiesto l'arresto del pg*/
elseif (($_SESSION['permessi']>=SUPERUSER)&&(gdrcd_filter('get',$_POST['op'])=='modify_capacita'))
{
$modifica_capacita = gdrcd_filter('in',$_POST['modifica_capacita']);
if ($PARAMETERS['mode']['user_bbcode'] == 'OFF' || ($PARAMETERS['mode']['user_bbcode'] == 'ON' && $PARAMETERS['settings']['forum_bbcode']['type'] == 'bbd' &&$PARAMETERS['settings']['bbd']['free_html'] == 'ON'))
{
$modifica_capacita = gdrcd_filter('addslashes', $_POST['modifica_capacita']);
}
gdrcd_query("UPDATE personaggio SET capacita = '".$modifica_capacita."' WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'");
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}
che va sistemato prima o dopo questo else if:
elseif (($_SESSION['permessi']>=GUILDMODERATOR)&&(gdrcd_filter('get',$_POST['op'])=='modify_status'))
{
}
che fornisce i dati per la modifica delle note master a chi ha permessi da capogilda in su, la sezione per modificare, deve essere ugualmente a parte rispetto agli altri form:
<?php
}//if
if($_SESSION['permessi']>=SUPERUSER){
?>
<div class='form_gioco'>
<!-- Form modifica capacità -->
<form action="popup.php?page=scheda_modifica" method="post">
<input type="hidden" name="op" value="modify_capacita" />
<div class='form_label'>
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['capacita']); ?>
</div>
<div class='form_field'>
<textarea type="textbox" name="modifica_capacita" class="form_textarea"><?php echo gdrcd_filter('out',$record['capacita']); ?></textarea>
</div>
<div class="form_info">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['help']['bbcode']); ?>
</div>
<div class='form_submit'>
<input type="submit" value="<?php echo $MESSAGE['interface']['forms']['submit']; ?>" class="form_submit" />
<input type="hidden"
value="<?php echo gdrcd_filter('get',$_REQUEST['pg']); ?>"
name="pg" />
</div>
</form>
</div>
<?php } ?>
Tutto questo, però, te lo puoi evitare. Ti basterebbe inserire la modifica non in scheda_modifica, ma in scheda_gst. Perché da quel che ho letto nel tuo codice non vuoi permettere l'accesso agli Admin, ma ai gestori, che possono modificare le schede da amministra la cui intera pagina è loro esclusiva prerogativa e non devi aggiungere alcuna ulteriore limitazione.
Riguardo alla pagina da aggiungere alla scheda, se quel che hai scritto è tutto quello che hai inserito nel codice, ti panca una parte importante: devi richiamare i dati dal db. Per intenderci:
<?php
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
$query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5, razza.icon FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
//Se non esiste il pg
if (gdrcd_query($result, 'num_rows')==0){echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';}
else {
$record = gdrcd_query($result, 'fetch');
gdrcd_query($result, 'free');
Bada che ho scritto tutto velocemente giusto per spiegarti, quindi non prendere per buono il codice, ma la spiegazione. Di quella sono sicuro :P
12/05/2019 15:23:50
Grazie infinitamente <3 fatto funzionare!
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Tibia ↗
Wuthering Waves ↗