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

memberlist_body Aiuto...!

Supporto MODs generale.
Avatar utente
Orion
Utente
Utente
Messaggi: 11
Iscritto il: 26/06/2012, 19:53
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

memberlist_body Aiuto...!

Messaggio da Orion » 26/06/2012, 20:06

Ragazzi premetto che ho configurato tutto quanto e non richiedo di fare cose esose, sono a liv base col php ma riescoa leggerlo.
Ora.. vorrei sostituire il campo del sito web degli utenti con un campo personalizzato richiesto in fase di registrazione, chiamato Bnet, riporto il codice che ovviamente non va.. (in sostanza vorrei tenere i campi già esistenti ma tenere Bnet e città nell'elenco iscritti)

PRIMA

Codice: Seleziona tutto

<!-- IF memberrow.U_WWW or memberrow.LOCATION -->
<!-- IF memberrow.U_WWW --><div><a href="{memberrow.U_WWW}" title="{L_VISIT_WEBSITE}: {memberrow.U_WWW}">{memberrow.U_WWW}</a></div><!-- ENDIF --><!-- IF memberrow.LOCATION --><div>{memberrow.LOCATION}</div><!-- ENDIF --><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
DOPO

Codice: Seleziona tutto

<!-- IF memberrow.bnet or memberrow.LOCATION -->
<!-- IF memberrow.bnet --><div>{memberrow.Bnet><div>}</a></div><!-- ENDIF -->
<!-- IF memberrow.LOCATION --><div>{memberrow.LOCATION}</div><!-- ENDIF --><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
Sono alle prime armi, portate pazienza ;)

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: memberlist_body Aiuto...!

Messaggio da Micogian » 26/06/2012, 20:51

Prima di tutto le variabili del Template sono sempre in Maiuscolo e devono essere dichiarate nel file php, in questo cso in memberlist.php.
Nel file memberlist.php viene creato un array di nome "memberrow" che contiene le variabili che vengono passate al template.
Anche se tu hai inserito un campo obbligatorio Bnet questo non viene inserito automaticamente nell'array memberrow.
Nell'array vengono inseriti i dati presenti nella tabella users, se il tuo campo è inserito nella tabella profile_fields_data questo non viene inserito nei dati previsti dalla Lista utenti e comunque non avviene automaticamente ma va aggiunto all'array.
E' importante stabilire quindi dove si trova il tuo campo e poi eventualmente aggiungerlo nell'array "memberrow" ma se questo dato non è nella tabella users sarà necessario creare una function che estragga il dato nella tabella del profilo personalizzato.

Avatar utente
Orion
Utente
Utente
Messaggi: 11
Iscritto il: 26/06/2012, 19:53
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: memberlist_body Aiuto...!

Messaggio da Orion » 26/06/2012, 22:42

in parte ho capito, Bnet è la tag dentro la scheda di amministrazione, tra i campi aggiuntivi x il profilo ma non so la struttura e i richiami. Se dovessi dichiararla come le estraggo dalle info utente?
Abilitando il mostra info aggiuntive ha fatto apparire data iscrizione, account bnet e classe, che sono campi che ho aggiunto obbligatori x gli utenti. Mi sono un po perso.

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: memberlist_body Aiuto...!

Messaggio da Micogian » 26/06/2012, 23:28

Se non ricordo male mi sembra che abilitando il "mostra info aggiuntive" queste vengono visualizzate nel profilo, altra cosa è la lista degli utenti, quella dovrebbe riguardare i dati presenti nella tabella users.
Devi guardare nella tabella profile_fields_data e controllare se il campo che ti interessa è lì.
In questa tabella ci deve essere il campo "user_id" e i campi che hai reso obbligatori, se è così vedi come si chiama il campo che ti interessa.
Se le cose stanno così si potrebbe creare una functions che estrae il dato associato all'user_id.
La function potrebbe chiamarsi search_bnet($user_id) e il suo compito è estrarre il valore di bnet per ogni user_id.
Nel file memberlist.php, all'array "memberrow" viene aggiunta la riga

