1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-21 06:53:49 +02:00

[feature/avatars] Made ACP avatar gallery in Manage Users prettier

Added row/column information so avatars can be displayed nicely in
the ACP

PHPBB3-10018
This commit is contained in:
Cullen Walsh 2011-06-18 23:49:04 -07:00
parent a06380c69a
commit 8416bf3dc9
4 changed files with 68 additions and 27 deletions

View File

@ -1,14 +1,25 @@
<label for="category">{L_AVATAR_CATEGORY}: <select name="av_local_cat" id="category">
<option value="">{L_NO_AVATAR_CATEGORY}</option>
<!-- BEGIN av_local_cats -->
<option value="{av_local_cats.NAME}"<!-- IF av_local_cats.SELECTED --> selected="selected"<!-- ENDIF -->>{av_local_cats.NAME}</option>
<!-- END av_local_cats -->
</select></label>
<input type="submit" value="{L_GO}" name="av_local_go" class="button2" />
<div id="gallery">
<!-- BEGIN av_local_imgs -->
<label for="av-{av_local_imgs.S_ROW_COUNT}"><img src="{av_local_imgs.AVATAR_IMAGE}" alt="" /><br />
<input type="radio" name="av_local_file" id="av-{av_local_imgs.S_ROW_COUNT}" value="{av_local_imgs.AVATAR_FILE}" /></label>
<!-- END av_local_imgs -->
</div>
<dl>
<dt><label for="category">{L_AVATAR_CATEGORY}:</label></dt>
<dd><select name="av_local_cat" id="category">
<option value="">{L_NO_AVATAR_CATEGORY}</option>
<!-- BEGIN av_local_cats -->
<option value="{av_local_cats.NAME}"<!-- IF av_local_cats.SELECTED --> selected="selected"<!-- ENDIF -->>{av_local_cats.NAME}</option>
<!-- END av_local_cats -->
</select>&nbsp;<input type="submit" value="{L_GO}" name="av_local_go" class="button2" /></dd>
</dl>
<dl>
<table cellspacing="1">
<!-- BEGIN av_local_row -->
<tr>
<!-- BEGIN av_local_col -->
<td class="row1" style="text-align: center;"><img src="{av_local_row.av_local_col.AVATAR_IMAGE}" alt="{av_local_row.av_local_col.AVATAR_NAME}" title="{av_local_row.av_local_col.AVATAR_NAME}"/></td>
<!-- END av_local_col -->
</tr>
<tr>
<!-- BEGIN av_local_col -->
<td class="row2" style="text-align: center;"><input type="radio" name="av_local_file" id="av-{av_local_row.av_local_col.S_ROW_COUNT}" value="{av_local_row.av_local_col.AVATAR_FILE}" /></td>
<!-- END av_local_col -->
</tr>
<!-- END av_local_row -->
</table>
</dl>

View File

@ -1692,6 +1692,9 @@ class acp_users
$avatar_drivers = $avatar_manager->get_valid_drivers();
sort($avatar_drivers);
// This is normalised data, without the user_ prefix
$avatar_data = phpbb_avatar_driver::clean_row($user_row, phpbb_avatar_driver::FROM_USER);
if ($submit)
{
if (check_form_key($form_name))
@ -1700,12 +1703,17 @@ class acp_users
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$driver"])
{
$avatar = $avatar_manager->get_driver($driver);
$result = $avatar->process_form($template, $user_row, $error);
$result = $avatar->process_form($template, $avatar_data, $error);
if ($result && empty($error))
{
// Success! Lets save the result in the database
$result['user_avatar_type'] = $driver;
$result = array(
'user_avatar_type' => $driver,
'user_avatar' => $result['avatar'],
'user_avatar_width' => $result['avatar_width'],
'user_avatar_height' => $result['avatar_height'],
);
$sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $result) . '
WHERE user_id = ' . $user_id;
@ -1751,7 +1759,7 @@ class acp_users
$avatar = $avatar_manager->get_driver($driver);
if ($avatar->prepare_form($template, $user_row, $error))
if ($avatar->prepare_form($template, $avatar_data, $error))
{
$driver_u = strtoupper($driver);
$template->assign_block_vars('avatar_drivers', array(

View File

@ -51,7 +51,7 @@ class phpbb_avatar_driver_local extends phpbb_avatar_driver
{
$avatar_list = $this->get_avatar_list();
$category = request_var('av_local_cat', '');
$categories = array_keys($avatar_list);
foreach ($categories as $cat)
@ -67,13 +67,33 @@ class phpbb_avatar_driver_local extends phpbb_avatar_driver
if (!empty($avatar_list[$category]))
{
foreach ($avatar_list[$category] as $img => $data)
$table_cols = isset($row['av_gallery_cols']) ? $row['av_gallery_cols'] : 4;
$row_count = $col_count = $av_pos = 0;
$av_count = sizeof($avatar_list[$category]);
reset($avatar_list[$category]);
while ($av_pos < $av_count)
{
$template->assign_block_vars('av_local_imgs', array(
'AVATAR_IMAGE' => $this->phpbb_root_path . $this->config['avatar_gallery_path'] . '/' . $data['file'],
'AVATAR_NAME' => $data['name'],
'AVATAR_FILE' => $data['filename'],
$img = current($avatar_list[$category]);
next($avatar_list[$category]);
if ($col_count == 0)
{
++$row_count;
$template->assign_block_vars('av_local_row', array(
));
}
$template->assign_block_vars('av_local_row.av_local_col', array(
'AVATAR_IMAGE' => $this->phpbb_root_path . $this->config['avatar_gallery_path'] . '/' . $img['file'],
'AVATAR_NAME' => $img['name'],
'AVATAR_FILE' => $img['filename'],
));
$col_count = ($col_count + 1) % $table_cols;
++$av_pos;
}
}

View File

@ -7,8 +7,10 @@
<input type="submit" value="{L_GO}" name="av_local_go" class="button2" />
<div id="gallery">
<!-- BEGIN av_local_imgs -->
<label for="av-{av_local_imgs.S_ROW_COUNT}"><img src="{av_local_imgs.AVATAR_IMAGE}" alt="" /><br />
<input type="radio" name="av_local_file" id="av-{av_local_imgs.S_ROW_COUNT}" value="{av_local_imgs.AVATAR_FILE}" /></label>
<!-- END av_local_imgs -->
<!-- BEGIN av_local_row -->
<!-- BEGIN av_local_col -->
<label for="av-{av_local_row.av_local_col.S_ROW_COUNT}"><img src="{av_local_row.av_local_col.AVATAR_IMAGE}" alt="" /><br />
<input type="radio" name="av_local_file" id="av-{av_local_row.av_local_col.S_ROW_COUNT}" value="{av_local_row.av_local_col.AVATAR_FILE}" /></label>
<!-- END av_local_col -->
<!-- END av_local_row -->
</div>