[DEV] Add Info Memberlist

Questa discussione si intitola [DEV] Add Info Memberlist nella sezione MODs in sviluppo. Nome MOD: Add Info Memberlist. Descrizione MOD: modifica la Lista degli iscritti con aggiunta di tre campi: lo Style utilizzato, la data dell'ultimo Post effettuato ...

[DEV] Add Info Memberlist

Messaggioda Micogian » 14/01/2010, 12:37

Nome MOD: Add Info Memberlist.
Descrizione MOD: modifica la Lista degli "iscritti" con aggiunta di tre campi: lo Style utilizzato, la data dell'ultimo Post effettuato dall'utente e la data di ultima visita.

Demo: http://www.actaplantarum.org/floraitaliae/memberlist.php

Cronologia:
  • 13/01/2010 - Iniziato sviluppo della MOD.
  • 15/01/2010 - Inserita modifica template per style "prosilver"
  • 17/02/2010 - Inseriti i links "sort" alle colonne "Ultimo post" e "ultima visita"
Autore: bingo
Versioni phpBB compatibili: 3.0.x

File da modificare:

1) memberlist.php
2) language/it/memberlist.php
3) styles/.../template/memberlist_body.html


1) Apri: memberlist.php

Trova:
Codice: Seleziona tutto
if ($auth->acl_get('u_viewonline'))
      {
         $sort_key_text['l'] = $user->lang['SORT_LAST_ACTIVE'];
         $sort_key_sql['l'] = 'u.user_lastvisit';

Aggiungi:
Codice: Seleziona tutto
         $sort_key_text['v'] = $user->lang['SORT_LAST_VISIT'];
         $sort_key_sql['v'] = 'u.user_lastvisit';

Trova:
Codice: Seleziona tutto
         'U_SORT_ACTIVE'         => ($auth->acl_get('u_viewonline')) ? $sort_url . '&sk=l&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a') : '',

Aggiungi:
Codice: Seleziona tutto
         'U_SORT_VISITED'      => ($auth->acl_get('u_viewonline')) ? $sort_url . '&sk=v&sd=' . (($sort_key == 'v' && $sort_dir == 'a') ? 'd' : 'a') : '',



Trova:
Codice: Seleziona tutto
// Dump it out to the template
return array(
   'AGE'         => $age,
   'RANK_TITLE'   => $rank_title,
   'JOINED'      => $user->format_date($data['user_regdate']),
   'VISITED'      => (empty($last_visit)) ? ' - ' : $user->format_date($last_visit),

Aggiungere: dopo
Codice: Seleziona tutto
'LASTPOST'        => $user->format_date($data['user_lastpost_time']),
'USER_STYLENAME'        => nome_style($data['style_id']),

Note: aggiunge la variabile LASTPOST (data ultimo post) e USER_STYLENAME (nome dello stile utilizzato dall'utente).
La variabile VISITED (data ultima visita) è già presente nell'array.

Trova: la fine del file.
Codice: Seleziona tutto
?>


Aggiungere: prima
Codice: Seleziona tutto
// nome_style() function by bingo

function nome_style($style_cor) {
    global $db;
    $sql = "SELECT style_name FROM " . STYLES_TABLE . " WHERE style_id = {$style_cor}";
    $result = $db->sql_query($sql);
    $row = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);
   
    return $row['style_name'];
}     

NOTE: è la funzione che fornisce il nome dello style dal numero style_id.

2) Apri: language/it/memberlist.php

Trova:
Codice: Seleziona tutto
'LAST_ACTIVE'            => 'Ultima azione',

Aggiungere: dopo (o in ordine alfabetico alla lista delel variabili)
Codice: Seleziona tutto
'LASTPOST'            => 'Ultimo Post',
'USER_STYLENAME'            => 'Nome Style',
'SORT_LAST_VISIT'       => 'Ultima visita',

Note: inserisce nel file language le nuove variabili.

3) Apri:styles/subsilver2/template/memberlist_body.html
Trova la porzione di codice:

