Updating from 1.9.x

1.10.x
Julio Montoya 12 years ago
parent b74d1127dd
commit f6a3791b08
  1. 23
      main/group/group.php
  2. 84
      main/group/group_category.php
  3. 8
      main/group/group_creation.php
  4. 6
      main/group/group_edit.php
  5. 27
      main/group/group_space.php
  6. 27
      main/group/import.php
  7. 1
      main/group/member_settings.php
  8. 40
      main/group/settings.php
  9. 136
      main/inc/lib/groupmanager.lib.php

@ -14,7 +14,8 @@
* @author Isaac Flores, code cleaning and improvements
* @package chamilo.group
*/
$is_allowed_in_course = api_is_allowed_to_edit(false, true);
$is_allowed_in_course = api_is_allowed_in_course();
$userId = api_get_user_id();
$this_section = SECTION_COURSES;
$current_course_tool = TOOL_GROUP;
@ -42,23 +43,13 @@ if (api_get_setting('allow_group_categories') == 'false') {
$res = Database::query($sql);
$num = Database::num_rows($res);
if ($num == 0) {
$sql = "INSERT INTO ".$cat_table."
(c_id, id, title, description, forum_state, wiki_state, max_student, self_reg_allowed, self_unreg_allowed, groups_per_user, display_order)
$sql = "INSERT INTO $cat_table (c_id, id , title , description , forum_state, wiki_state, max_student, self_reg_allowed, self_unreg_allowed, groups_per_user, display_order)
VALUES ($course_id, '2', '".Database::escape_string(get_lang('DefaultGroupCategory'))."', '', '1', '1', '8', '0', '0', '0', '0');";
Database::query($sql);
}
}
/* Header */
if (!isset ($_GET['origin']) || $_GET['origin'] != 'learnpath') {
// So we are not in learnpath tool
event_access_tool(TOOL_GROUP);
if (!$is_allowed_in_course) {
api_not_allowed(true);
}
}
Display::display_header(get_lang('Groups'));
// Tool introduction
@ -77,14 +68,14 @@ Display::display_introduction_section(TOOL_GROUP);
if (isset($_GET['action']) && $is_allowed_in_course) {
switch ($_GET['action']) {
case 'self_reg':
if (GroupManager :: is_self_registration_allowed($_SESSION['_user']['user_id'], $my_group_id)) {
GroupManager :: subscribe_users($_SESSION['_user']['user_id'], $my_group_id);
if (GroupManager::is_self_registration_allowed($userId, $my_group_id)) {
GroupManager::subscribe_users($userId, $my_group_id);
Display :: display_confirmation_message(get_lang('GroupNowMember'));
}
break;
case 'self_unreg':
if (GroupManager :: is_self_unregistration_allowed($_SESSION['_user']['user_id'], $my_group_id)) {
GroupManager :: unsubscribe_users($_SESSION['_user']['user_id'], $my_group_id);
if (GroupManager::is_self_unregistration_allowed($userId, $my_group_id)) {
GroupManager::unsubscribe_users($userId, $my_group_id);
Display :: display_confirmation_message(get_lang('StudentDeletesHimself'));
}
break;

@ -15,7 +15,12 @@ $current_course_tool = TOOL_GROUP;
// Notice for unauthorized people.
api_protect_course_script(true);
if (!api_is_allowed_to_edit(false,true) || !(isset ($_GET['id']) || isset ($_POST['id']) || isset ($_GET['action']) || isset ($_POST['action']))) {
if (!api_is_allowed_to_edit(false,true) ||
!(isset ($_GET['id']) ||
isset ($_POST['id']) ||
isset ($_GET['action']) ||
isset ($_POST['action']))
) {
api_not_allowed();
}
@ -141,16 +146,13 @@ $form->addElement('html', '</div>');
}
$form->addElement('header', get_lang('DefaultSettingsForNewGroups'));
// Self registration
$form->addElement('hidden', 'action');
// Documents settings
$form->addElement('html', '<div class="span6">');
// Work settings
$group = array(
$form->createElement('checkbox', 'self_registration_allowed', get_lang('GroupSelfRegistration'), get_lang('GroupAllowStudentRegistration'), 1),
$form->createElement('checkbox', 'self_unregistration_allowed', null, get_lang('GroupAllowStudentUnregistration'), 1)
$form->createElement('checkbox', 'self_reg_allowed', get_lang('GroupSelfRegistration'), get_lang('GroupAllowStudentRegistration'), 1),
$form->createElement('checkbox', 'self_unreg_allowed', null, get_lang('GroupAllowStudentUnregistration'), 1)
);
$form->addGroup($group, '', Display::return_icon('user.png', get_lang('GroupSelfRegistration'), array(), ICON_SIZE_SMALL).' '.get_lang('GroupSelfRegistration'), '', false);
@ -169,7 +171,6 @@ $group = array(
$form->createElement('radio', 'work_state', null, get_lang('Private'), GroupManager::TOOL_PRIVATE)
);
$form->addGroup($group, '', Display::return_icon('work.png', get_lang('GroupWork'), array(), ICON_SIZE_SMALL).' '.get_lang('GroupWork'), '', false);
// Forum settings
$group = array(
@ -179,7 +180,6 @@ $group = array(
);
$form->addGroup($group, '', Display::return_icon('agenda.png', get_lang('GroupCalendar'), array(), ICON_SIZE_SMALL).' '.get_lang('GroupCalendar'), '', false);
// Wiki Settings
$form->addElement('html', '</div>');
$form->addElement('html', '<div class="span6">');
// Chat Settings
@ -215,9 +215,7 @@ $group = array(
);
$form->addGroup($group, '', Display::return_icon('chat.png', get_lang('Chat'), array(), ICON_SIZE_SMALL).' '.get_lang('Chat'), '', false);
$form->addElement('html', '</div>');
$form->addElement('html', '<div class="span12">');
// Submit
@ -231,34 +229,50 @@ if ($form->validate()) {
} else {
$max_member = $values['max_member'];
}
$self_reg_allowed = isset($values['self_reg_allowed']) ? $values['self_reg_allowed'] : 0;
$self_unreg_allowed = isset($values['self_unreg_allowed']) ? $values['self_unreg_allowed'] : 0;
switch ($values['action']) {
case 'update_settings':
GroupManager::update_category(
$values['id'],
$values['title'],
$values['description'],
$values['doc_state'],
$values['work_state'],
$values['calendar_state'],
$values['announcements_state'],
$values['forum_state'],
$values['wiki_state'],
$values['chat_state'],
$self_reg_allowed,
$self_unreg_allowed,
$max_member,
$values['groups_per_user']
);
$msg = urlencode(get_lang('GroupPropertiesModified'));
header('Location: group.php?action=show_msg&msg='.$msg.'&category='.$values['id']);
break;
case 'add_category':
GroupManager :: create_category($values['title'], $values['description'], $values['doc_state'], $values['work_state'], $values['calendar_state'], $values['announcements_state'], $values['forum_state'], $values['wiki_state'], $values['chat_state'], $self_reg_allowed, $self_unreg_allowed, $max_member, $values['groups_per_user']);
$msg = urlencode(get_lang('CategoryCreated'));
header('Location: group.php?action=show_msg&msg='.$msg);
break;
case 'update_settings':
GroupManager::update_category(
$values['id'],
$values['title'],
$values['description'],
$values['doc_state'],
$values['work_state'],
$values['calendar_state'],
$values['announcements_state'],
$values['forum_state'],
$values['wiki_state'],
$values['chat_state'],
$self_reg_allowed,
$self_unreg_allowed,
$max_member,
$values['groups_per_user']
);
$msg = urlencode(get_lang('GroupPropertiesModified'));
header('Location: group.php?action=show_msg&msg='.$msg.'&category='.$values['id']);
break;
case 'add_category':
GroupManager :: create_category(
$values['title'],
$values['description'],
$values['doc_state'],
$values['work_state'],
$values['calendar_state'],
$values['announcements_state'],
$values['forum_state'],
$values['wiki_state'],
$values['chat_state'],
$self_reg_allowed,
$self_unreg_allowed,
$max_member,
$values['groups_per_user']
);
$msg = urlencode(get_lang('CategoryCreated'));
header('Location: group.php?action=show_msg&msg='.$msg);
break;
}
}

@ -44,7 +44,13 @@ if (isset ($_POST['action'])) {
} elseif ($_POST['same_category']) {
$group['category'] = $_POST['group_0_category'];
}
GroupManager :: create_group($group['name'], $group['category'], $group['tutor'], $group['places']);
GroupManager::create_group(
$group['name'],
$group['category'],
$group['tutor'],
$group['places']
);
}
$msg = urlencode(count($groups).' '.get_lang('GroupsAdded'));
header('Location: group.php?action=show_msg&msg='.$msg);

@ -393,10 +393,11 @@ if ($form->validate()) {
}
$self_registration_allowed = isset($values['self_registration_allowed']) ? 1 : 0;
$self_unregistration_allowed = isset($values['self_unregistration_allowed']) ? 1 : 0;
GroupManager :: set_group_properties(
$current_group['id'],
strip_tags($values['name']),
strip_tags($values['description']),
$values['name'],
$values['description'],
$max_member,
$values['doc_state'],
$values['work_state'],
@ -454,7 +455,6 @@ if ($defaults['maximum_number_of_students'] == GroupManager::MEMBER_PER_GROUP_NO
$defaults['max_member'] = $defaults['maximum_number_of_students'];
}
if (!empty($_GET['keyword']) && !empty($_GET['submit'])) {
$keyword_name = Security::remove_XSS($_GET['keyword']);
echo '<br/>'.get_lang('SearchResultsFor').' <span style="font-style: italic ;"> '.$keyword_name.' </span><br>';

@ -60,9 +60,11 @@ if ($current_group['doc_state'] != 1 &&
$current_group['chat_state'] != 1 &&
$forum_state_public != 1
) {
if (!api_is_allowed_to_edit(null,true) && !GroupManager::is_user_in_group($user_id, $group_id)) {
api_not_allowed($print_headers);
}
if (!api_is_allowed_to_edit(null,true) &&
!GroupManager::is_user_in_group($user_id, $group_id)
) {
api_not_allowed($print_headers);
}
}
@ -137,7 +139,9 @@ if (!empty($current_group['description'])) {
* Group Tools
*/
// If the user is subscribed to the group or the user is a tutor of the group then
if (api_is_allowed_to_edit(false, true) OR GroupManager :: is_user_in_group(api_get_user_id(), $current_group['id'])) {
if (api_is_allowed_to_edit(false, true) OR
GroupManager::is_user_in_group(api_get_user_id(), $current_group['id'])
) {
$actions_array = array();
// Link to the forum of this group
$forums_of_groups = get_forums_of_group($current_group['id']);
@ -145,7 +149,12 @@ if (api_is_allowed_to_edit(false, true) OR GroupManager :: is_user_in_group(api_
if (is_array($forums_of_groups)) {
if ($current_group['forum_state'] != GroupManager::TOOL_NOT_AVAILABLE ) {
foreach ($forums_of_groups as $key => $value) {
if ($value['forum_group_public_private'] == 'public' || (/*!empty($user_subscribe_to_current_group) && */ $value['forum_group_public_private'] == 'private') || !empty($user_is_tutor) || api_is_allowed_to_edit(false, true)) {
//*!empty($user_subscribe_to_current_group) && */
if ($value['forum_group_public_private'] == 'public' ||
($value['forum_group_public_private'] == 'private') ||
!empty($user_is_tutor) ||
api_is_allowed_to_edit(false, true)
) {
$actions_array[] = array(
'url' => '../forum/viewforum.php?forum='.$value['forum_id'].'&gidReq='.Security::remove_XSS($current_group['id']).'&amp;origin=group',
'content' => Display::return_icon('forum.png', get_lang('Forum').': '.$value['forum_title'] , array(), 32)
@ -215,6 +224,7 @@ if (api_is_allowed_to_edit(false, true) OR GroupManager :: is_user_in_group(api_
// Link to the forum of this group
$forums_of_groups = get_forums_of_group($current_group['id']);
if (is_array($forums_of_groups)) {
if ( $current_group['forum_state'] == GroupManager::TOOL_PUBLIC ) {
foreach ($forums_of_groups as $key => $value) {
@ -227,6 +237,7 @@ if (api_is_allowed_to_edit(false, true) OR GroupManager :: is_user_in_group(api_
}
}
}
if ($current_group['doc_state'] == GroupManager::TOOL_PUBLIC) {
// Link to the documents area of this group
$actions_array[] = array(
@ -470,11 +481,11 @@ function email_filter($email) {
*/
function user_icon_filter($user_id) {
global $origin;
$userinfo = Database::get_user_info_from_id($user_id);
$userinfo = api_get_user_info($user_id);
$image_path = UserManager::get_user_picture_path_by_id($user_id, 'web', false, true);
$image_repository = $image_path['dir'];
$existing_image = $image_path['file'];
$photo = '<center><img src="'.$image_repository.$existing_image.'" alt="'.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).'" width="22" height="22" title="'.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).'" /></center>';
$photo = '<center><img src="'.$image_repository.$existing_image.'" alt="'.$userinfo['complete_name'].'" width="22" height="22" title="'.$userinfo['complete_name'].'" /></center>';
return '<a href="../user/userInfo.php?origin='.$origin.'&amp;uInfo='.$user_id.'">'.$photo;
}
@ -489,7 +500,7 @@ function user_icon_filter($user_id) {
* @return string HTML link
*/
function user_name_filter($name, $url_params, $row) {
$tab_user_info = Database::get_user_info_from_id($row[0]);
$tab_user_info = api_get_user_info($row[0]);
$username = api_htmlentities(sprintf(get_lang('LoginX'), $tab_user_info['username']), ENT_QUOTES);
return '<a href="../user/userInfo.php?uInfo='.$row[0].'&amp;'.$url_params.'" title="'.$username.'">'.$name.'</a>';
}

@ -2,9 +2,7 @@
/* For licensing terms, see /license.txt */
// Name of the language file that needs to be included
$language_file = 'group';
require_once '../inc/global.inc.php';
$this_section = SECTION_COURSES;
$current_course_tool = TOOL_GROUP;
@ -39,15 +37,23 @@ if ($form->validate()) {
$groupData = Import::csv_reader($_FILES['file']['tmp_name']);
$deleteNotInArray = $form->getSubmitValue('delete_not_in_file') == 1 ? true : false;
$result = GroupManager::importCategoriesAndGroupsFromArray($groupData, $deleteNotInArray);
$result = GroupManager::importCategoriesAndGroupsFromArray(
$groupData,
$deleteNotInArray
);
if (!empty($result)) {
$html = null;
foreach ($result as $status => $data) {
if (empty($data['category']) && empty($data['group'])) {
continue;
if ($status != 'error') {
if (empty($data['category']) && empty($data['group'])) {
continue;
}
}
$html .= " <h3>".get_lang(ucfirst($status)).' </h3>';
if (!empty($data['category'])) {
$html .= "<h4> ".get_lang('Categories').':</h4>';
foreach ($data['category'] as $category) {
@ -61,7 +67,18 @@ if ($form->validate()) {
$html .= "<div>".$group['group']."</div>";
}
}
if ($status == 'error') {
if (!empty($data)) {
foreach ($data as $message) {
if (!empty($message)) {
$html .= "<div>".$message."</div>";
}
}
}
}
}
echo $html;
}
}

@ -127,6 +127,7 @@ if (!empty($complete_user_list)) {
// Group members
$group_member_list = GroupManager :: get_subscribed_users($current_group['id']);
$selected_users = array();
if (!empty($group_member_list)) {
foreach ($group_member_list as $index => $user) {

@ -14,9 +14,6 @@
/* INIT SECTION */
// Name of the language file that needs to be included
$language_file = 'group';
require_once '../inc/global.inc.php';
$this_section = SECTION_COURSES;
$current_course_tool = TOOL_GROUP;
@ -38,12 +35,21 @@ if (!api_is_allowed_to_edit(false, true) && !$is_group_member) {
// Build form
$form = new FormValidator('group_edit', 'post', api_get_self().'?'.api_get_cidreq());
$form->addElement('hidden', 'action');
$form->addElement('html', '<div class="span6">');
// Group name
$form->addElement('text', 'name', get_lang('GroupName'));
// Description
$form->addElement('textarea', 'description', get_lang('Description'), array ('class' => 'span6', 'rows' => 6));
if (api_get_setting('allow_group_categories') == 'true') {
$groupCategories = GroupManager::get_categories();
$categoryList = array();
//$categoryList[] = null;
foreach ($groupCategories as $category) {
$categoryList[$category['id']] = $category['title'];
}
$form->addElement('select', 'category_id', get_lang('Category'), $categoryList);
}
// Members per group
$group = array(
@ -55,6 +61,17 @@ $group = array(
$form->addGroup($group, 'max_member_group', get_lang('GroupLimit'), '', false);
$form->addRule('max_member_group', get_lang('InvalidMaxNumberOfMembers'), 'callback', 'check_max_number_of_members');
$form->addElement('html', '</div>');
$form->addElement('html', '<div class="span6">');
// Description
$form->addElement('textarea', 'description', get_lang('Description'), array ('class' => 'span6', 'rows' => 6));
$form->addElement('html', '</div>');
$form->addElement('html', '<div class="span12">');
$form->addElement('header', get_lang('DefaultSettingsForNewGroups'));
$form->addElement('html', '</div>');
$form->addElement('html', '<div class="span6">');
// Self registration
@ -138,11 +155,12 @@ if ($form->validate()) {
}
$self_registration_allowed = isset($values['self_registration_allowed']) ? 1 : 0;
$self_unregistration_allowed = isset($values['self_unregistration_allowed']) ? 1 : 0;
$categoryId = isset($values['category_id']) ? $values['category_id'] : null;
GroupManager::set_group_properties(
$current_group['id'],
strip_tags($values['name']),
strip_tags($values['description']),
$values['name'],
$values['description'],
$max_member,
$values['doc_state'],
$values['work_state'],
@ -152,7 +170,8 @@ if ($form->validate()) {
$values['wiki_state'],
$values['chat_state'],
$self_registration_allowed,
$self_unregistration_allowed
$self_unregistration_allowed,
$categoryId
);
if (isset($_POST['group_members']) && count($_POST['group_members']) > $max_member && $max_member != GroupManager::MEMBER_PER_GROUP_NO_LIMIT) {
header('Location: group.php?'.api_get_cidreq(true, false).'&action=warning_message&msg='.get_lang('GroupTooMuchMembers'));
@ -163,6 +182,11 @@ if ($form->validate()) {
}
$defaults = $current_group;
$category = GroupManager::get_category_from_group($group_id);
if (!empty($category)) {
$defaults['category_id'] = $category['id'];
}
$action = isset($_GET['action']) ? $_GET['action'] : '';
$defaults['action'] = $action;
if ($defaults['maximum_number_of_students'] == GroupManager::MEMBER_PER_GROUP_NO_LIMIT) {

@ -77,8 +77,8 @@ class GroupManager
public static function get_group_list($category = null, $course_code = null)
{
$my_user_id = api_get_user_id();
$course_info = api_get_course_info($course_code);
$course_id = $course_info['real_id'];
$table_group_user = Database :: get_course_table(TABLE_GROUP_USER);
$table_group = Database :: get_course_table(TABLE_GROUP);
@ -541,6 +541,7 @@ class GroupManager
* @param int Chat tool's visibility (0=none,1=private,2=public)
* @param bool Whether self registration is allowed or not
* @param bool Whether self unregistration is allowed or not
* @param int $categoryId
* @return bool TRUE if properties are successfully changed, false otherwise
*/
public static function set_group_properties(
@ -556,14 +557,14 @@ class GroupManager
$wiki_state,
$chat_state,
$self_registration_allowed,
$self_unregistration_allowed
$self_unregistration_allowed,
$categoryId = null
) {
$table_group = Database :: get_course_table(TABLE_GROUP);
$table_forum = Database :: get_course_table(TABLE_FORUM);
$categoryId = intval($categoryId);
//$forum_id = get_forums_of_group($group_id);
$group_id = Database::escape_string($group_id);
$category = self::get_category_from_group($group_id);
$course_id = api_get_course_int_id();
$sql = "UPDATE ".$table_group." SET
@ -578,7 +579,8 @@ class GroupManager
description='".Database::escape_string(trim($description))."',
max_student= '".Database::escape_string($maximum_number_of_students)."',
self_registration_allowed='".Database::escape_string($self_registration_allowed)."',
self_unregistration_allowed='".Database::escape_string($self_unregistration_allowed)."'
self_unregistration_allowed = '".Database::escape_string($self_unregistration_allowed)."',
category_id = '".Database::escape_string($categoryId)."'
WHERE c_id = $course_id AND id=".$group_id;
$result = Database::query($sql);
//Here we are updating a field in the table forum_forum that perhaps duplicates the table group_info.forum_state cvargas
@ -764,8 +766,10 @@ class GroupManager
$maximum_number_of_students = 8,
$groups_per_user = 0
) {
if (empty($title)) {
return false;
}
$table_group_category = Database :: get_course_table(TABLE_GROUP_CATEGORY);
$course_id = api_get_course_int_id();
$sql = "SELECT MAX(display_order)+1 as new_order FROM $table_group_category WHERE c_id = $course_id ";
@ -874,7 +878,8 @@ class GroupManager
$wiki_state,
$chat_state,
$self_registration_allowed,
$self_unregistration_allowed
$self_unregistration_allowed,
$id
);
}
}
@ -927,23 +932,65 @@ class GroupManager
Database::query($sql);
}
// GROUP USERS FUNCTIONS
/**
* Get all users from a given group
* @param int $group_id The group
* @param bool $load_extra_info
* @param int $start
* @param int $limit
* @param bool $getCount
* @param int $courseId
* @return array list of user id
*/
public static function get_users($group_id, $load_extra_info = false)
{
public static function get_users(
$group_id,
$load_extra_info = false,
$start = null,
$limit = null,
$getCount = false,
$courseId = null,
$column = null,
$direction = null
) {
$group_user_table = Database :: get_course_table(TABLE_GROUP_USER);
$user_table = Database :: get_main_table(TABLE_MAIN_USER);
$group_id = Database::escape_string($group_id);
$course_id = api_get_course_int_id();
$sql = "SELECT user_id FROM $group_user_table WHERE c_id = $course_id AND group_id = $group_id";
if (empty($courseId)) {
$courseId = api_get_course_int_id();
} else {
$courseId = intval($courseId);
}
$select = " SELECT g.user_id, firstname, lastname ";
if ($getCount) {
$select = " SELECT count(u.user_id) count";
}
$sql = "$select
FROM $group_user_table g
INNER JOIN $user_table u
ON (u.user_id = g.user_id)
WHERE c_id = $courseId AND g.group_id = $group_id";
if (!empty($column) && !empty($direction)) {
$column = Database::escape_string($column);
$direction = Database::escape_string($direction);
$sql .= " ORDER BY $column $direction";
}
if (!empty($start) && !empty($limit)) {
$start = intval($start);
$limit = intval($limit);
$sql .= " LIMIT $start, $limit";
}
$res = Database::query($sql);
$users = array ();
while ($obj = Database::fetch_object($res)) {
if ($getCount) {
return $obj->count;
break;
}
if ($load_extra_info) {
$users[] = api_get_user_info($obj->user_id);
} else {
@ -1292,10 +1339,14 @@ class GroupManager
$group_id = Database::escape_string($group_id);
$user_id = Database::escape_string($user_id);
$course_id = api_get_course_int_id();
$sql = 'SELECT 1 FROM '.$table_group_user.' WHERE c_id = '.$course_id.' AND group_id = '.$group_id.' AND user_id = '.$user_id;
$db_result = Database::query($sql);
$sql = 'SELECT 1 FROM '.$table_group_user.'
WHERE
c_id = '.$course_id.' AND
group_id = '.$group_id.' AND
user_id = '.$user_id;
$result = Database::query($sql);
return Database::num_rows($db_result) > 0;
return Database::num_rows($result) > 0;
}
/**
@ -1888,21 +1939,19 @@ class GroupManager
$table_group = Database::get_course_table(TABLE_GROUP);
$user_id = intval($user_id);
$course_id = api_get_course_int_id();
$sql = "SELECT DISTINCT name FROM $table_group g
INNER JOIN $table_group_user gu
ON (gu.group_id = g.id)
INNER JOIN $table_tutor_user tu
ON (tu.group_id = g.id)
$sql = "SELECT DISTINCT name
FROM $table_group g
LEFT JOIN $table_group_user gu
ON (gu.group_id = g.id AND g.c_id = gu.c_id)
LEFT JOIN $table_tutor_user tu
ON (tu.group_id = g.id AND g.c_id = tu.c_id)
WHERE
tu.c_id= $course_id AND
gu.c_id= $course_id AND
g.c_id= $course_id AND
(gu.user_id = $user_id OR tu.user_id = $user_id) ";
$res = Database::query($sql);
$groups = array();
while ($group = Database::fetch_array($res)) {
$groups[] .= $group['name'];
$groups[] = $group['name'];
}
return $groups;
}
@ -2161,12 +2210,17 @@ class GroupManager
$groupCategories = GroupManager :: get_categories();
if (empty($groupCategories)) {
$result['error'][] = get_lang('CreateACategory');
return $result;
}
foreach ($groupData as $data) {
$isCategory = empty($data['group']) ? true : false;
if ($isCategory) {
$categoryInfo = self::getCategoryByTitle($data['category']);
$categoryId = $categoryInfo['id'];
if (!empty($categoryInfo)) {
// Update
self::update_category(
@ -2188,6 +2242,7 @@ class GroupManager
$data['category_id'] = $categoryId;
$result['updated']['category'][] = $data;
} else {
// Add
$categoryId = self::create_category(
$data['category'],
@ -2212,21 +2267,20 @@ class GroupManager
}
$elementsFound['categories'][] = $categoryId;
} else {
$groupInfo = self::getGroupByName($data['group']);
if (empty($groupInfo)) {
$categoryInfo = self::getCategoryByTitle($data['category']);
$categoryId = null;
if (!empty($categoryInfo)) {
$categoryId = $categoryInfo['id'];
} else {
if (!empty($groupCategories) && isset($groupCategories[0])) {
$defaultGroupCategory = $groupCategories[0];
$categoryId = $defaultGroupCategory['id'];
}
$categoryInfo = self::getCategoryByTitle($data['category']);
$categoryId = null;
if (!empty($categoryInfo)) {
$categoryId = $categoryInfo['id'];
} else {
if (!empty($groupCategories) && isset($groupCategories[0])) {
$defaultGroupCategory = $groupCategories[0];
$categoryId = $defaultGroupCategory['id'];
}
}
if (empty($groupInfo)) {
// Add
$groupId = self::create_group(
@ -2250,7 +2304,8 @@ class GroupManager
$data['wiki_state'],
$data['chat_state'],
$data['self_reg_allowed'],
$data['self_unreg_allowed']
$data['self_unreg_allowed'],
$categoryId
);
$data['group_id'] = $groupId;
$result['added']['group'][] = $data;
@ -2271,7 +2326,8 @@ class GroupManager
$data['wiki_state'],
$data['chat_state'],
$data['self_reg_allowed'],
$data['self_unreg_allowed']
$data['self_unreg_allowed'],
$categoryId
);
$data['group_id'] = $groupId;

Loading…
Cancel
Save