piermin senior


Registrato: 18-12-2003 Messaggi: 1298
|
Inviato: 12-03-2004 11:34 Oggetto: Soluzione: Assegnare agli Amministratori i nuovi Moduli |
|
|
Dopo aver risposto "a memoria" e probabilmente in maniera un po' caotica in un post precedente, ho rivisto e ritestato la procedura (ho attivato nel mio "Edit Admin" i moduli Messages, AllMyGuests, eCard e Coppermine) riscrivendola e riproponendola sicuramente in maniera più omogenea e completa.
---------------------------------
Per poter dare i permessi di Amministratore ai moduli non inseriti nel pacchetto base di nuke bisogna farli apparire nella maschera "Aggiungi Nuovo Amministratore" e collegarli alla nuova funzione ... a tal fine bisogna fare diverse modifiche in cinque file e nel database.
Come esempio riporto le modifiche da me effettuate al modulo Coppermine per renderlo gestibile da amministratori diversi dal Super Admin (per mia comodità ho usato sempre il termine "copper"). E' ovvio che per ogni modulo da aggiungere vanno ripetute tutte le operazioni ... cambiando opportunemente il termine "copper".
- Creare un nuovo campo nella tabella nuke_authors del tipo radmincopper (nei campi vanno inseriti gli stessi parametri di default di quelli già esistenti)
| Citazione: | Campo ------> radmincopper
Tipo ---------> TINYINT
Lunghezza --> 2
Null ----------> not null
Predefinito --> 0 |
- Aprire il file admin\modules\authors.php
Duplicare le righe simili a queste, cambiandone i parametri:
113 | Codice: | | ."<td><input type=\"checkbox\" name=\"add_radmincopper\" value=\"1\"> "._COPPER."</td>" |
259 | Codice: | if ($chng_radmincopper == 1) {
$sel17 = "checked";
} else {
$sel17 = "";
} |
295 | Codice: | | ."<td><input type=\"checkbox\" name=\"chng_radmincopper\" value=\"1\" $sel17> "._COPPER."</td>" |
tenere presente che il numero della $sel.. deve essere uguale in tutte e due le righe e progressivo rispetto agli altri moduli (i moduli base arrivano a $sel16 ... i nuovi, quindi, saranno $sel17, $sel18, ecc.).
Variabili (dello stesso tipo di quelle già in essere) da aggiungere in righe esistenti (sembra complicato ... ma con find si trovano tutte quelle relative ad un modulo certo e si ricopiano per il nuovo modulo adeguandole).
145 | Codice: | | $result = $db->sql_query("select aid, name, url, email, pwd, radmincopper, radminarticle, ... |
146 | Codice: | | list($chng_aid, ... $chng_radmincopper, ... |
315 | Codice: | | function updateadmin($chng_aid, $chng_name, .... $chng_radminforum, $chng_radmincopper, ... |
333 | Codice: | | $result = $db->sql_query("update ".$prefix."_authors set aid='$chng_aid', .... radmincopper='0', ... |
336 | Codice: | | $result = $db->sql_query("update ".$prefix."_authors set aid='$chng_aid', ... radmincopper='$chng_radmincopper', ... |
341 | Codice: | | $result = $db->sql_query("update ".$prefix."_authors set aid='$chng_aid', ... radmincopper='0', ... |
344 | Codice: | | $result = $db->sql_query("update ".$prefix."_authors set aid='$chng_aid', ... radmincopper='$chng_radmincopper', ... |
405 | Codice: | | updateadmin($chng_aid, $chng_name, ... $chng_radmincopper, ... |
425 | Codice: | $result = $db->sql_query("insert into ".$prefix."_authors values ('$add_aid', .... '$add_radmincopper', '$add_radmincontent', ...)");
if (!$result) {
return;
} |
Come verifica finale del file, controllare che, alla fine di tutte le modifiche, ci siano in tutto 16 ricorrenze, più due ricorrenze in righe commentate (queste ultime è ovvio che possono essere omesse).
- Aprire il file admin\language\lang-italian.php
ed inserire la definizione della variabile di lingua _COPPER.
| Codice: | | define("_COPPER","Albums Fotografici"); |
- Aprire il file del modulo inserito in admin\modules
(nel nostro esempio admin\modules\coppermine.php ).
All'inizio di ogni files della cartella admin\modules relativo ai moduli presenti nel pacchetto base (da assegnare ai vari admin) vi sono queste righe (ad esempio quelle relative a "content"):
| Codice: | $result = sql_query("select radmincontent, radminsuper from ".$prefix."_authors where aid='$aid'", $dbi);
list($radmincontent, $radminsuper) = sql_fetch_row($result, $dbi);
if (($radmincontent==1) OR ($radminsuper==1)) { |
Ai files dei moduli che non sono ricompresi nell'elenco della gestione admin, la variabile del tipo radminpippo non è inserita
| Codice: | $result = $db->sql_query("select radminsuper from ".$prefix."_authors where aid='$aid'");
list($radminsuper) = $db->sql_fetchrow($result);
if ($radminsuper==1) { |
Per gestire coppermine ho modificato le righe in argomento (inserendo radmincopper) adeguandole a quelle dei moduli selezionabili.
| Codice: | $result = sql_query("select radmincopper, radminsuper from ".$prefix."_authors where aid='$aid'", $dbi);
list($radmincopper, $radminsuper) = sql_fetch_row($result, $dbi);
$schedinfo = "Coppermine Administration";
if (($radmincopper==1) OR ($radminsuper==1)) { |
- Aprire il file del modulo inserito in admin\links
(nel nostro esempio admin\links\coppermine.php) e modificare la riga
| Codice: | | if ($radminsuper==1) { |
in
| Codice: | | if (($radminsuper==1) OR ($radmincopper==1)) { |
- Per ultimo, aprire il file admin.php della root di nuke
ed inserire, in coda alle altre simili (riga 180 circa), la riga
| Codice: | | $radmincopper = $row['radmincopper']; |
Fatte tutte le modifiche ed abilitato dal Menù Amministrazione -> Edit Amministratori dell' Admin Super, il nuovo Amministratore diventa operativo anche per il nuovo modulo inserito.
Un ultimo consiglio ... ricordatevi sempre di fare una copia di backup dei files da modificare !! |
|