phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

[DEV] Add Info Memberlist

MODs in fase di sviluppo.
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

[DEV] Add Info Memberlist

Messaggio da Micogian » 14/01/2010, 11: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/floraitali ... erlist.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, 20:15, modificato 12 volte in totale.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Mod "Add Info Memberlist"

Messaggio da Carlo » 14/01/2010, 14: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.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Mod "Add Info Memberlist"

Messaggio da Micogian » 14/01/2010, 15: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: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [DEV] Add Info Memberlist

Messaggio da Micogian » 15/01/2010, 20:02

Inserito nella MOD la modifica da fare al template "Prosilver"

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: [DEV] Add Info Memberlist

Messaggio da Haku » 12/02/2010, 2: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
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [DEV] Add Info Memberlist

Messaggio da Micogian » 12/02/2010, 8:19

Spiegati meglio, cosa vuol dire "punteggio modificabile per utente ?"
Vuoi una classifica di interventi in un certo periodo ?

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: [DEV] Add Info Memberlist

Messaggio da Haku » 12/02/2010, 15: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
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: [DEV] Add Info Memberlist

Messaggio da Carlo » 12/02/2010, 15: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.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [DEV] Add Info Memberlist

Messaggio da Micogian » 12/02/2010, 16: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
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: [DEV] Add Info Memberlist

Messaggio da Haku » 12/02/2010, 16: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

Rispondi

Torna a “MODs in sviluppo”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti