'group.php?'.api_get_cidreq(), 'name' => get_lang('Groups')];
$interbreadcrumb[] = ['url' => 'group_space.php?'.api_get_cidreq(), 'name' => $current_group['name']];
$groupMember = GroupManager::is_tutor_of_group(api_get_user_id(), $current_group);
if (!$groupMember && !api_is_allowed_to_edit(false, true)) {
api_not_allowed(true);
}
// Build form
$form = new FormValidator('group_edit', 'post', api_get_self().'?'.api_get_cidreq());
$form->addElement('hidden', 'action');
$form->addElement('html', '
');
$form->addElement('header', $nameTools);
$form->addElement('html', '
');
$form->addElement('html', '');
// Group name
$form->addElement('text', 'name', get_lang('Group name'));
if (api_get_setting('allow_group_categories') == 'true') {
$groupCategories = GroupManager::get_categories();
$categoryList = [];
//$categoryList[] = null;
foreach ($groupCategories as $category) {
$categoryList[$category['id']] = $category['title'];
}
$form->addElement('select', 'category_id', get_lang('Category'), $categoryList);
} else {
$form->addHidden('category_id', 0);
}
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addElement('textarea', 'description', get_lang('Description'));
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addElement('header', '');
$form->addElement('html', '
');
$form->addElement('html', '');
// Members per group
$group = [
$form->createElement(
'radio',
'max_member_no_limit',
get_lang('Limit'),
get_lang('No limitation'),
GroupManager::MEMBER_PER_GROUP_NO_LIMIT
),
$form->createElement(
'radio',
'max_member_no_limit',
null,
get_lang('Maximum number of members'),
1,
['id' => 'max_member_selected']
),
$form->createElement('text', 'max_member', null, ['class' => 'span1', 'id' => 'max_member']),
$form->createElement('static', null, null, ' '.get_lang('seats (optional)')),
];
$form->addGroup($group, 'max_member_group', get_lang('Limit'), null, false);
$form->addRule('max_member_group', get_lang('Please enter a valid number for the maximum number of members.'), 'callback', 'check_max_number_of_members');
$form->addElement('html', '
');
$form->addElement('html', '');
// Self registration
$group = [
$form->createElement(
'checkbox',
'self_registration_allowed',
get_lang('Registration'),
get_lang('Learners are allowed to self-register in groups'),
1
),
$form->createElement(
'checkbox',
'self_unregistration_allowed',
null,
get_lang('Learners are allowed to unregister themselves from groups'),
1
),
];
$form->addGroup(
$group,
'',
Display::return_icon('user.png', get_lang('Registration')).
''.get_lang('Registration').'',
null,
false
);
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addElement('header', get_lang('Default settings for new groups'));
$form->addElement('html', '
');
$form->addElement('html', '');
// Documents settings
$group = [
$form->createElement('radio', 'doc_state', get_lang('Documents'), get_lang('Not available'), GroupManager::TOOL_NOT_AVAILABLE),
$form->createElement('radio', 'doc_state', null, get_lang('Public access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course)'), GroupManager::TOOL_PUBLIC),
$form->createElement('radio', 'doc_state', null, get_lang('Private access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only)'), GroupManager::TOOL_PRIVATE),
];
$form->addGroup(
$group,
'',
Display::return_icon('folder.png', get_lang('Documents')).''.get_lang('Documents').'',
null,
false
);
$allowDocumentGroupAccess = api_get_configuration_value('group_document_access');
if ($allowDocumentGroupAccess) {
$form->addElement('html', '
');
$form->addElement('html', '');
$group = [
$form->createElement(
'radio',
'document_access',
null,
get_lang('Share mode'),
GroupManager::DOCUMENT_MODE_SHARE
),
$form->createElement(
'radio',
'document_access',
get_lang('Documents'),
get_lang('Collaboration mode'),
GroupManager::DOCUMENT_MODE_COLLABORATION
),
$form->createElement(
'radio',
'document_access',
null,
get_lang('Read only mode'),
GroupManager::DOCUMENT_MODE_READ_ONLY
),
];
$form->addGroup(
$group,
'',
Display::return_icon(
'folder.png',
get_lang('DocumentsAccess')
).''.get_lang('DocumentsAccess').'',
null,
false
);
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addElement('header', '');
$form->addElement('html', '
');
$form->addElement('html', '');
}
// Work settings
$group = [
$form->createElement(
'radio',
'work_state',
get_lang('Assignments'),
get_lang('Not available'),
GroupManager::TOOL_NOT_AVAILABLE
),
$form->createElement('radio', 'work_state', null, get_lang('Public access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course)'), GroupManager::TOOL_PUBLIC),
$form->createElement('radio', 'work_state', null, get_lang('Private access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only)'), GroupManager::TOOL_PRIVATE),
];
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addGroup(
$group,
'',
Display::return_icon('works.png', get_lang('Assignments')).''.get_lang('Assignments').'',
null,
false
);
// Calendar settings
$group = [
$form->createElement('radio', 'calendar_state', get_lang('Agenda'), get_lang('Not available'), GroupManager::TOOL_NOT_AVAILABLE),
$form->createElement('radio', 'calendar_state', null, get_lang('Public access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course)'), GroupManager::TOOL_PUBLIC),
$form->createElement('radio', 'calendar_state', null, get_lang('Private access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only)'), GroupManager::TOOL_PRIVATE),
];
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addGroup(
$group,
'',
Display::return_icon('agenda.png', get_lang('Agenda')).''.get_lang('Agenda').'',
null,
false
);
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addElement('header', '');
$form->addElement('html', '
');
$form->addElement('html', '');
// Announcements settings
$group = [
$form->createElement('radio', 'announcements_state', get_lang('Announcements'), get_lang('Not available'), GroupManager::TOOL_NOT_AVAILABLE),
$form->createElement('radio', 'announcements_state', null, get_lang('Public access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course)'), GroupManager::TOOL_PUBLIC),
$form->createElement('radio', 'announcements_state', null, get_lang('Private access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only)'), GroupManager::TOOL_PRIVATE),
$form->createElement('radio', 'announcements_state', null, get_lang('Private access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only)BetweenUsers'), GroupManager::TOOL_PRIVATE_BETWEEN_USERS),
];
$form->addGroup(
$group,
'',
Display::return_icon('announce.png', get_lang('Announcements')).''.get_lang('Announcements').'',
null,
false
);
$form->addElement('html', '
');
$form->addElement('html', '');
// Forum settings
$group = [
$form->createElement('radio', 'forum_state', get_lang('Group Forum'), get_lang('Not available'), GroupManager::TOOL_NOT_AVAILABLE),
$form->createElement('radio', 'forum_state', null, get_lang('Public access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course)'), GroupManager::TOOL_PUBLIC),
$form->createElement('radio', 'forum_state', null, get_lang('Private access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only)'), GroupManager::TOOL_PRIVATE),
];
$form->addGroup(
$group,
'',
Display::return_icon('forum.png', get_lang('Group Forum')).''.get_lang('Group Forum').'',
null,
false
);
$form->addElement('html', '
');
$form->addElement('html', '');
$form->addElement('header', '');
$form->addElement('html', '
');
$form->addElement('html', '');
// Wiki settings
$group = [
$form->createElement('radio', 'wiki_state', get_lang('Wiki'), get_lang('Not available'), GroupManager::TOOL_NOT_AVAILABLE),
$form->createElement('radio', 'wiki_state', null, get_lang('Public access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course)'), GroupManager::TOOL_PUBLIC),
$form->createElement('radio', 'wiki_state', null, get_lang('Private access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only)'), GroupManager::TOOL_PRIVATE),
];
$form->addGroup(
$group,
'',
Display::return_icon('wiki.png', get_lang('Wiki')).''.get_lang('Wiki').'',
'',
false
);
$form->addElement('html', '
');
$form->addElement('html', '');
// Chat settings
$group = [
$form->createElement('radio', 'chat_state', get_lang('Chat'), get_lang('Not available'), GroupManager::TOOL_NOT_AVAILABLE),
$form->createElement('radio', 'chat_state', null, get_lang('Public access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course) access (access authorized to any member of the course)'), GroupManager::TOOL_PUBLIC),
$form->createElement('radio', 'chat_state', null, get_lang('Private access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only) access (access authorized to group members only)'), GroupManager::TOOL_PRIVATE),
];
$form->addGroup(
$group,
'',
Display::return_icon('chat.png', get_lang('Chat')).''.get_lang('Chat').'',
null,
false
);
$form->addElement('html', '
');
$form->addElement('html', '');
// Submit button
$form->addButtonSave(get_lang('Save settings'));
$form->addElement('html', '
');
if ($form->validate()) {
$values = $form->exportValues();
if ($values['max_member_no_limit'] == GroupManager::MEMBER_PER_GROUP_NO_LIMIT) {
$max_member = GroupManager::MEMBER_PER_GROUP_NO_LIMIT;
} else {
$max_member = $values['max_member'];
}
$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'],
$values['name'],
$values['description'],
$max_member,
$values['doc_state'],
$values['work_state'],
$values['calendar_state'],
$values['announcements_state'],
$values['forum_state'],
$values['wiki_state'],
$values['chat_state'],
$self_registration_allowed,
$self_unregistration_allowed,
$categoryId,
isset($values['document_access']) ? $values['document_access'] : 0
);
if (isset($_POST['group_members']) &&
count($_POST['group_members']) > $max_member &&
$max_member != GroupManager::MEMBER_PER_GROUP_NO_LIMIT
) {
Display::addFlash(Display::return_message(get_lang('Number proposed exceeds max. that you allowed (you can modify in the group settings). Group composition has not been modified'), 'warning'));
header('Location: group.php?'.api_get_cidreq(true, false).'&category='.$categoryId);
} else {
Display::addFlash(Display::return_message(get_lang('Group settings modified'), 'success'));
header('Location: group.php?'.api_get_cidreq(true, false).'&category='.$categoryId);
}
exit;
}
$defaults = $current_group;
$category = GroupManager::get_category_from_group($current_group['iid']);
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) {
$defaults['max_member_no_limit'] = GroupManager::MEMBER_PER_GROUP_NO_LIMIT;
} else {
$defaults['max_member_no_limit'] = 1;
$defaults['max_member'] = $defaults['maximum_number_of_students'];
}
if (!empty($_GET['keyword']) && !empty($_GET['submit'])) {
$keyword_name = Security::remove_XSS($_GET['keyword']);
echo '
'.get_lang('Search results for:').' '.$keyword_name.'
';
}
Display::display_header($nameTools, 'Group');
$form->setDefaults($defaults);
echo GroupManager::getSettingBar('settings');
echo '';
$form->display();
echo '
';
Display :: display_footer();