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 sezionescheda_modifica.inc.phpdovrei inserire i dati per richiamare il campo "capacita" e modificarlo....e quì viene il problema (se non ho già sbagliato precdentemente ^^)_________________________________________________________PARTE 1Ho 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 modificagdrcd_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 2inserisco 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}//ifif($_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 pgif (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!