+Добавлены аватары к группам

Signed-off-by: Dark Nightmare <gtdarknightmare@gmail.com>
This commit is contained in:
Dark Nightmare 2014-08-03 14:00:24 +06:00
commit f992d730fd
6 changed files with 113 additions and 49 deletions

View file

@ -36,6 +36,13 @@ switch ($mode)
$this->response['new_value'] = $value;
break;
case 'delete_avatar':
delete_avatar(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id']);
$value = 0;
$mode = 'avatar_ext_id';
$this->response['act'] = $value;
break;
default:
$this->ajax_die('Unknown mode');
}

View file

@ -15,6 +15,8 @@ $group_id = isset($_REQUEST[POST_GROUPS_URL]) ? intval($_REQUEST[POST_GROUPS_URL
$group_info = array();
$is_moderator = false;
$submit = !empty($_POST['submit']);
if ($group_id)
{
if (!$group_info = get_group_data($group_id))
@ -31,9 +33,37 @@ if ($group_id)
if ($is_moderator)
{
// TODO Creation Date, Admin panel, Avatar, Some tasty features
// TODO Creation Date, Admin panel, Some tasty features
$group_type = '';
// Avatar
if ($submit)
{
if (isset($_POST['delete_avatar']))
{
delete_avatar(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id']);
$avatar_ext_id = 0;
}
else if (!empty($_FILES['avatar']['name']) && $bb_cfg['avatars']['up_allowed'])
{
require(INC_DIR .'functions_upload.php');
$upload = new upload_common();
if ($upload->init($bb_cfg['avatars'], $_FILES['avatar']) AND $upload->store('avatar', array("user_id" => GROUP_AVATAR_MASK . $group_id, "avatar_ext_id" => $group_info['avatar_ext_id'])))
{
$avatar_ext_id = (int) $upload->file_ext_id;
}
else
{
bb_die(implode($upload->errors));
}
}
DB()->query("UPDATE ". BB_GROUPS ." SET avatar_ext_id = $avatar_ext_id WHERE group_id = $group_id LIMIT 1");
}
$group_type = '';
if ($group_info['group_type'] == GROUP_OPEN)
{
$group_type = $lang['GROUP_OPEN'];
@ -63,8 +93,12 @@ if ($is_moderator)
'S_GROUP_CLOSED_CHECKED' => ($group_info['group_type'] == GROUP_CLOSED) ? ' checked="checked"' : '',
'S_GROUP_HIDDEN_CHECKED' => ($group_info['group_type'] == GROUP_HIDDEN) ? ' checked="checked"' : '',
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_GROUPCP_ACTION' => "groupcp.php?" . POST_GROUPS_URL . "=$group_id",
'RELEASE_GROUP' => ($group_info['release_group']) ? true : false,
'S_GROUP_CONFIG_ACTION' => "group_config.php?" . POST_GROUPS_URL . "=$group_id",
'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatars']['max_width'], $bb_cfg['avatars']['max_height'], (round($bb_cfg['avatars']['max_size'] / 1024))),
'AVATAR_URL_PATH' => ($group_info['avatar_ext_id']) ? get_avatar_path(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id']) : '',
'RELEASE_GROUP' => ($group_info['release_group']) ? true : false,
));
$template->set_filenames(array('body' => 'group_config.tpl'));

View file

@ -513,6 +513,7 @@ else
'PAGE_TITLE' => $lang['GROUP_CONTROL_PANEL'],
'GROUP_NAME' => htmlCHR($group_info['group_name']),
'GROUP_DESCRIPTION' => bbcode2html($group_info['group_description']),
'GROUP_AVATAR' => get_avatar(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id'], true),
'GROUP_DETAILS' => $group_details,
'MOD_USER' => profile_url($group_moderator),
'MOD_AVATAR' => $avatar,

View file

@ -246,6 +246,8 @@ define('NOGENDER', 0);
# 1 - обычный опрос
define('POLL_FINISHED', 2);
define('GROUP_AVATAR_MASK', 9999900);
// Torrents (reserved: -1)
define('TOR_NOT_APPROVED', 0); // не проверено
define('TOR_CLOSED', 1); // закрыто

View file

@ -6,7 +6,8 @@ function manage_group(mode, value) {
group_id : {GROUP_ID},
value : value
});
ajax.callback.manage_group = function(data){
ajax.callback.manage_group = function(data) {
if (data.act == 0) $('div#avatar').hide(100);
console.log(data);
}
}
@ -14,50 +15,69 @@ function manage_group(mode, value) {
<h1 class="pagetitle">{PAGE_TITLE}<!-- IF GROUP_NAME --> :: {GROUP_NAME}<!-- ENDIF --></h1>
<p class="nav"><a href="{U_GROUP_URL}">{L_GROUP_RETURN}</a></p>
<form action="{S_GROUPCP_ACTION}" method="post">
{S_HIDDEN_FIELDS}
<table class="forumline pad_4">
<col class="row1" width="20%">
<col class="row2" width="100%">
<tr>
<th colspan="2">{L_GROUP_INFORMATION}</th>
</tr>
<tr>
<td>{L_GROUP_NAME}:</td>
<td><input type="text" id="group_name" size="80" value="{GROUP_NAME}" onblur="javascript:manage_group(this.id, this.value, this.id);" /></td>
</tr>
<tr>
<td>{L_GROUP_DESCRIPTION}:</td>
<td><div id="preview"></div>
<table class="forumline pad_4">
<col class="row1" width="20%">
<col class="row2" width="100%">
<tr>
<th colspan="2">{L_GROUP_INFORMATION}</th>
</tr>
<tr>
<td>{L_GROUP_NAME}:</td>
<td><input type="text" id="group_name" size="80" value="{GROUP_NAME}" onblur="javascript:manage_group(this.id, this.value, this.id);" /></td>
</tr>
<tr>
<td>{L_GROUP_DESCRIPTION}:</td>
<td><div id="preview"></div>
<p>
<textarea cols="80" id="group_description" rows="6" >{GROUP_DESCRIPTION}</textarea>
</p>
<p>
<input type="button" value="{L_AJAX_PREVIEW}" onclick="ajax.exec({ action: 'posts', type: 'view_message', message: $('textarea#group_description').val()});ajax.callback.posts=function(data){$('div#preview').html(data.message_html);initPostBBCode('div#preview')}">
<input type="button" value="{L_SAVE}" onclick="javascript:manage_group('group_description',$('textarea#group_description').val())">
</p>
</td>
</tr>
<tr>
<td>{L_GROUP_TYPE}:</td>
<td>
<p>
<label><input type="radio" name="group_type" onchange="javascript:manage_group(this.name,this.value)" value="{S_GROUP_OPEN_TYPE}" {S_GROUP_OPEN_CHECKED} />{L_GROUP_OPEN}</label> &nbsp;&nbsp;
<label><input type="radio" name="group_type" onchange="javascript:manage_group(this.name,this.value)" value="{S_GROUP_CLOSED_TYPE}" {S_GROUP_CLOSED_CHECKED} />{L_GROUP_CLOSED}</label> &nbsp;&nbsp;
<label><input type="radio" name="group_type" onchange="javascript:manage_group(this.name,this.value)" value="{S_GROUP_HIDDEN_TYPE}" {S_GROUP_HIDDEN_CHECKED} />{L_GROUP_HIDDEN}</label>
</p>
</td>
</tr>
<tr>
<td>{L_RELEASE_GROUP}</td>
<td>
<label><input type="radio" name="release_group" value="1" onclick="javascript:manage_group(this.name,this.value)" <!-- IF RELEASE_GROUP -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp;
<label><input type="radio" name="release_group" value="0" onclick="javascript:manage_group(this.name,this.value)" <!-- IF not RELEASE_GROUP -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<tr>
<td>
{L_AVATAR}
<!-- IF AVATAR_URL_PATH -->
<div id="avatar" align="center">
<p>
<textarea cols="80" id="group_description" rows="6" >{GROUP_DESCRIPTION}</textarea>
<img src="{AVATARS_URL}/{AVATAR_URL_PATH}" alt="avatar" />
</p>
<p>
<input type="button" value="{L_AJAX_PREVIEW}" onclick="ajax.exec({ action: 'posts', type: 'view_message', message: $('textarea#group_description').val()});ajax.callback.posts=function(data){$('div#preview').html(data.message_html);initPostBBCode('div#preview')}">
<input type="button" value="{L_SAVE}" onclick="javascript:manage_group('group_description',$('textarea#group_description').val())">
<input type="button" name="delete_avatar" value="{L_DELETE_IMAGE}" onclick="javascript:manage_group(this.name,this.value)" />
</p>
</td>
</tr>
<tr>
<td>{L_GROUP_TYPE}:</td>
<td>
<p>
<label><input type="radio" name="group_type" onchange="javascript:manage_group(this.name,this.value)" value="{S_GROUP_OPEN_TYPE}" {S_GROUP_OPEN_CHECKED} />{L_GROUP_OPEN}</label> &nbsp;&nbsp;
<label><input type="radio" name="group_type" onchange="javascript:manage_group(this.name,this.value)" value="{S_GROUP_CLOSED_TYPE}" {S_GROUP_CLOSED_CHECKED} />{L_GROUP_CLOSED}</label> &nbsp;&nbsp;
<label><input type="radio" name="group_type" onchange="javascript:manage_group(this.name,this.value)" value="{S_GROUP_HIDDEN_TYPE}" {S_GROUP_HIDDEN_CHECKED} />{L_GROUP_HIDDEN}</label>
</p>
</td>
</tr>
<tr>
<td>{L_RELEASE_GROUP}</td>
<td>
<label><input type="radio" name="release_group" value="1" onclick="javascript:manage_group(this.name,this.value)" <!-- IF RELEASE_GROUP -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp;
<label><input type="radio" name="release_group" value="0" onclick="javascript:manage_group(this.name,this.value)" <!-- IF not RELEASE_GROUP -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<tr>
<td>{L_AVATAR}</td>
<td><input type="file" />&nbsp;<input class="mainoption" type="submit" name="avatarupload" value="{L_UPLOAD_AVATAR_FILE}" /></td>
</tr>
</table>
</form>
</div>
<!-- ENDIF -->
</td>
<td valign="top">
<div id="avatar_explain" class="med">{AVATAR_EXPLAIN}</div><br/>
<!-- IF $bb_cfg['avatars']['up_allowed'] -->
<form action="{S_GROUP_CONFIG_ACTION}" method="post" enctype="multipart/form-data">
{S_HIDDEN_FIELDS}
<input type="hidden" name="MAX_FILE_SIZE" value="{$bb_cfg['avatars']['max_size']}" />
<input type="file" name="avatar" />
<input class="mainoption" type="submit" name="submit" value="{L_UPLOAD_AVATAR_FILE}" />
</form>
<!-- ENDIF -->
</td>
</tr>
</table>

View file

@ -57,7 +57,7 @@
<tr><td colspan="2"><h2>{GROUP_NAME}</h2></td></tr>
<tr>
<td align="center" valign="top">
<div style="height:100px;width:100px;background:#285e8e;">&nbsp;</div>
{GROUP_AVATAR}
</td>
<td valign="top">
<!-- IF GROUP_DESCRIPTION -->