Codice: Seleziona tutto

'BNET'       => search_bnet($user_id),
e nel template avrai la variabile {memberrow.BNET} da inserire nella Lista.

EDIT: controllando meglio il file memberlist.php ho visto che esiste la variabile {memberrow.S_CUSTOM_FIELDS} che però contiene tutte le voci del profilo personalizzato. Potresti usare quella e vedere cosa ti restituisce.

Avatar utente
Orion
Utente
Utente
Messaggi: 11
Iscritto il: 26/06/2012, 19:53
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: memberlist_body Aiuto...!

Messaggio da Orion » 27/06/2012, 1:00

in SITO WEB, LOCALITÀ continua ad apparire la città ma niente di fatto.

Ho provato

Codice: Seleziona tutto

<!-- IF memberrow.S_CUSTOM_FIELDS.BNET or memberrow.LOCATION -->
<!-- IF memberrow.S_CUSTOM_FIELDS.BNET --><div>{memberrow.S_CUSTOM_FIELDS.BNET}</a></div><!-- ENDIF -->
e

Codice: Seleziona tutto

<!-- IF memberrow.S_CUSTOM_FIELDS or memberrow.LOCATION -->
<!-- IF memberrow.S_CUSTOM_FIELDS --><div>{memberrow.S_CUSTOM_FIELDS}</a></div><!-- ENDIF -->
non restituisce nulla :roll:
Il file memberlist normale non me lo fa aprire (generico) evidentemente hanno limitato alcune cose.. tanto x cambiare.. dal body al view ok
Per vedere le tabelle non so come fare, non ho accesso ftp, è quella la menata.. non so i richiami, non so dove diavolo sono i valori.
Che sclero x 2 scemate..

Avatar utente
Orion
Utente
Utente
Messaggi: 11
Iscritto il: 26/06/2012, 19:53
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: memberlist_body Aiuto...!

Messaggio da Orion » 27/06/2012, 1:39

Per logica dovrebbe essere già auto dichiarato, no? dovrebbe essere solo richiamabile.. oppure ne ho detta una grossa?
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Avatar utente
Orion
Utente
Utente
Messaggi: 11
Iscritto il: 26/06/2012, 19:53
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: memberlist_body Aiuto...!

Messaggio da Orion » 27/06/2012, 1:56

Codice: Seleziona tutto

[size=80]<!-- IF S_IN_SEARCH_POPUP -->
	<!-- INCLUDE simple_header.html -->
	<!-- INCLUDE memberlist_search.html -->
	<form method="post" id="results" action="{S_MODE_ACTION}" onsubmit="insert_marked(this.user); return false">

<!-- ELSEIF S_SEARCH_USER -->
	<!-- INCLUDE overall_header.html -->	
	<!-- INCLUDE memberlist_search.html -->
	<form method="post" action="{S_MODE_ACTION}">

<!-- ELSE -->
	<!-- INCLUDE overall_header.html -->
	<form method="post" action="{S_MODE_ACTION}">