Codice: Seleziona tutto
<tr>
   <th nowrap="nowrap">#</th>
   <th nowrap="nowrap" width="25%" align="{S_CONTENT_FLOW_BEGIN}"><a href="{U_SORT_USERNAME}">{L_USERNAME}</a></th>
   <th nowrap="nowrap" width="15%"><a href="{U_SORT_JOINED}">{L_JOINED}</a></th>
   <th nowrap="nowrap" width="10%"><a href="{U_SORT_POSTS}">{L_POSTS}</a></th>
   <th nowrap="nowrap" width="15%"><a href="{U_SORT_RANK}">{L_RANK}</a></th>
   <th nowrap="nowrap" width="11%">{L_SEND_MESSAGE}</th>
   <th nowrap="nowrap" width="11%"><a href="{U_SORT_EMAIL}">{L_EMAIL}</a></th>
   <th nowrap="nowrap" width="11%"><a href="{U_SORT_WEBSITE}">{L_WEBSITE}</a></th>
   <!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><th width="2%" nowrap="nowrap">{L_MARK}</th><!-- ENDIF -->
</tr>


Sostituisci con il codice seguente (vengono aggiunte le righe per i nuovi campi e modificata la dimensione delle colonne):

Codice: Seleziona tutto
<tr>
       <th nowrap="nowrap">#</th>
       <th nowrap="nowrap" width="12%" align="{S_CONTENT_FLOW_BEGIN}"><a href="{U_SORT_USERNAME}">{L_USERNAME}</a></th>
       <th nowrap="nowrap" width="13%"><a href="{U_SORT_JOINED}">{L_JOINED}</a></th>
       <th nowrap="nowrap" width="5%"><a href="{U_SORT_POSTS}">{L_POSTS}</a></th>
       <th nowrap="nowrap" width="10%"><a href="{U_SORT_RANK}">{L_RANK}</a></th>
       <th nowrap="nowrap" width="9%">{L_SEND_MESSAGE}</th>
       <th nowrap="nowrap" width="9%"><a href="{U_SORT_EMAIL}">{L_EMAIL}</a></th>
       <th nowrap="nowrap" width="9%"><a href="{U_SORT_WEBSITE}">{L_WEBSITE}</a></th>
       <th nowrap="nowrap" width="8%">{L_USER_STYLENAME}</th>
       <th nowrap="nowrap" width="10%"><a href="{U_SORT_ACTIVE}">{L_SORT_LAST_ACTIVE}</a></th>
       <th nowrap="nowrap" width="10%"><a href="{U_SORT_VISITED}">{L_SORT_LAST_VISIT}</a></th>
       <!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><th width="2%" nowrap="nowrap">{L_MARK}</th><!-- ENDIF -->
    </tr>



Trova la porzione di codice:

Codice: Seleziona tutto
<td class="gen" align="center">&nbsp;{memberrow.ROW_NUMBER}&nbsp;</td>
      <td class="genmed" align="{S_CONTENT_FLOW_BEGIN}">{memberrow.USERNAME_FULL}<!-- IF S_SELECT_SINGLE --> [&nbsp;<a href="#" onclick="insert_single('{memberrow.A_USERNAME}'); return false;">{L_SELECT}</a>&nbsp;]<!-- ENDIF --></td>
      <td class="genmed" align="center" nowrap="nowrap">&nbsp;{memberrow.JOINED}&nbsp;</td>
      <td class="gen" align="center">{memberrow.POSTS}</td>
      <td class="gen" align="center"><!-- IF memberrow.RANK_IMG -->{memberrow.RANK_IMG}<!-- ELSE -->{memberrow.RANK_TITLE}<!-- ENDIF --></td>
      <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_PM --><a href="{memberrow.U_PM}">{PM_IMG}</a><!-- ENDIF -->&nbsp;</td>
      <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_EMAIL --><a href="{memberrow.U_EMAIL}">{EMAIL_IMG}</a><!-- ENDIF -->&nbsp;</td>
      <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_WWW --><a href="{memberrow.U_WWW}">{WWW_IMG}</a><!-- ENDIF -->&nbsp;</td>
      <!-- IF memberrow.S_PROFILE_FIELD1 -->


Sostituisci con :

