Pagina 1 di 2
memberlist_body Aiuto...!
Inviato: 26/06/2012, 20:06
da Orion
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 --> <!-- 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 --> <!-- ENDIF --></td>
Sono alle prime armi, portate pazienza

Re: memberlist_body Aiuto...!
Inviato: 26/06/2012, 20:51
da Micogian
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.
Re: memberlist_body Aiuto...!
Inviato: 26/06/2012, 22:42
da Orion
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.
Re: memberlist_body Aiuto...!
Inviato: 26/06/2012, 23:28
da Micogian
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
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.
Re: memberlist_body Aiuto...!
Inviato: 27/06/2012, 1:00
da Orion
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

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..
Re: memberlist_body Aiuto...!
Inviato: 27/06/2012, 1:39
da Orion
Per logica dovrebbe essere già auto dichiarato, no? dovrebbe essere solo richiamabile.. oppure ne ho detta una grossa?
Re: memberlist_body Aiuto...!
Inviato: 27/06/2012, 1:56
da Orion
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> • <!-- 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> • <!-- ENDIF -->
<strong style="font-size: 0.95em;"><a href="{S_MODE_ACTION}&first_char=">{L_ALL}</a>
<a href="{S_MODE_ACTION}&first_char=a#memberlist">A</a>
<a href="{S_MODE_ACTION}&first_char=b#memberlist">B</a>
<a href="{S_MODE_ACTION}&first_char=c#memberlist">C</a>
<a href="{S_MODE_ACTION}&first_char=d#memberlist">D</a>
<a href="{S_MODE_ACTION}&first_char=e#memberlist">E</a>
<a href="{S_MODE_ACTION}&first_char=f#memberlist">F</a>
<a href="{S_MODE_ACTION}&first_char=g#memberlist">G</a>
<a href="{S_MODE_ACTION}&first_char=h#memberlist">H</a>
<a href="{S_MODE_ACTION}&first_char=i#memberlist">I</a>
<a href="{S_MODE_ACTION}&first_char=j#memberlist">J</a>
<a href="{S_MODE_ACTION}&first_char=k#memberlist">K</a>
<a href="{S_MODE_ACTION}&first_char=l#memberlist">L</a>
<a href="{S_MODE_ACTION}&first_char=m#memberlist">M</a>
<a href="{S_MODE_ACTION}&first_char=n#memberlist">N</a>
<a href="{S_MODE_ACTION}&first_char=o#memberlist">O</a>
<a href="{S_MODE_ACTION}&first_char=p#memberlist">P</a>
<a href="{S_MODE_ACTION}&first_char=q#memberlist">Q</a>
<a href="{S_MODE_ACTION}&first_char=r#memberlist">R</a>
<a href="{S_MODE_ACTION}&first_char=s#memberlist">S</a>
<a href="{S_MODE_ACTION}&first_char=t#memberlist">T</a>
<a href="{S_MODE_ACTION}&first_char=u#memberlist">U</a>
<a href="{S_MODE_ACTION}&first_char=v#memberlist">V</a>
<a href="{S_MODE_ACTION}&first_char=w#memberlist">W</a>
<a href="{S_MODE_ACTION}&first_char=x#memberlist">X</a>
<a href="{S_MODE_ACTION}&first_char=y#memberlist">Y</a>
<a href="{S_MODE_ACTION}&first_char=z#memberlist">Z</a>
<a href="{S_MODE_ACTION}&first_char=other">#</a></strong>
</li>
<li class="rightside pagination">
{TOTAL_USERS} •
<!-- IF PAGINATION --><a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> • <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 -->"> </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"> </th>
<th class="info"> </th>
<th class="joined"> </th>
<!-- IF U_SORT_ACTIVE --><th class="active"> </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 />[ <a href="#" onclick="insert_single('{memberrow.A_USERNAME}'); return false;">{L_SELECT}</a> ]<!-- 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 --> <!-- ENDIF --></td>
<td>{memberrow.JOINED}</td>
<!-- IF S_VIEWONLINE --><td>{memberrow.VISITED} </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> • <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} • <!-- IF PAGINATION --><a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> • <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]
Re: memberlist_body Aiuto...!
Inviato: 27/06/2012, 7:03
da Micogian
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
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
Re: memberlist_body Aiuto...!
Inviato: 27/06/2012, 8:24
da alex75
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

)
Re: memberlist_body Aiuto...!
Inviato: 27/06/2012, 8:38
da Micogian
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.