<!-- ENDIF -->

	<!-- IF S_SHOW_GROUP -->

		<h2<!-- IF GROUP_COLOR --> style="color:#{GROUP_COLOR};"<!-- ENDIF -->>{GROUP_NAME}</h2>
		<p>{GROUP_DESC} {GROUP_TYPE}</p>
		<p>
			<!-- IF AVATAR_IMG -->{AVATAR_IMG}<!-- ENDIF -->
			<!-- IF RANK_IMG -->{RANK_IMG}<!-- ENDIF -->
			<!-- IF GROUP_RANK -->{GROUP_RANK}<!-- ENDIF -->
		</p>

	<!-- ELSE -->
		<h2 class="solo">{PAGE_TITLE}<!-- IF SEARCH_WORDS -->: <a href="{U_SEARCH_WORDS}">{SEARCH_WORDS}</a><!-- ENDIF --></h2>

		<div class="panel">
			<div class="inner"><span class="corners-top"><span></span></span>

			<ul class="linklist">
				<li>

				<!-- IF U_FIND_MEMBER and not S_SEARCH_USER --><a href="{U_FIND_MEMBER}">{L_FIND_USERNAME}</a> &bull; <!-- ELSEIF S_SEARCH_USER and U_HIDE_FIND_MEMBER and not S_IN_SEARCH_POPUP --><a href="{U_HIDE_FIND_MEMBER}">{L_HIDE_MEMBER_SEARCH}</a> &bull; <!-- ENDIF -->
				<strong style="font-size: 0.95em;"><a href="{S_MODE_ACTION}&first_char=">{L_ALL}</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=a#memberlist">A</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=b#memberlist">B</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=c#memberlist">C</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=d#memberlist">D</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=e#memberlist">E</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=f#memberlist">F</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=g#memberlist">G</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=h#memberlist">H</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=i#memberlist">I</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=j#memberlist">J</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=k#memberlist">K</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=l#memberlist">L</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=m#memberlist">M</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=n#memberlist">N</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=o#memberlist">O</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=p#memberlist">P</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=q#memberlist">Q</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=r#memberlist">R</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=s#memberlist">S</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=t#memberlist">T</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=u#memberlist">U</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=v#memberlist">V</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=w#memberlist">W</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=x#memberlist">X</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=y#memberlist">Y</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=z#memberlist">Z</a>&nbsp; 
				<a href="{S_MODE_ACTION}&first_char=other">#</a></strong>
				</li>
				<li class="rightside pagination">
					{TOTAL_USERS} &bull; 
					<!-- IF PAGINATION --><a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE -->{PAGE_NUMBER}<!-- ENDIF -->
				</li>
			</ul>

			<span class="corners-bottom"><span></span></span></div>
		</div>
	<!-- ENDIF -->

	<div class="forumbg forumbg-table">
		<div class="inner"><span class="corners-top"><span></span></span>

		<table class="table1" cellspacing="1" id="memberlist">
		<thead>
		<tr>
			<th class="name"><span class="rank-img"><a href="{U_SORT_RANK}">{L_RANK}</a></span><a href="{U_SORT_USERNAME}"><!-- IF S_SHOW_GROUP -->{L_GROUP_LEADER}<!-- ELSE -->{L_USERNAME}<!-- ENDIF --></a></th>
			<th class="posts"><a href="{U_SORT_POSTS}#memberlist">{L_POSTS}</a></th>
			[color=#FF0000]<th class="info"><a href="{U_SORT_BNET}#memberlist">[/color]{L_BNET}</a>{L_COMMA_SEPARATOR}<a href="{U_SORT_LOCATION}">{L_LOCATION}</a></th>
			<th class="joined"><a href="{U_SORT_JOINED}#memberlist">{L_JOINED}</a></th>
			<!-- IF U_SORT_ACTIVE --><th class="active"><a href="{U_SORT_ACTIVE}#memberlist">{L_LAST_ACTIVE}</a></th><!-- ENDIF -->
		</tr>
		</thead>
		<tbody>
		<!-- BEGIN memberrow -->
			<!-- IF S_SHOW_GROUP -->
				<!-- IF not memberrow.S_GROUP_LEADER and not $S_MEMBER_HEADER -->
				<!-- IF memberrow.S_FIRST_ROW -->
				<tr class="bg1">
					<td colspan="<!-- IF U_SORT_ACTIVE -->5<!-- ELSE -->4<!-- ENDIF -->">&nbsp;</td>
				</tr>
				<!-- ENDIF -->
		</tbody>
		</table>

	<span class="corners-bottom"><span></span></span></div>
</div>

<div class="forumbg">
	<div class="inner"><span class="corners-top"><span></span></span>

	<table class="table1" cellspacing="1">
	<thead>
	<tr>
		<th class="name">{L_GROUP_MEMBERS}</th>
		<th class="posts">&nbsp;</th>
		<th class="info">&nbsp;</th>
		<th class="joined">&nbsp;</th>
		<!-- IF U_SORT_ACTIVE --><th class="active">&nbsp;</th><!-- ENDIF -->
	</tr>
	</thead>
	<tbody>
					<!-- DEFINE $S_MEMBER_HEADER = 1 -->
				<!-- ENDIF -->
			<!-- ENDIF -->

	<tr class="<!-- IF memberrow.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
		<td><!-- IF memberrow.RANK_IMG --><span class="rank-img">{memberrow.RANK_IMG}</span><!-- ELSE --><span class="rank-img">{memberrow.RANK_TITLE}</span><!-- ENDIF --><!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE --><input type="checkbox" name="user" value="{memberrow.USERNAME}" /> <!-- ENDIF -->{memberrow.USERNAME_FULL}<!-- IF S_SELECT_SINGLE --><br />[&nbsp;<a href="#" onclick="insert_single('{memberrow.A_USERNAME}'); return false;">{L_SELECT}</a>&nbsp;]<!-- ENDIF --></td>
		<td class="posts">
<!-- IF memberrow.POSTS --><a href="{memberrow.U_SEARCH_USER}" title="{L_SEARCH_USER_POSTS}">{memberrow.POSTS}</a><!-- ELSE -->{memberrow.POSTS}<!-- ENDIF --></td>
		<td class="info">[/size]
[size=100][color=#FF0000]<!-- IF memberrow.BNET or memberrow.LOCATION -->
<!-- IF memberrow.BNET --><div>{memberrow.BNET}</a></div><!-- ENDIF -->[/color][/size][size=80]

<!-- IF memberrow.LOCATION --><div>{memberrow.LOCATION}</div><!-- ENDIF --><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
		<td>{memberrow.JOINED}</td>
		<!-- IF S_VIEWONLINE --><td>{memberrow.VISITED}&nbsp;</td><!-- ENDIF -->
	</tr>
		<!-- BEGINELSE -->
	<tr class="bg1">
		<td colspan="<!-- IF S_VIEWONLINE -->5<!-- ELSE -->4<!-- ENDIF -->">{L_NO_MEMBERS}</td>
	</tr>
		<!-- END memberrow -->
	</tbody>
	</table>

	<span class="corners-bottom"><span></span></span></div>
</div>

<!-- IF S_IN_SEARCH_POPUP and not S_SELECT_SINGLE -->
<fieldset class="display-actions">
	<input type="submit" name="submit" value="{L_SELECT_MARKED}" class="button2" />
	<div><a href="#" onclick="marklist('results', 'user', true); return false;">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('results', 'user', false); return false;">{L_UNMARK_ALL}</a></div>
</fieldset>
<!-- ENDIF -->

<!-- IF S_IN_SEARCH_POPUP -->
</form>
<form method="post" id="sort-results" action="{S_MODE_ACTION}">
<!-- ENDIF -->

<!-- IF S_IN_SEARCH_POPUP and not S_SEARCH_USER -->
<fieldset class="display-options">
	<!-- IF PREVIOUS_PAGE --><a href="{PREVIOUS_PAGE}" class="left-box {S_CONTENT_FLOW_BEGIN}">{L_PREVIOUS}</a><!-- ENDIF -->
	<!-- IF NEXT_PAGE --><a href="{NEXT_PAGE}" class="right-box {S_CONTENT_FLOW_END}">{L_NEXT}</a><!-- ENDIF -->
	<label for="sk">{L_SELECT_SORT_METHOD}: <select name="sk" id="sk">{S_MODE_SELECT}</select></label> 
	<label for="sd">{L_ORDER} <select name="sd" id="sd">{S_ORDER_SELECT}</select> <input type="submit" name="sort" value="{L_SUBMIT}" class="button2" /></label>
</fieldset>
<!-- ENDIF -->

</form>

<hr />

<ul class="linklist">
	<li class="rightside pagination">{TOTAL_USERS} &bull; <!-- IF PAGINATION --><a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE -->{PAGE_NUMBER}<!-- ENDIF --></li>
</ul>

<!-- IF S_IN_SEARCH_POPUP -->
	<!-- INCLUDE simple_footer.html -->
<!-- ELSE -->
	<!-- INCLUDE jumpbox.html -->
	<!-- INCLUDE overall_footer.html -->
<!-- ENDIF -->[/size]

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: memberlist_body Aiuto...!

Messaggio da Micogian » 27/06/2012, 7:03

Ti avevo chiesto di controllare se il campo Bnet è nella tabella profile_fields_data e come viene chiamato esattamente il campo.
Dovrebbe essere "pf_bnet" ma bisogna controllare.

Se è così fai questo:
alla fine del file memberlist.php, prima del tag di chiusura ?> metti questa function:

Codice: Seleziona tutto

function search_bnet($user_id)
{
global $db;
$sql = "SELECT user_id, pf_bnet
            FROM " . PROFILE_FIELDS_DATA_TABLE . "
            WHERE user_id = " . $user_id ;
        $result = $db->sql_query($sql);
        $row = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
        $bnet = $row['pf_bnet'];
        if (!isset($bnet))
        {
        return $bnet;
        }
} 
Poi trova la riga dell'array

Codice: Seleziona tutto

'L_VIEWING_PROFILE'	=> sprintf($user->lang['VIEWING_PROFILE'], $username),
e ci aggiungi la riga

Codice: Seleziona tutto

'BNET'	=> search_bnet($data['user_id']),
A questo punto hai a disposizione la variabile {memberrow.BNET} che inserirai nel template memberlist_body.html in questo modo

Codice: Seleziona tutto

<!-- IF memberrow.BNET -->{memberrow.BNET}<!-- ENDIF -->
Potresti anche inserire la variabile in un campo già presente nella Lista utenti e portarlo a capo:

Codice: Seleziona tutto

<!-- IF memberrow.BNET --><br />{memberrow.BNET}<!-- ENDIF -->
Ti può tornare utile dare un'occhiata ad una Mod che avevo fatto tempo fa: mods-in-sviluppo-f12/add-info-memberlis ... t2405.html

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: memberlist_body Aiuto...!

Messaggio da alex75 » 27/06/2012, 8:24

Perdonatemi se mi intrometto...
Scusami, ma la tua domanda non è molto chiara...
Prima parli di codice scritto manualmente e di sostituire il campo sito personale con un tuo campo "bnet"...
Poi alleghi una screen, dove tale campo è stato creato dal PCA.
Se il tuo problema è semplicemente, aver creato il campo Bnet e non visualizzarlo; oltre a quello che hai già fatto (come da screen allegata) prova con questi passaggi:
Svuota la cache e cancella i cookie.
Controlla sul PCA alla voce generale/caratteristiche che siano selezionati:

Permetti ai temi di visualizzare i campi personalizzati nel profilo nella lista utenti: Sì
Visualizza i campi personalizzati nel profilo degli utenti: Sì
Visualizza i campi personalizzati nelle pagine degli argomenti: Si

Se non avessi capito, la tua domanda, perdonami e continua pure, come indicato dal grande micogian (mani migliori non puoi trovarne :D ;) )

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: memberlist_body Aiuto...!

Messaggio da Micogian » 27/06/2012, 8:38

E' probabile che le soluzioni indicate da alex75 siano corrette, la mia soluzione va direttamente al sodo, estrae il contenuto del campo personalizzato per ogni utente e questo permette di gestire la variabile ricavata nel modo più appropriato.
Quello che non capisco è il fatto che tu dichiari di non avere collegamento FTP. Sinceramente senza la possibilità di gestire direttamente i file via FTP non si va lontano e prima o poi sorgeranno dei problemi.

Rispondi

Torna a “Supporto MODs”

Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti