[RISOLTO - GDR-CD 5.4.1.] Bacheca gilda diversificata
[RISOLTO - GDR-CD 5.4.1.] Bacheca gilda diversificata postato il 06/07/2019 14:10:00 nel forum programmazione, open source e hosting e modificato da damnedqueen89 il 06/07/2019 22:29:30
Giuro che è l'ultimo post che metterò qui di seguito, anche perchè siete altamente giustificati da cacciarmi via a calci, ma ho l'ennesimo problema e dovrebbe essere l'ultimo... spero.
Parto con la premessa: ho eliminato il sistema delle razze dal mio pacchetto di gdr-cd perchè non ne ho bisogno... o meglio non ho bisogno di QUEL sistema. Sostanzialmente io ho sfruttato il pacchetto delle gilde per crearmi le razze, le corporazioni, le congregazioni e infine le fazioni. Sono quattro tipi di gilde sostanzialmente che funzionano tutte a gerarchia, ma ho un problema per quanto riguarda le bacheche.
Dal vocabulary io ho creato in totale 8 tipologie di bacheca (On Game, Off Game, Razze, Congregazioni, Corporazioni, Fazioni, Master e Gestione) così da poter infilare le relative bacheche nelle rispettive categorie e nel forum.inc.php ho sistemato il codice in questo modo nei punti delle restrizioni
<?php
while($row = gdrcd_query($result, 'fetch'))
{
if (($row['tipo']<=PERTUTTI)||
(($row['tipo']==SOLORAZZA)&&(strpos($_SESSION['gilda'],'*'.$row['proprietari'].'*')!=FALSE))||
(($row['tipo']==SOLOCONGREGAZIONI)&&(strpos($_SESSION['gilda'],'*'.$row['proprietari'].'*')!=FALSE))||
(($row['tipo']==SOLOGILDA)&&(strpos($_SESSION['gilda'],'*'.$row['proprietari'].'*')!=FALSE))||
(($row['tipo']==SOLOFAZIONI)&&(strpos($_SESSION['gilda'],'*'.$row['proprietari'].'*')!=FALSE))||
(($row['tipo']==SOLOMASTERS)&&($_SESSION['permessi']>=GAMEMASTER))||
($_SESSION['permessi']>=GAMEMASTER))
{/*Restrizione di visualizzazione solo master e admin*/
if($row['tipo']!=$ultimotipo){/*Sono ordinati per tipo, se cambia stampo il nuovo tipo come capoverso*/
$ultimotipo=$row['tipo']; ?>
e
<?php /*Visualizzazione dei topic */
if(gdrcd_filter('get',$_REQUEST['op'])=='visit')
{
//Permessi
$row=gdrcd_query("SELECT tipo, proprietari FROM araldo WHERE id_araldo = ".gdrcd_filter('num',$_REQUEST['what'])."");
if ((($row['tipo']==SOLORAZZA)&&(strpos($_SESSION['gilda'],'*'.$row['proprietari'].'*')===FALSE)&&($_SESSION['permessi']<MODERATOR))||
(($row['tipo']==SOLOCONGREGAZIONI)&&(strpos($_SESSION['gilda'],'*'.$row['proprietari'].'*')===FALSE)&&($_SESSION['permessi']<MODERATOR))||
(($row['tipo']==SOLOGILDA)&&(strpos($_SESSION['gilda'],'*'.$row['proprietari'].'*')===FALSE)&&($_SESSION['permessi']<MODERATOR))||
(($row['tipo']==SOLOFAZIONI)&&(strpos($_SESSION['gilda'],'*'.$row['proprietari'].'*')===FALSE)&&($_SESSION['permessi']<MODERATOR))||
(($row['tipo']>=SOLOMASTERS)&&($_SESSION['permessi']<GAMEMASTER))||
(($row['tipo']>=SOLOMODERATORS)&&($_SESSION['permessi']<MODERATOR)))
{
/*Restrizione di visualizzazione solo master e admin*/
echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['not_allowed']).'</div>';
?>
Ora il problema che mi si pone è il seguente: se con la Gestione io vedo perfettamente tutte le bacheche posizionate nelle giuste categorie, ciò non avviene con l'utenza senza simbolo gestionale. Per fare un esempio molto stupido se con un PG ho la razza, la congregazione, la corporazione e la fazione riesce a vedere unicamente la Congregazione (quindi nel vocabulary il tipo 3) ma non il resto.
Ora io ho fatto questo ragionamento - liberi di dirmi che è completamente errato - questo problema si pone perchè sono state duplicate le gilde nelle restrizioni e nei permessi, quindi di conseguenza il sistema ne legge solamente uno e ignora tutti gli altri. Ho provato anche a rinominare i vari SOLO*** mettendoci gilda, gilda1, gilda2 e gilda3, ma la situazione ovviamente non cambia.
La soluzione momentanea che ho trovato è accorpare tutte le bacheche all'interno del tipo 3 ma ne viene fuori una lista infinita - per chi può vedere tutte le bacheche ovviamente, perchè il singolo personaggio vede solo quelle a cui è affiliato - che io trovo abbastanza confusionaria, sono sincera.
Un modo per risolvere il problema secondo me è quello di quadruplicare il sistema delle gilde - quindi creando tutte le pagine relative e le tabelle all'interno del Db - ma lo trovo un lavoraccio non da poco, per caso esiste un metodo più veloce per ottenere questa distinzione tra le categorie senza dover sconvolgere da punto e a capo il sistema delle gilde?
Pagine → 1
06/07/2019 21:49:45
Oltre che in vocabulary, hai aggiunto/modificato le categorie in constant_values.inc.php? Penso di sì, o non credo in db ti salverebbe il relativo numero, ma tanto per esserne sicuri...
/*Tipi di forum*/
define('INGIOCO',0);
define('PERTUTTI',1);
define('SOLORAZZA',2);
define('SOLOGILDA',3);
define('SOLOMASTERS',4);
define('SOLOMODERATORS', 5);
06/07/2019 22:27:24
.... avevo completamente rimosso che dovevo sistemare anche in costant_values i tipi delle bacheche.
Grazie mille per la dritta!
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!
State of Survival ↗
AlterEgo ↗