//
schreibst, bzw. die Zeile vorübergehend löschst?Wo wird $data definiert?
Oder andere Idee:
Könntest du deine memberlist.php hier per Pastebin hochladen. Dann kann ich selbst mal vergleichen.
//
schreibst, bzw. die Zeile vorübergehend löschst?memberlist.php?mode=searchuser
-> Suche) kommt folgende Fehlermeldung:Ich kann da nur schwer durchsteigen, verstehe auch nicht, warum 'u.user_id' dort nicht gefunden wird, bin also quasi mit meinem Latein am Ende, dass ohnehin nur sehr gering ist.SQL ERROR [ mysqli ]
Unknown column 'u.user_id' in 'on clause' [1054]
SQL
SELECT u.user_id FROM phpbb_users u , phpbb_user_group ug LEFT JOIN phpbb_profile_fields_data fd ON (u.user_id = fd.user_id) WHERE u.user_type IN (0, 3, 1) AND u.user_id = ug.user_id AND ug.group_id = 51 AND ug.user_pending = 0 ORDER BY u.user_regdate ASC LIMIT 50
BACKTRACE
[...]
FILE: [ROOT]/memberlist.php
LINE: 1571
CALL: phpbb\db\driver\factory->sql_query_limit()
/memberlist.php
, /styles/prosilver/template/memberlist_body.html
, /styles/prosilver/template/memberlist_search.html
und /language/de/common.php
mit meinen Modifikationen zu vergleichen. Man muss das Rad ja nicht zweimal erfinden. Ich hab auch ein benutzerdefiniertes Profilfeld mit dem Namen "location_mysearch" eingerichtet. Die Änderungen von 3.2.10 nach 3.3.1 sind, so weit ich das beurteilen kann, nicht so bedeutsam für diese Problematik. Das sollte sich gut übertragen lassen.Code: Alles auswählen
// Get us some users :D
if(isset($sort_key_sql['n'])) {
$sql = "SELECT u.user_id
FROM (" . USERS_TABLE . " u
$sql_from)
LEFT JOIN " . PROFILE_FIELDS_DATA_TABLE . " fd
ON (u.user_id = fd.user_id)
WHERE (" . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where)
ORDER BY $order_by";
} else {
$sql = "SELECT u.user_id
FROM " . USERS_TABLE . " u
$sql_from
WHERE " . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where
ORDER BY $order_by";
}
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
Code: Alles auswählen
// Get us some users :D
$sql = "SELECT u.user_id
FROM (" . USERS_TABLE . " u
$sql_from)
LEFT JOIN " . PROFILE_FIELDS_DATA_TABLE . " fd ON (u.user_id = fd.user_id)
WHERE " . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where
ORDER BY $order_by";
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
$user_list = array();
while ($row = $db->sql_fetchrow($result))
{
$user_list[] = (int) $row['user_id'];
}
$db->sql_freeresult($result);
// Load custom profile fields
if ($config['load_cpf_memberlist'])
{
/* @var $cp \phpbb\profilefields\manager */
$cp = $phpbb_container->get('profilefields.manager');
$cp_row = $cp->generate_profile_fields_template_headlines('field_show_on_ml');
foreach ($cp_row as $profile_field)
{
$template->assign_block_vars('custom_fields', $profile_field);
}
}
Code: Alles auswählen
// Get us some users :D
$sql = "SELECT u.user_id
FROM (" . USERS_TABLE . " u
$sql_from)
LEFT JOIN " . PROFILE_FIELDS_DATA_TABLE . " fd ON (u.user_id = fd.user_id)
WHERE " . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where
ORDER BY $order_by";
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
$user_list = array();
while ($row = $db->sql_fetchrow($result))
{
$user_list[] = (int) $row['user_id'];
}
$db->sql_freeresult($result);
// Load custom profile fields
if ($config['load_cpf_memberlist'])
{
/* @var $cp \phpbb\profilefields\manager */
$cp = $phpbb_container->get('profilefields.manager');
$cp_row = $cp->generate_profile_fields_template_headlines('field_show_on_ml');
foreach ($cp_row as $profile_field)
{
$template->assign_block_vars('custom_fields', $profile_field);
}
}
Code: Alles auswählen
case 'livesearch':
$username_chars = $request->variable('username', '', true);
$sql = 'SELECT username, user_id, user_colour
FROM ' . USERS_TABLE . '
WHERE ' . $db->sql_in_set('user_type', $user_types) . '
AND username_clean ' . $db->sql_like_expression(utf8_clean_string($username_chars) . $db->get_any_char());
$result = $db->sql_query_limit($sql, 10);
$user_list = array();
while ($row = $db->sql_fetchrow($result))
{
$user_list[] = array(
'user_id' => (int) $row['user_id'],
'result' => $row['username'],
'username_full' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
'display' => get_username_string('no_profile', $row['user_id'], $row['username'], $row['user_colour']),
);
}
$db->sql_freeresult($result);
$json_response = new \phpbb\json_response();
$json_response->send(array(
'keyword' => $username_chars,
'results' => $user_list,
));
break;
Code: Alles auswählen
case 'livesearch':
$username_chars = $request->variable('username', '', true);
$sql = 'SELECT username, u.user_id, user_colour, pf_plz_wohnort
FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . PROFILE_FIELDS_DATA_TABLE . ' fd ON (u.user_id = fd.user_id)
WHERE ' . $db->sql_in_set('user_type', $user_types) . '
AND username_clean ' . $db->sql_like_expression(utf8_clean_string($username_chars) . $db->get_any_char());
$result = $db->sql_query_limit($sql, 10);
$user_list = array();
while ($row = $db->sql_fetchrow($result))
{
$user_list[] = array(
'user_id' => (int) $row['user_id'],
'result' => $row['username'],
'plz_wohnort' => $row['pf_plz_wohnort'],
'username_full' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
'display' => get_username_string('no_profile', $row['user_id'], $row['username'], $row['user_colour'], $row['pf_plz_wohnort']),
);
}
$db->sql_freeresult($result);
$json_response = new \phpbb\json_response();
$json_response->send(array(
'keyword' => $username_chars,
'results' => $user_list,
));
break;
Code: Alles auswählen
// Sorting
$sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'c' => $user->lang['SORT_JOINED'], 'd' => $user->lang['SORT_POST_COUNT']);
$sort_key_sql = array('a' => 'u.username_clean', 'c' => 'u.user_regdate', 'd' => 'u.user_posts');
Code: Alles auswählen
// Sorting
$sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'c' => $user->lang['SORT_JOINED'], 'd' => $user->lang['SORT_POST_COUNT'], 'n' => $user->lang['SORT_PLZ_WOHNORT']);
$sort_key_sql = array('a' => 'u.username_clean', 'c' => 'u.user_regdate', 'd' => 'u.user_posts', 'n' => 'u.plz_wohnort');
$sort_key_text['n'] = $user->lang['PLZ_WOHNORT'];
$sort_key_sql['n'] = 'pf_plz_wohnort';
Code: Alles auswählen
// Search URL parameters, if any of these are in the URL we do a search
$search_params = array('username', 'email', 'jabber', 'search_group_id', 'joined_select', 'active_select', 'count_select', 'joined', 'active', 'count', 'ip');
Code: Alles auswählen
// Search URL parameters, if any of these are in the URL we do a search
$search_params = array('username', 'plz_wohnort', 'email', 'jabber', 'search_group_id', 'joined_select', 'active_select', 'count_select', 'joined', 'active', 'count', 'ip');
Code: Alles auswählen
$username = $request->variable('username', '', true);
Code: Alles auswählen
$plz_wohnort = $request->variable('plz_wohnort', '', true . '*');
Code: Alles auswählen
$sql_where .= ($username) ? ' AND u.username_clean ' . $db->sql_like_expression(str_replace('*', $db->get_any_char(), utf8_clean_string($username))) : '';
Code: Alles auswählen
$sql_where .= mb_strtolower($plz_wohnort) ? ' AND LOWER(pf_plz_wohnort) ' . $db->sql_like_expression(str_replace('*', $db->get_any_char(), utf8_clean_string($plz_wohnort))) . ' ' : '';
Code: Alles auswählen
// Count the users ...
$sql = 'SELECT COUNT(u.user_id) AS total_users
FROM ' . USERS_TABLE . " u$sql_from
WHERE " . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where";
$result = $db->sql_query($sql);
$total_users = (int) $db->sql_fetchfield('total_users');
$db->sql_freeresult($result);
Code: Alles auswählen
// Count the users ...
$sql = 'SELECT COUNT(u.user_id) AS total_users
FROM (' . USERS_TABLE . " u
$sql_from)
LEFT JOIN " . PROFILE_FIELDS_DATA_TABLE . " fd
ON (u.user_id = fd.user_id)
WHERE (" . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where)";
$result = $db->sql_query($sql);
$total_users = (int) $db->sql_fetchfield('total_users');
$db->sql_freeresult($result);
Code: Alles auswählen
'username' => array('username', '', true),
Code: Alles auswählen
'plz_wohnort' => array('plz_wohnort', '', true. '*'),
Code: Alles auswählen
'USERNAME' => $username,
Code: Alles auswählen
'PLZ_WOHNORT' => $plz_wohnort,
Code: Alles auswählen
// Get us some users :D
$sql = "SELECT u.user_id
FROM " . USERS_TABLE . " u
$sql_from
WHERE " . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where
ORDER BY $order_by";
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
Code: Alles auswählen
// Get us some users :D
if(isset($sort_key_sql['n'])) {
$sql = "SELECT u.user_id
FROM (" . USERS_TABLE . " u
$sql_from)
LEFT JOIN " . PROFILE_FIELDS_DATA_TABLE . " fd
ON (u.user_id = fd.user_id)
WHERE (" . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where)
ORDER BY $order_by";
} else {
$sql = "SELECT u.user_id
FROM " . USERS_TABLE . " u
$sql_from
WHERE " . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where
ORDER BY $order_by";
}
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
Code: Alles auswählen
'S_INACTIVE' => $row['user_type'] == USER_INACTIVE,
Code: Alles auswählen
'S_PLZ_WOHNORT' => (isset($cp_row['row']) && sizeof($cp_row['row'])) ? true : false,
Code: Alles auswählen
'U_SORT_USERNAME' => $sort_url . '&sk=a&sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
Code: Alles auswählen
'U_SORT_PLZ_WOHNORT' => $sort_url . '&sk=n&sd=' . (($sort_key == 'n' && $sort_dir == 'a') ? 'd' : 'a'),
Code: Alles auswählen
'LOCATION' => 'Wohnort',
Code: Alles auswählen
'PLZ_WOHNORT' => 'PLZ Wohnort',
'SORT_PLZ_WOHNORT' => 'PLZ',
Code: Alles auswählen
<table class="table1 memberlist" id="memberlist">
<thead>
<tr>
<th class="name" data-dfn="{L_RANK}{L_COMMA_SEPARATOR}<!-- IF S_SHOW_GROUP and .memberrow -->{L_GROUP_LEADER}<!-- ELSE -->{L_USERNAME}<!-- ENDIF -->"><span class="rank-img"><a href="{U_SORT_RANK}">{L_RANK}</a></span><a href="{U_SORT_USERNAME}"><!-- IF S_SHOW_GROUP and .memberrow -->{L_GROUP_LEADER}<!-- ELSE -->{L_USERNAME}<!-- ENDIF --></a></th>
<th class="posts"><a href="{U_SORT_POSTS}#memberlist">{L_POSTS}</a></th>
<th class="info"><!-- BEGIN custom_fields --><!-- IF not custom_fields.S_FIRST_ROW -->{L_COMMA_SEPARATOR} <!-- ENDIF -->{custom_fields.PROFILE_FIELD_NAME}<!-- END custom_fields --></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 -->
{% EVENT memberlist_body_memberlist_after %}
</tr>
</thead>
<tbody>
Code: Alles auswählen
<table class="table1 memberlist" id="memberlist">
<thead>
<tr>
<th class="name" data-dfn="{L_RANK}{L_COMMA_SEPARATOR}<!-- IF S_SHOW_GROUP and .memberrow -->{L_GROUP_LEADER}<!-- ELSE -->{L_USERNAME}<!-- ENDIF -->"><span class="rank-img"><a href="{U_SORT_RANK}">{L_RANK}</a></span><a href="{U_SORT_USERNAME}"><!-- IF S_SHOW_GROUP and .memberrow -->{L_GROUP_LEADER}<!-- ELSE -->{L_USERNAME}<!-- ENDIF --></a></th>
<th class="posts"><a href="{U_SORT_POSTS}#memberlist">{L_POSTS}</a></th>
<!-- IF U_SORT_PLZ_WOHNORT --><th class="info"><a href="{U_SORT_PLZ_WOHNORT}#memberlist">{L_PLZ_WOHNORT}</a></th><!-- ENDIF -->
<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 -->
{% EVENT memberlist_body_memberlist_after %}
</tr>
</thead>
<tbody>
Code: Alles auswählen
<td class="info">
{%- for field in memberrow.custom_fields -%}
<div>{% if field.S_PROFILE_CONTACT %}<a href="{{ field.PROFILE_FIELD_CONTACT }}">{% endif %}{{ field.PROFILE_FIELD_VALUE }}{% if field.S_PROFILE_CONTACT %}</a>{% endif %}</div>
{%- else -%}
{%- endfor -%}
</td>
Code: Alles auswählen
<td class="info"><!-- IF memberrow.PROFILE_PLZ_WOHNORT_VALUE --><div>{memberrow.PROFILE_PLZ_WOHNORT_VALUE}</div><!-- ELSE --> <!-- ENDIF --></td>
Code: Alles auswählen
<!-- IF S_EMAIL_SEARCH_ALLOWED -->
Code: Alles auswählen
<dl>
<dt><label for="plz_wohnort">{L_PLZ_WOHNORT}{L_COLON}</label></dt>
<dd><input type="text" name="plz_wohnort" id="plz_wohnort" value="{PLZ_WOHNORT}" class="inputbox" /></dd>
</dl>