Codice: Seleziona tutto
<td class="gen" align="center">&nbsp;{memberrow.ROW_NUMBER}&nbsp;</td>
      <td class="genmed" align="{S_CONTENT_FLOW_BEGIN}">{memberrow.USERNAME_FULL}<!-- IF S_SELECT_SINGLE --> [&nbsp;<a href="#" onclick="insert_single('{memberrow.A_USERNAME}'); return false;">{L_SELECT}</a>&nbsp;]<!-- ENDIF --></td>
      <td class="genmed" align="center">&nbsp;{memberrow.JOINED}&nbsp;</td>
      <td class="gen" align="center">{memberrow.POSTS}</td>
      <td class="genmed row" align="center"><!-- IF memberrow.RANK_IMG -->{memberrow.RANK_IMG}<!-- ELSE -->{memberrow.RANK_TITLE}<!-- ENDIF --></td>
      <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_PM --><a href="{memberrow.U_PM}">{PM_IMG}</a><!-- ENDIF -->&nbsp;</td>
      <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_EMAIL --><a href="{memberrow.U_EMAIL}">{EMAIL_IMG}</a><!-- ENDIF -->&nbsp;</td>
      <td class="gen" align="center">&nbsp;<!-- IF memberrow.U_WWW --><a href="{memberrow.U_WWW}">{WWW_IMG}</a><!-- ENDIF -->&nbsp;</td>
      <td class="genmed" align="center">{memberrow.USER_STYLENAME}</td>
          <td class="genmed" align="center">{memberrow.LASTPOST}</td>
          <td class="genmed" align="center">{memberrow.VISITED}</td>
      <!-- IF memberrow.S_PROFILE_FIELD1 -->

Note: oltre all'inserimento dei nuovi campi c'è una diversa sistemazione delle dimensioni delle colonne.

La modifica consente di aggiungere tre colonne alla Lista degli iscritti: Stile utilizzato, Ultimo_post e Ultima_visita.
Come ho anticipato, ci sarebbe da studiare l'ordinamento dei nuovi campi.

------------ INIZIO MODIFICHE TEMPLATE "prosilver" -------------------------
4) Modifica del template "Prosilver"

APRI: styles/prosilver/memberlist_body.html
TROVA: *** questa operazione va fatta due volte perchè il codice viene ripetuto più avanti
Codice: Seleziona tutto
<!-- IF U_SORT_ACTIVE --><th class="active"><a href="{U_SORT_ACTIVE}#memberlist">{L_SORT_LAST_ACTIVE}</a></th><!-- ENDIF -->

AGGIUNGI: *** dopo
Codice: Seleziona tutto
<th class="userstyle">{L_USER_STILENAME}</th>

NOTE: *** operazione da ripetere alla successiva corrispondenza del codice indicato.

TROVA:
Codice: Seleziona tutto
<td colspan="<!-- IF U_SORT_ACTIVE -->5<!-- ELSE -->4<!-- ENDIF -->">&nbsp;</td>

SOSTITUISCI: con
Codice: Seleziona tutto
<td colspan="<!-- IF U_SORT_ACTIVE -->6<!-- ELSE -->5<!-- ENDIF -->">&nbsp;</td>


TROVA:
Codice: Seleziona tutto
<!-- IF U_SORT_ACTIVE --><th class="active">&nbsp;</th><!-- ENDIF -->

AGGIUNGI: dopo
Codice: Seleziona tutto
<th class="userstyle">&nbsp;</th>


TROVA:
Codice: Seleziona tutto
<!-- IF S_VIEWONLINE --><td>{memberrow.VISITED}&nbsp;</td><!-- ENDIF -->

AGGIUNGI: dopo
Codice: Seleziona tutto
<td>{memberrow.USER_STYLENAME}</td>


TROVA:
Codice: Seleziona tutto
<td colspan="<!-- IF S_VIEWONLINE -->5<!-- ELSE -->4<!-- ENDIF -->">{L_NO_MEMBERS}</td>

SOSTITUISCI: con
Codice: Seleziona tutto
<td colspan="<!-- IF S_VIEWONLINE -->6<!-- ELSE -->5<!-- ENDIF -->">{L_NO_MEMBERS}</td>



