diff --git a/upload/ajax/edit_group_profile.php b/upload/ajax/edit_group_profile.php index 8d659a090..52ca3c502 100644 --- a/upload/ajax/edit_group_profile.php +++ b/upload/ajax/edit_group_profile.php @@ -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'); } diff --git a/upload/group_config.php b/upload/group_config.php index 1016873f8..bdd079d5b 100644 --- a/upload/group_config.php +++ b/upload/group_config.php @@ -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')); diff --git a/upload/groupcp.php b/upload/groupcp.php index b4672599a..4e94f85ac 100644 --- a/upload/groupcp.php +++ b/upload/groupcp.php @@ -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, diff --git a/upload/includes/init_bb.php b/upload/includes/init_bb.php index 46cf5c51a..5dad02c1a 100644 --- a/upload/includes/init_bb.php +++ b/upload/includes/init_bb.php @@ -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); // закрыто diff --git a/upload/templates/default/group_config.tpl b/upload/templates/default/group_config.tpl index b161ed2f8..412d2537d 100644 --- a/upload/templates/default/group_config.tpl +++ b/upload/templates/default/group_config.tpl @@ -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) {

{PAGE_TITLE} :: {GROUP_NAME}

-
- {S_HIDDEN_FIELDS} - - - - - - - - - - - - - + + +
{L_GROUP_INFORMATION}
{L_GROUP_NAME}:
{L_GROUP_DESCRIPTION}:
+ + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - -
{L_GROUP_INFORMATION}
{L_GROUP_NAME}:
{L_GROUP_DESCRIPTION}:
+

+ +

+

+ + +

+
{L_GROUP_TYPE}: +

+    +    + +

+
{L_RELEASE_GROUP} +    + +
+ {L_AVATAR} + +

- + avatar

- - +

-
{L_GROUP_TYPE}: -

-    -    - -

-
{L_RELEASE_GROUP} -    - -
{L_AVATAR} 
- \ No newline at end of file + + +
+
{AVATAR_EXPLAIN}

+ +
+ {S_HIDDEN_FIELDS} + + + +
+ +
\ No newline at end of file diff --git a/upload/templates/default/groupcp.tpl b/upload/templates/default/groupcp.tpl index 9d7e8e655..2e8236c56 100644 --- a/upload/templates/default/groupcp.tpl +++ b/upload/templates/default/groupcp.tpl @@ -57,7 +57,7 @@

{GROUP_NAME}

-
 
+ {GROUP_AVATAR}