Pagina 1 di 2
[Risolto] Ordine legenda
Inviato: 17/09/2010, 14:50
da DarkCromo
Salve carissimi utenti di phpbb, avrei una domandina, spero di avere postato nella sezione giusta :S
comunque volevo sapere come si può mettere in ordine la legenda dei gruppi.
volevo mettere:
1. Amministratori
2. Super Moderatori
3. Moderatori
4. Utenti Gold
5. Utenti Silver
6. Utenti Upper
7. Vincitori Contest
8. Utenti
Questa è la mia legenda:
grazie in anticipo
Re: Ordine legenda
Inviato: 17/09/2010, 15:28
da Carlo
No, non puoi modificare a tuo piacimento l'ordine dei gruppi nella legenda.
Re: Ordine legenda
Inviato: 17/09/2010, 16:31
da Micogian
Beh, un modo ci sarebbe.
Per default l'ordine è di creazione, quindi centra il group_id.
Potresti utilizzare l'ordine alfabetico della descrizione. Adesso non ricordo se la query sia in viewforum.php o in functions_display.php.
Per ottenere un ordine diverso, come mi sembra sia il tuo caso, bisognerebbe intervenire sulla tabella groups e aggiungere un campo che poi servirà per l'ordinamento.
L'hai già chiesto tempo fa qui
http://www.phpbb.it/forum/viewtopic.php ... da#p136323 e le cose non sono cambiate.
Re: Ordine legenda
Inviato: 19/09/2010, 13:27
da DarkCromo
si mi ricordo, ho fatto quello che mi ha spiegato, ho modificato anche il database ma dava tutto tranne l'ordine ke volevo
Re: Ordine legenda
Inviato: 19/09/2010, 13:51
da Micogian
Mi spiace ma non cambia niente rispetto a quello che avevo indicato.
La tabella group ha due campi che possono venire utilizzati per l'ordinamento; il group_id e il group_name, quindi o metti in ordine creazione (group_id) o in ordine alfabetico (group_name).
Ci sarebbe il campo group_desc che è la descrizione del gruppo. Ci potresti mettere a, b, c, d, ecc oppure 1,2,3,4 ma poi non so se da qualche parte compare questo dato.
L'altra soluzione è quella di creare un nuovo campo nella tabella groups (es.: group_order) e usare quello per mettere in ordine come vuoi.
Non ci sono altre strade.
Re: Ordine legenda
Inviato: 19/09/2010, 19:16
da Barrnet
Molto facile: rinomini i gruppi mettendo come prefisso "lettera a caso-" visto che i gruppi sono in ordine alfabetico ti basta poco per ordinarli, senza installare mod

Re: Ordine legenda
Inviato: 19/09/2010, 21:17
da DarkCromo
bingo ha scritto:Mi spiace ma non cambia niente rispetto a quello che avevo indicato.
La tabella group ha due campi che possono venire utilizzati per l'ordinamento; il group_id e il group_name, quindi o metti in ordine creazione (group_id) o in ordine alfabetico (group_name).
Ci sarebbe il campo group_desc che è la descrizione del gruppo. Ci potresti mettere a, b, c, d, ecc oppure 1,2,3,4 ma poi non so se da qualche parte compare questo dato.
L'altra soluzione è quella di creare un nuovo campo nella tabella groups (es.: group_order) e usare quello per mettere in ordine come vuoi.
Non ci sono altre strade.
ho provato a ordinare tramimite goup_id ma rimane com'è
Re: Ordine legenda
Inviato: 19/09/2010, 21:57
da Micogian
Ma l'ordinamento per group_id è quello predefinito.
Sei capace di entrare nel database, controllare ed eventualmente modificare la tabella xxxx_groups ?
In caso affermativo vedrai che ci sono i campi group_id e group_name che sono quelli utilizzati per l'ordinamento.
Esiste un campo group_desc che dovrebbe contenere una descrizione dei Gruppi.
Se questo campo è vuoto, devi controllare quei gruppi che hanno nel campo "group_legend" il valore "1".
A questi inserisci nel campo group_desc un valore (1,2,3,ecc. oppure a,b,c,d, ecc.) con l'ordine che vuoi tu.
A questo punto modifichi la query del file index.php in questo modo:
Codice: Seleziona tutto
// Grab group details for legend display
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
{
$sql = 'SELECT group_id, group_name, group_colour, group_type, group_desc
FROM ' . GROUPS_TABLE . '
WHERE group_legend = 1
ORDER BY group_desc ASC';
}
else
{
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, group_desc
FROM ' . GROUPS_TABLE . ' g
LEFT JOIN ' . USER_GROUP_TABLE . ' ug
ON (
g.group_id = ug.group_id
AND ug.user_id = ' . $user->data['user_id'] . '
AND ug.user_pending = 0
)
WHERE g.group_legend = 1
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
ORDER BY g.group_desc ASC';
}
Re: Ordine legenda
Inviato: 20/09/2010, 14:49
da Carlo
DarkCromo ha scritto:ho provato a ordinare tramimite goup_id ma rimane com'è
ATTENZIONE! Se modifichi il
group_id ad un gruppo cui contiene già dei membri, questi membri si ritroveranno nell'altro gruppo, al quale hai sostituito l'ID. Inoltre, anche i permessi che hai impostato per un determinato gruppo si ritroveranno nell'altro.
Re: Ordine legenda
Inviato: 20/09/2010, 18:53
da Micogian
Infatti io non dicevo di modificare i group_id, la soluzione popteva essere quella di usare un campo già presente e l'unico che si presta è group_desc. Non penso che inserire una lettera (a,b,c,d, ecc.) oppure un numero nel campo "descrizione" porti grossi problemi.
Basta poi indicare che l'ordinamento viene fatto su group_desc e il gioco è fatto.
Non vedo complicazioni, io ho provato a modificare l'ordinamento sia con groupo_id che con group_name e funziona.
Naturalmente non si può ottenere l'ordinamento voluto con i dati già presenti.
In definitiva o si usa il campo group_desc o si aggiunge un nuovo campo personalizzato.
Altrimenti la variabile "LEGEND" va creata manualmente con l'ordine che si vuole.
Queste cose sono già state dette mesi fa (da Micogian che sarei io) e non capisco perchè a tutt'oggi non siano state risolte. Altre strade non ci sono.
Tra l'altro credo che l'ordinamento per group_name si riferisca al nome inserito nel database che non è quello che viene visualizzato (quello deriva dal file di lingua)