APRI: file themes/common.css
TROVA:
Codice: Seleziona tutto
/* Specific column styles */
table.table1 .name      { text-align: left; }
table.table1 .posts      { text-align: center !important; width: 7%; }
table.table1 .joined   { text-align: left; width: 15%; }
table.table1 .active   { text-align: left; width: 15%; }


AGGIUNGI: dopo
Codice: Seleziona tutto
table.table1 .stylename   { text-align: left; width: 10%; }


------------ FINE MODIFICHE TEMPLATE "prosilver" -------------------------
Ultima modifica di Micogian il 15/01/2010, 21:15, modificato 12 volte in totale.
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
 
Messaggi: 2490
Iscritto il: 07/01/2010, 9:51
Località: Udine
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO: No
PHP: 5.2.9
Database: MySQL 5.0.77

  • Condividi questa discussione
  • Ti piace questa discussione?
    Condividila! :)

Re: Mod "Add Info Memberlist"

Messaggioda Carlo » 14/01/2010, 15:32

Un piccolo suggerimento per la funzione nome_stile().
Puoi correggerla così visto che è solo uno il record estratto.
Codice: Seleziona tutto
function nome_style($style_cor) {
    global 
$db;
    
$sql "SELECT style_name FROM " STYLES_TABLE " WHERE style_id = {$style_cor}";
    
$result $db->sql_query($sql);
    
$row $db->sql_fetchrow($result);
    
$db->sql_freeresult($result);
    
    return 
$row['style_name'];
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Dropbox: 2 GB di spazio di archiviazione GRATIS! Registrati ora!
BidVertiser: Guadagna con il tuo sito! Registrati ora!
Avatar utente
Carlo
Amministratore
Amministratore
 
Messaggi: 8897
Iscritto il: 19/04/2009, 10:24
Località: Puglia
Sesso: Maschio
Versione: 3.0.9
MOD:
Server: UNIX/Linux
phpBB SEO:
PHP: 5.3.8
Database: MySQL 5.1.60-community-log


Re: Mod "Add Info Memberlist"

Messaggioda Micogian » 14/01/2010, 16:07

carlino1994 ha scritto:Un piccolo suggerimento per la funzione nome_stile().
Puoi correggerla così visto che è solo uno il record estratto.
Codice: Seleziona tutto
function nome_style($style_cor) {
    global $db;
    $sql = "SELECT style_name FROM " . STYLES_TABLE . " WHERE style_id = {$style_cor}";
    $result = $db->sql_query($sql);
    $row = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);
    
    return $row
['style_name'];
}
 

YES, non serve un ciclo while.
Non mi ricordavo di sql_fetchrow()
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
 
Messaggi: 2490
Iscritto il: 07/01/2010, 9:51
Località: Udine
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO: No
PHP: 5.2.9
Database: MySQL 5.0.77

Re: [DEV] Add Info Memberlist

Messaggioda Micogian » 15/01/2010, 21:02

Inserito nella MOD la modifica da fare al template "Prosilver"
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
 
Messaggi: 2490
Iscritto il: 07/01/2010, 9:51
Località: Udine
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO: No
PHP: 5.2.9
Database: MySQL 5.0.77

Re: [DEV] Add Info Memberlist

Messaggioda Haku » 12/02/2010, 3:34

Ho notato solo ora questa mod...
Siete veramente in gamba ragazzi çç
Chissà se riuscirò anche io un giorno a fare cose del genere ^^

Una domanda bingo:partendo da questa mod,si potrebbe creare una mod per il punteggio modificabile per ogni utente?
Avatar utente
Haku
Traduttore
Traduttore
 
Messaggi: 2527
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
MOD:
Server: UNIX/Linux
phpBB SEO:

Re: [DEV] Add Info Memberlist

Messaggioda Micogian » 12/02/2010, 9:19

Spiegati meglio, cosa vuol dire "punteggio modificabile per utente ?"
Vuoi una classifica di interventi in un certo periodo ?
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
 
Messaggi: 2490
Iscritto il: 07/01/2010, 9:51
Località: Udine
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO: No
PHP: 5.2.9
Database: MySQL 5.0.77

