tipi bacheche gdrcd 5.2
tipi bacheche gdrcd 5.2 postato il 24/11/2013 23:01:32 nel forum programmazione, open source e hosting
Sera a tutti
Ho un problema con le bacheche del gdrcd 5.2. Nel file constant_values.inc.php ho modificato i tipi del forum in questa maniera:
define('SOLOGILDA',2);
define('SOLOCLAN',3);
define('SOLOCULTI',4);
ossia, siccome nel mio gdr non esistono razze, ho portato il tipo SOLOGILDA da 3 a 2, ho messo il tipo SOLOCLAN come 3 e ho creato il tipo SOLOCULTI dandogli il 4, con conseguente traslazione degli altri tipi.
Nel file forum.inc.php ho inserito questo pezzo di codice all'interno di ogni IF:
(($row['tipo']==SOLOCLAN)&&(strpos($_SESSION['gildaclan'],'*'.$row['proprietari'].'*')===FALSE)&&($_SESSION['permessi']<MODERATOR))||
(($row['tipo']==SOLOCULTI)&&(strpos($_SESSION['culti'],'*'.$row['proprietari'].'*')===FALSE)&&($_SESSION['permessi']<MODERATOR))||
per le limitazioni. Questo codice l'ho creato copiando quello delle gilde e sostituendo la scritta SOLOGILDA con SOLOCLAN e SOLOCULTI. E qui sorge il problema: le limitazioni alle bacheche di gilda, a quelle dei master e a quelle dei moderatori funzionano, le due che ho inserito io no. In che maniera non funzionano? Se l'utente non appartiene a nessun clan, per esempio, non può entrare in nessuna bacheca riservata ai clan (giustamente), ma se appartiene al clan X lo fa accedere a tutte le bacheche riservate ai clan e in tutte (anche in quella del clan a cui appartiene) esce la scritta che dice che non ha i permessi. Come mai? Cosa ho sbagliato e/o dimenticato? Io ho semplicemente fatto un copia e incolla del codice che riguarda le gilde, quindi non capisco proprio perché quello funzioni e quelle inserito da me no.
Pagine → 1
25/11/2013 09:46:28
Considera che le bacheche sono un'eterna lotta :D
Ogni singola modifica di permessi va fatta per ogni "azione" ovvero: FALSE, read, visit, etc
Di queste si seguono 2 principi se non ricordo male FALSE funziona come se il tipo rientra dentro questi canoni mostra la bacheca mentre il resto secondo il principio se il tipo rientra questi canoni manda l'errore non hai i permessi.
Quindi devi stare a vedere bene ogni singola azione.
Tornando al tuo problema da quanto ho capito hai duplicato il sistema gilda, hai modificato il file che genera la sessione affinché inserisse i valori che stai richiedendo?
25/11/2013 12:15:43 e modificato da astro991 il 25/11/2013 12:36:42
breaker ha scritto: hai modificato il file che genera la sessione affinché inserisse i valori che stai richiedendo?
all'inizio in effetti non lo avevo fatto. dopo aver letto la tua risposta mi sono messo a cercarlo e alla fine ho visto che nel file login.php c'è questo pezzo di codice:
$res = gdrcd_query("SELECT ruolo.gilda, ruolo.immagine FROM ruolo JOIN clgpersonaggioruolo ON clgpersonaggioruolo.id_ruolo = ruolo.id_ruolo WHERE clgpersonaggioruolo.personaggio = '".$record['nome']."'", 'result');
while($row = gdrcd_query($res, 'fetch'))
{
$_SESSION['gilda'] .= ',*'.$row['gilda'].'*';
$_SESSION['img_gilda'] .= $row['immagine'].',';
}
gdrcd_query($res, 'free');
allora mi son detto: "siccome ho fatto le tabelle "clan" identiche a quelle delle gilde, lo ricopio facendo le dovute sostituzioni" e ho inserito questo codice subito sotto quello delle gilde:
$resclan = gdrcd_query("SELECT ruoloclan.gildaclan, ruoloclan.immagine FROM ruoloclan JOIN clgpersonaggioruoloclan ON clgpersonaggioruoloclan.id_ruoloclan = ruoloclan.id_ruoloclan WHERE clgpersonaggioruoloclan.personaggio = '".$record['nome']."'", 'result');
while($row = gdrcd_query($resclan, 'fetch'))
{
$_SESSION['gildaclan'] .= ',*'.$row['gildaclan'].'*';
$_SESSION['img_gildaclan'] .= $row['immagine'].',';
}
gdrcd_query($resclan, 'free');
e ora funziona (almeno per queste gildeclan). a logica dovrebbe funzionare anche per gli altri xD
grazie mille per l'aiuto. pensavo che all'interno del file che definisce le funzioni ci fosse un richiamo automatico, mentre a quanto pare devo farlo io di volta in volta. Grazie. :-D
25/11/2013 19:44:26
Nulla è automatico, considera che GDRCD è poco più di un esercizio di programmazione
21/11/2019 14:18:16
Mi aggrego a questa discussione perché ho fatto una cosa molto simile (la versione di gdrcd è 5.4.1), copiando il codice delle razze. Ho eseguito tutti i passaggi: ho creato le tabelle nel db, ho duplicato le stringhe nel vocabulary, aggiunto una riga nel costant_values e in tutti i file dove serviva, poi ho aggiunto anche il pezzo nel login, creando una query simile a quella soprastante.
Nonostante questo, le bacheche create per queste razze "doppie" (ovviamente non sono razze) possono essere cliccate da chi ha i permessi, però non possono visualizzare la bacheca e appare un messaggio d'errore, che nel codice mi ricordo fosse "furbacchione ;)" o una cosa così, che poi ho cambiato.
Evidentemente mi sfugge qualcosa ç_ç Chi mi può dare una zampa?
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!
RAID Shadow Legends ↗
Neverness to Everness ↗
New Orleans ↗