Файл: group_config.php
Строк: 229
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_GROUPCP);
init_userprefs($userdata);
if ( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GROUPS_URL]) )
{
$group_id = ( isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) ? intval($HTTP_POST_VARS[POST_GROUPS_URL]) : intval($HTTP_GET_VARS[POST_GROUPS_URL]);
}
else
{
$group_id = '';
}
if ( !$userdata['session_logged_in'] )
{
redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true));
}
if ( $group_id != '' )
{
$sql = "SELECT * FROM " . GROUPS_TABLE . "
WHERE group_id = $group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error querying to find user group information', '', __LINE__, __FILE__, $sql);
}
if ( !($group_info = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_MESSAGE, $lang['Group_not_exist']);
}
}
$page_title = $lang['Group_Control_Panel'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$error = FALSE;
$error_msg = '';
if(strpos($user_agent, "Opera Mini") && !strpos($user_agent, "Opera Mini/3") && !strpos($user_agent, "Opera Mini/4") && !strpos($user_agent, "Opera Mini/5") && !strpos($user_agent, "Opera Mini/6"))
{
$result_ua = 1;
}
include($phpbb_root_path . 'includes/usercp_group_logo.'.$phpEx);
if ( isset($HTTP_POST_VARS['submit']) )
{
$group_type = isset($HTTP_POST_VARS['group_type']) ? intval($HTTP_POST_VARS['group_type']) : GROUP_OPEN;
$group_name = ( isset($HTTP_POST_VARS['group_name']) ) ? trim(htmlspecialchars($HTTP_POST_VARS['group_name'])) : '';
$group_description = ( isset($HTTP_POST_VARS['group_description']) ) ? trim(htmlspecialchars($HTTP_POST_VARS['group_description'])) : '';
if( $group_name == '' || $group_description == '' )
{
$error = true;
$error_msg .= ($group_name == '') ? $lang['Group_name_empty'] . 'Введите название!' : '';
$error_msg .= ($group_description == '') ? $lang['Group_desc_empty'] . 'Введите описание!' : '';
}
if ( $group_id != '' )
{
$group_moderator = $group_info['group_moderator'];
/*$group_single_user = ( isset($HTTP_POST_VARS['group_single_user']) ) ? intval($HTTP_POST_VARS['group_single_user']): '0';*/
$group_allow_weblogs = ( isset($HTTP_POST_VARS['group_allow_weblogs']) ) ? intval($HTTP_POST_VARS['group_allow_weblogs']) : '0';
$group_created_by_user = ( isset($HTTP_POST_VARS['group_created_by_user']) ) ? intval($HTTP_POST_VARS['group_created_by_user']) : '0';
if($userdata['user_id'] == $group_info['group_moderator'] || $userdata['user_level'] == ADMIN)
{
if ( $result_ua )
{
$opera_mini = "./opera_mini";
$uploadedfile = $HTTP_POST_VARS['fileupload'];
if ( strlen($uploadedfile) )
{
$array = explode('file=', $uploadedfile);
$tmp_name = $array[0];
$filebase64 = $array[1];
}
$tmp_name = basename($tmp_name);
if ( strlen($filebase64) )
{
$filedata = base64_decode($filebase64);
}
$fileom = @fopen($opera_mini . "/" . $tmp_name, "wb");
if ( $fileom )
{
if ( flock($fileom, LOCK_EX) )
{
fwrite($fileom, $filedata);
flock($fileom, LOCK_UN);
}
fclose($fileom);
}
$file = $opera_mini . "/" . $tmp_name;
$size = @filesize($file);
$tmp_name_type = strrchr($tmp_name, '.');
$repl = array("."=>"");
$type = strtr($tmp_name_type, $repl);
$user_logo_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $file != $opera_mini . "/") ? $file : '' );
$user_logo_name = ( !empty($tmp_name) ) ? $tmp_name : '';
$user_logo_size = ( !empty($size) ) ? $size : 0;
$user_logo_filetype = ( !empty($type) ) ? 'image/'.$type : '';
}
else
{
$user_logo_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : '' );
$user_logo_name = ( !empty($HTTP_POST_FILES['avatar']['name']) ) ? $HTTP_POST_FILES['avatar']['name'] : '';
$user_logo_size = ( !empty($HTTP_POST_FILES['avatar']['size']) ) ? $HTTP_POST_FILES['avatar']['size'] : 0;
$user_logo_filetype = ( !empty($HTTP_POST_FILES['avatar']['type']) ) ? $HTTP_POST_FILES['avatar']['type'] : '';
}
$avatar_sql = '';
if ( ( !empty($user_logo_upload) || !empty($user_logo_name) ))
{
if ( !empty($user_logo_upload) )
{
$avatar_mode = (empty($user_logo_name)) ? 'remote' : 'local';
$avatar_sql = ', ';
$avatar_sql .= user_logo_upload('', $avatar_mode, $group_info['group_logo'], 1, $error, $error_msg, $user_logo_upload, $user_logo_name, $user_logo_size, $user_logo_filetype);
}
else if ( !empty($user_logo_name) )
{
$l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024));
$error = true;
$error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $l_avatar_size;
}
}
$logo_filename = ($avatar_sql != '') ? 'images/group_logo/'.$group_info['group_logo'] : '';
if( !$error )
{
@unlink($logo_filename);
$sql = "UPDATE " . GROUPS_TABLE . " SET group_type = $group_type, group_name = '" . str_replace("'", "''", $group_name) . "', group_description = '" . str_replace("'", "''", $group_description) . "',
group_moderator = $group_moderator, group_single_user = '$group_single_user', group_allow_weblogs = $group_allow_weblogs, group_created_by_user = $group_created_by_user" . $avatar_sql . "
WHERE group_id = $group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql);
}
$message = 'Информация сообществ обновлена.<br /><br /><a href="' .append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">В сообщество</a>';
$template->assign_vars(array(
"META" => '<meta http-equiv="refresh" content="2;url=' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">')
);
message_die(GENERAL_MESSAGE, $message);
}
}
}
else if( $userdata['session_logged_in'] && $userdata['user_posts'] >= 500)
{
if( !$error )
{
$group_moderator = (int)$userdata['user_id'];
$sql = "INSERT INTO " . GROUPS_TABLE . " (group_type, group_name, group_description, group_moderator, group_single_user, group_created_by_user)
VALUES ($group_type, '" . str_replace("'", "''", $group_name) . "', '" . str_replace("'", "''", $group_description) . "', $group_moderator, '0' , '1')";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not insert new group', '', __LINE__, __FILE__, $sql);
}
$new_group_id = $db->sql_nextid();
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
VALUES ($new_group_id, $group_moderator, 0)";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not insert new user-group info', '', __LINE__, __FILE__, $sql);
}
message_die(GENERAL_MESSAGE, 'Группа успешно создана!<br/><a href="groupcp.php">К списку групп</a>');
}
}
if($error)
{
$template->set_filenames(array(
'reg_header' => 'error_body.tpl')
);
$template->assign_vars(array(
'ERROR_MESSAGE' => $error_msg)
);
$template->assign_var_from_handle('ERROR_BOX', 'reg_header');
}
}
if ($group_id == '')
{
if( !($userdata['session_logged_in'] && $userdata['user_posts'] >= 500))
{
message_die(GENERAL_MESSAGE, $lang['Need_more_posts']);
}
$template->assign_block_vars('switch_group_new', array());
}
else if($userdata['user_id'] == $group_info['group_moderator'] || $userdata['user_level'] == ADMIN)
{
$ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';
$form_enctype = ( @$ini_val('file_uploads') == '0' || strtolower(@$ini_val('file_uploads') == 'off') || phpversion() == '4.0.4pl1' || ( phpversion() < '4.0.3' && @$ini_val('open_basedir') != '' ) ) ? '' : 'enctype="multipart/form-data"';
$template->assign_block_vars('switch_group_edit', array());
if ( !$result_ua && $form_enctype != '' )
{
$template->assign_block_vars('switch_group_edit.local_upload', array() );
}
else if ( $result_ua && $form_enctype != '' )
{
$template->assign_block_vars('switch_group_edit.local_upload_om', array() );
}
/*$group_single_user_yes = ( $group_info['group_single_user'] ) ? ' checked="checked"' : '';
$group_single_user_no = ( !$group_info['group_single_user'] ) ? ' checked="checked"' : '';*/
}
else
{
message_die(GENERAL_MESSAGE, 'Вы не являетесь модератором сообщества или администратором.');
}
$group_open = ( $group_info['group_type'] == GROUP_OPEN ) ? ' checked="checked"' : '';
$group_closed = ( $group_info['group_type'] == GROUP_CLOSED ) ? ' checked="checked"' : '';
$group_hidden = ( $group_info['group_type'] == GROUP_HIDDEN ) ? ' checked="checked"' : '';
$template->set_filenames(array(
'body' => 'community/community_create.tpl')
);
$group_info['group_name'] = str_replace('"', '"', strip_tags($group_info['group_name']));
$group_info['group_description'] = str_replace('"', '"', $group_info['group_description']);
$s_hidden_fields = '<input type="hidden" name="' . POST_GROUPS_URL . '" value="' . $group_id . '" />';
$template->assign_vars(array(
'L_GROUP_NAME' => $lang['Group_name'],
'L_GROUP_DESCRIPTION' => $lang['Group_description'],
'L_GROUP_TYPE' => $lang['Group_type'],
'L_GROUP_OPEN' => $lang['Group_open'],
'L_GROUP_CLOSED' => $lang['Group_closed'],
'L_GROUP_HIDDEN' => $lang['Group_hidden'],
'L_NEW_GROUP' => $lang['New_group'],
'L_SUBMIT' => $lang['Submit'],
'L_RESET' => $lang['Reset'],
'L_YES' => $lang['Yes'],
'L_NO' => $lang['No'],
'GROUP_NAME' => $group_info['group_name'],
'GROUP_DESCRIPTION' => $group_info['group_description'],
'S_GROUP_OPEN_TYPE' => GROUP_OPEN,
'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED,
'S_GROUP_HIDDEN_TYPE' => GROUP_HIDDEN,
'S_GROUP_OPEN_CHECKED' => $group_open,
'S_GROUP_CLOSED_CHECKED' => $group_closed,
'S_GROUP_HIDDEN_CHECKED' => $group_hidden,
/*'S_GROUP_SINGLE_YES' => $group_single_user_yes,
'S_GROUP_SINGLE_NO' => $group_single_user_no,*/
'L_AVATAR_EXPLAIN' => sprintf('Логотип группы (не более %dx%d и %d кб.)', '140', '100', '50KB'),
'L_UPLOAD_AVATAR_FILE' => $lang['Upload_Avatar_file'],
'L_UPLOAD_AVATAR_URL' => $lang['Upload_Avatar_URL'],
'L_UPLOAD_AVATAR_URL_EXPLAIN' => $lang['Upload_Avatar_URL_explain'],
'S_FORM_ENCTYPE' => $form_enctype,
'CURRENT' => ($group_info['group_logo'] != '') ? '<img src="images/group_logo/' . $group_info['group_logo'] . '" alt="' . $group_info['group_logo'] . '_logo" /><br/>' : '',
'S_GROUP_ACTION' => ( $group_id == '' ) ? append_sid("group_config.$phpEx") : append_sid("group_config.$phpEx?" . POST_GROUPS_URL . "=$group_id"),
'S_HIDDEN_FIELDS' => $s_hidden_fields)
);
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>