Re: [DEV] Add Info Memberlist

Messaggioda Haku » 12/02/2010, 16:37

No no,mi sono spiegato male :P

Hai presente la mod ultimate point?ecco.
Siccome è troppo,come dire,'complessa',vorrei inserire sotto gli avatar degli utenti delle opzioni (dove poi inserirò dei numeri) che poi posso modificare solamente io ad ogni utente.
Mi sembra sia fattibile partendo da questa base?
Avatar utente
Haku
Traduttore
Traduttore
 
Messaggi: 2527
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
MOD:
Server: UNIX/Linux
phpBB SEO:

Re: [DEV] Add Info Memberlist

Messaggioda Carlo » 12/02/2010, 16:50

Perchè non creare allora un campo personalizzato, modificabile solo dagli amministratori?
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Dropbox: 2 GB di spazio di archiviazione GRATIS! Registrati ora!
BidVertiser: Guadagna con il tuo sito! Registrati ora!
Avatar utente
Carlo
Amministratore
Amministratore
 
Messaggi: 8897
Iscritto il: 19/04/2009, 10:24
Località: Puglia
Sesso: Maschio
Versione: 3.0.9
MOD:
Server: UNIX/Linux
phpBB SEO:
PHP: 5.3.8
Database: MySQL 5.1.60-community-log


Re: [DEV] Add Info Memberlist

Messaggioda Micogian » 12/02/2010, 17:00

Mi spiace, non conosco la mod ultimate point.
Il mio approccio alle Mod è abbastanza recente, normalmente non le uso salvo che siano utili e non invasive.
Molti lavori li faccio dall'esterno, gestendo il database al di fuori del Forum.

Se mi spieghi meglio cosa vuoi fare magari ci sono soluzioni diverse.
Secondo me dobbiamo distinguere due cose: lettura e scrittura.
Quando apri il Forum (Indice, viewforum, viewtopic) tu visualizzi i dati presenti nel Database.
Se li vuoi cambiare devi gestire i cambiamenti con altri mezzi, posting.php ad esempio.
Se vuoi che sotto l'Avatar compaia un numero devi averlo memorizzato prima da qualche parte.
Se si riferisce all'utente probabilmente nella tabella users ma bisogna vedere se esiste un campo che puoi utilizzare oppure devi aggiungerlo.
Aggiornare questo campo poi non è un problema.
La Memberlist è una lista di visualizzazione, non una di inserimento.

Fammi capire meglio quello che vuoi fare.
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
 
Messaggi: 2490
Iscritto il: 07/01/2010, 9:51
Località: Udine
Versione: 3.0.10
MOD:
Server: UNIX/Linux
phpBB SEO: No
PHP: 5.2.9
Database: MySQL 5.0.77

Re: [DEV] Add Info Memberlist

Messaggioda Haku » 12/02/2010, 17:08

Vorrei inserire dei campi appunto personalizzati come predispone già phpbb.
Io ho provato a crearne alcuni,ma non posso modificarli io.
Forse ho spuntato male le opzioni,ma non credo anche perchè sotto le descrizioni di ogni opzione c'è la descrizione del suo funzionamento.

Io ho creato il campo con opzione numeri,e poi settato così:
- Mostra nel pannello di controllo utente: NO
- Mostra alla registrazione: NO
- Visualizza nel profilo utente nella pagina argomento: SI
- Campo richiesto: NO
- Nascondi campo profilo: SI

Così sono giuste per poterle modificare solo io in quanto admin?
Non voglio andare off topic :P
Avatar utente
Haku
Traduttore
Traduttore
 
Messaggi: 2527
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
MOD:
Server: UNIX/Linux
phpBB SEO:

Prossimo

Torna a MODs in sviluppo

SEO Search Tags

PHPBB3 mod nuova colonna in memberlist      aggiungere voce memberlst phpbb      errore tra ultima visita su profilo utente e ultima azione su gruppo su phpbb      modificare memberlist forum phpbb      phpbb campi personalizzati memberlist      phpbb3 modificare memberlist      prosilver modificare larghezza colonne            info memberlist prosilver      lista alfabetica subsilver2

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

  • Pubblicità