[RISOLTO][GDRCD 5.4] Tabs Jquery in scheda: problema permessi utente?
[RISOLTO][GDRCD 5.4] Tabs Jquery in scheda: problema permessi utente? postato il 11/01/2018 18:22:39 nel forum programmazione, open source e hosting e modificato da fujafox il 12/01/2018 16:13:04
Ciao a tutti,
è da mesi che provo ad usare le tabs jquery per la scheda del personaggio, affinché le varie pagine (Background, Affetti, Inventario ecc) si aprano sempre nello stesso riquadro, ma non riesco a venirne a capo.
Innanzitutto, ho usato la libreria jquery-ui e questa apposita guida: http://jqueryui.com/tabs/ ↗
Quindi lo schema del codice che ho usato per la scheda è il seguente:
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script type="text/javascript" src="includes/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="includes/jquery-ui.min.js"></script>
<script>
$( function() {
$( "#tabs" ).tabs();
} );
</script>
</head>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Scheda</a></li>
<li><a href="#tabs-2">Descrizione</a></li>
<li><a href="#tabs-3">Background</a></li>
<li><a href="#tabs-4">Affetti</a></li>
<li><a href="#tabs-5">Transazioni</a></li>
<li><a href="#tabs-6">Punti XP</a></li>
<li><a href="#tabs-7">Inventario</a></li>
<li><a href="#tabs-8">Equipaggiamento</a></li>
</ul>
<div class="panel" id="tabs-1">
codice scheda.inc.php
</div>
<div class="panel" id="tabs-2">
codice scheda_descr.inc.php
</div>
<div class="panel" id="tabs-3">
codice scheda_storia.inc.php
</div>
..ecc..
</div>
Il problema è che le tabs funzionano correttamente solo se loggo con un personaggio che ha i privilegi Admin o Moderatore, se invece loggo con un personaggio che è un semplice utente il plugin jquery non viene caricato. Al posto della corretta visualizzazione, ottengo una scheda "unica", con tutte le varie pagine disposte una sotto all'altra, e i pulsanti di navigazione fra le tabs che non funzionano, ad eccezione del primo (Es: tasto "Descrizione") che comunque rimanda non solo al contenuto della pagina descrizione ma a tutte le altre pagine.
Questo è uno stamp fatto con un personaggio Admin, in cui tutto funziona come dovrebbe, infatti riesco ad aprire tranquillamente il contenuto del tab "Affetti":

Se invece loggo con un personaggio che non sia Admin o Moderatore, questo è quello che ottengo (e i tasti di navigazione tabs non funzionano):

In quest'ultimo caso, la consolle di Chrome mi riporta il seguente errore:

Ho fatto qualche ricerca su web, e si tratta di un errore generico che dovrebbe rimandare a un'errata combinazione degli href del menù tabs con le relative id del <div class="panel">. Ho controllato il mio codice ed è tutto corretto: a <li><a href="#tabs-1">Scheda</a></li> corrisponde <div class="panel" id="tabs-1"> e così via.
Ho pensato potesse essere un problema di tag <div> non correttamente chiusi, ma ho analizzato il codice con vari editor di html/php e i tag sono tutti correttamente chiusi.
L'unica discriminante per un corretto o errato funzionamento sembra essere il livello di permessi utenti del personaggio che visualizza la scheda. Le pagine scheda_modifica.inc.php, scheda_log.inc.php e scheda_gst.inc.php non sono incluse nel codice e nel menù di navigazione delle tabs, per esse ho mantenuto la vecchia struttura che le apre direttamente in una nuova pagina, ma il problema continua a sussistere per tutte le altre pagine che vorrei invece fare aprire tramite tabs.
Qualche idea su quale possa essere il problema e su come risolverlo?
Grazie anticipatamente!
Pagine → 1
11/01/2018 21:25:14 e modificato da irenes il 24/01/2018 12:35:11
Consiglio preliminare, se posso: non mettere tutti i codici delle pagine, nei div "sotto". Richiamale con require.
Detto ciò, di sicuro c'è un qualche errore di codice in qualche pagina, legato ai permessi,che va a scombussolare tutto.
poi, come primo passetto di indagine: togli dalle tab quelle pagine che sono "sensibili" a permessi diversi (a naso ti direi di togliere transazioni ed XP) e guarda se c'è sempre differenza fra un admin e un utente normale.
In linea di massima, quando ho a che are con problemi del genere e non so dove sbattere la testa, io vado sempreper gradi.
Nel tuo caso, per esempio,potresti cominciare a lasciare solo i primi due tab. Funzionano con tutti i pg? Bene. Aggiungi il terzo tab? Funzionano ancora? bene. Passi al terzo. E così via fino a che non arriva il punto in cui il problema si presenta. A quel punto, se non altro, hai un indizio su una possibile origine dello stesso.
ps: mi rendo conto che per un vero programmatore questo è un consiglio da... macellaio xD ma uno prova anche a cavare il sangue dalle rape, se i mezzi son quel che sono xD
12/01/2018 16:11:01
Il tuo consiglio mi è stato utilissimo, per esclusione ho capito che il problema di permessi era nel codice di scheda.inc.php, mi è bastato ricaricare la versione base della pagina da GDRCD perché il problema si risolvesse. Sicuramente nel corso delle varie modifiche avrò manomesso una parte di codice sui permessi senza accorgermene, ed il malfunzionamento delle tabs dipendeva da quello!
Grazie mille! :D
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!
Cafuné ↗
World of the Sea Battle ↗
Storie di Agarthi ↗