Adding Course direct link registration see #5299

skala
Julio Montoya 13 years ago
parent 2fee8a96a6
commit f0e5442307
  1. 98
      main/auth/inscription.php
  2. 11
      main/course_info/infocours.php
  3. 2
      main/inc/lib/main_api.lib.php

@ -33,7 +33,17 @@ if (api_get_setting('allow_terms_conditions') == 'true') {
$user_already_registered_show_terms = false;
}
//Direct Link Subscription feature #5299
$course_code_redirect = isset($_REQUEST['c']) && !empty($_REQUEST['c']) ? $_REQUEST['c'] : null;
$exercise_redirect = isset($_REQUEST['e']) && !empty($_REQUEST['e']) ? $_REQUEST['e'] : null;
if (!empty($course_code_redirect)) {
Session::write('course_redirect', $course_code_redirect);
Session::write('exercise_redirect', $exercise_redirect);
}
if ($user_already_registered_show_terms == false) {
if (api_is_western_name_order()) {
// FIRST NAME and LAST NAME
$form->addElement('text', 'firstname', get_lang('FirstName'), array('size' => 40));
@ -83,6 +93,7 @@ if ($user_already_registered_show_terms == false) {
$form->addRule('username', get_lang('UsernameWrong'), 'username');
$form->addRule('username', get_lang('UserTaken'), 'username_available');
}
// PASSWORD
$form->addElement('password', 'pass1', get_lang('Pass'), array('size' => 20, 'autocomplete' => 'off'));
$form->addElement('password', 'pass2', get_lang('Confirmation'), array('size' => 20, 'autocomplete' => 'off'));
@ -241,7 +252,6 @@ if (!CustomPages::enabled()) {
api_not_allowed();
}*/
//api_display_tool_title($tool_name);
if (api_get_setting('allow_registration') == 'approval') {
Display::display_normal_message(get_lang('YourAccountHasToBeApproved'));
}
@ -284,7 +294,7 @@ if (api_get_setting('allow_terms_conditions') == 'true') {
}
}
$form->addElement('button', 'submit', get_lang('RegisterUser'));
$form->addElement('button', 'submit', get_lang('RegisterUser'), array('class' => 'btn btn-primary btn-large'));
if ($form->validate()) {
@ -434,35 +444,83 @@ if ($form->validate()) {
Session::write('user_last_login_datetime', $user_last_login_datetime);
$recipient_name = api_get_person_name($values['firstname'], $values['lastname']);
$display_text = '<p>'.get_lang('Dear',null, $_user['language']).' '.stripslashes(Security::remove_XSS($recipient_name)).',<br /><br />'.get_lang('PersonalSettings',null,$_user['language']).".</p>\n";
if (api_get_setting('allow_terms_conditions') == 'true' && $user_already_registered_show_terms) {
$button_text = get_lang('Next',null,$_user['language']);
$action_url = api_get_path(WEB_PATH).'user_portal.php';
$display_text = '<p>'.get_lang('Dear', null, $_user['language']).' '.stripslashes(Security::remove_XSS($recipient_name)).',<br /><br />'.get_lang('PersonalSettings',null,$_user['language']).".</p>";
$form_data = array( 'button' => Display::button('next', get_lang('Next', null, $_user['language']), array('class' => 'btn btn-primary btn-large')),
'message' => null,
'action' => api_get_path(WEB_PATH).'user_portal.php');
if (api_get_setting('allow_terms_conditions') == 'true' && $user_already_registered_show_terms) {
$form_data['action'] = api_get_path(WEB_PATH).'user_portal.php';
} else {
if (!empty ($values['email'])) {
$display_text.= '<p>'.get_lang('MailHasBeenSent',null,$_user['language']).'.</p>';
}
$button_text = '';
if ($is_allowedCreateCourse) {
$display_text .= '<p>'. get_lang('NowGoCreateYourCourse',null,$_user['language']). ".</p>";
$action_url = '../create_course/add_course.php';
$button_text = api_get_setting('course_validation') == 'true'
? get_lang('CreateCourseRequest', null, $_user['language'])
: get_lang('CourseCreate', null, $_user['language']);
$form_data['message'] = '<p>'. get_lang('NowGoCreateYourCourse',null,$_user['language']). "</p>";
$form_data['action'] = '../create_course/add_course.php';
if (api_get_setting('course_validation') == 'true') {
$form_data['button'] = Display::button('next', get_lang('CreateCourseRequest', null, $_user['language']), array('class' => 'btn btn-primary btn-large'));
} else {
$form_data['button'] = Display::button('next', get_lang('CourseCreate', null, $_user['language']), array('class' => 'btn btn-primary btn-large'));
}
} else {
if (api_get_setting('allow_students_to_browse_courses') == 'true')
$action_url = 'courses.php?action=subscribe';
else
$action_url = api_get_path(WEB_PATH).'user_portal.php';
$display_text.='<p>'. get_lang('NowGoChooseYourCourses',null,$_user['language']). ".</p>";
$button_text = get_lang('Next',null,$_user['language']);
if (api_get_setting('allow_students_to_browse_courses') == 'true') {
$form_data['action'] = 'courses.php?action=subscribe';
$form_data['message'] = '<p>'. get_lang('NowGoChooseYourCourses',null,$_user['language']). ".</p>";
} else {
$form_data['action'] = api_get_path(WEB_PATH).'user_portal.php';
}
$form_data['button'] = Display::button('next', get_lang('Next', null, $_user['language']), array('class' => 'btn btn-primary btn-large'));
}
}
$course_code_redirect = Session::read('course_redirect');
var_dump($course_code_redirect);
if (!empty($course_code_redirect)) {
$course_info = api_get_course_info($course_code_redirect);
if (!empty($course_info)) {
if (in_array($course_info['visibility'], array(COURSE_VISIBILITY_OPEN_PLATFORM, COURSE_VISIBILITY_OPEN_WORLD))) {
$user_id = api_get_user_id();
if (CourseManager::subscribe_user($user_id, $course_info['code'])) {
$form_data['action'] = $course_info['course_public_url'];
$form_data['message'] = sprintf(get_lang('YouHaveBeenRegisteredToCourseX'), $course_info['title']);
$form_data['button'] = Display::button('next', get_lang('GoToCourse', null, $_user['language']), array('class' => 'btn btn-primary btn-large'));
$exercise_redirect = intval(Session::read('exercise_redirect'));
if (!empty($exercise_redirect)) {
$form_data['action'] = api_get_path(WEB_CODE_PATH).'exercice/overview.php?id='.intval($exercise_redirect).'&cidReq='.$course_info['code'];
$form_data['message'] .= '<br />'.get_lang('YouCanAccessTheExercise');
$form_data['button'] = Display::button('next', get_lang('Go', null, $_user['language']), array('class' => 'btn btn-primary btn-large'));
}
}
}
}
}
$display_text .= '<form action="'. $action_url. '" method="post">
<button type="submit" class="next" name="next" value="'. get_lang('Next', null, $_user['language']). '" validationmsg=" '. get_lang('Next',null,$_user['language']). ' ">'. $button_text. '</button>'. "\n". '</form><br />'. "\n";
$form_register = new FormValidator('form_register', 'post', $form_data['action']);
if (!empty($form_data['message'])) {
$form_register->addElement('html', $form_data['message'].'<br />');
}
$form_register->addElement('html', $form_data['button']);
$display_text .= $form_register->return_form();
//Just in case
Session::erase('course_redirect');
Session::erase('exercise_redirect');
if (CustomPages::enabled()) {
CustomPages::display(CustomPages::REGISTRATION_FEEDBACK, array('info' => $display_text));
}

@ -9,8 +9,8 @@
* @todo Move $canBeEmpty from course_info.conf.php to config-settings
* @todo Take those config settings into account in this script
* @author Patrick Cool <patrick.cool@UGent.be>
* @author Roan Embrechts, refactoring
* and improved course visibility|subscribe|unsubscribe options
* @author Roan Embrechts, refactoring and improved course visibility|subscribe|unsubscribe options
* @author Julio Montoya <gugli100@gmail.com> Jquery support + lots of fixes
* @package chamilo.course_info
*/
@ -38,7 +38,7 @@ define('COURSE_CHANGE_PROPERTIES', 'COURSE_CHANGE_PROPERTIES');
$currentCourseRepository = $_course['path'];
$is_allowedToEdit = $is_courseAdmin || $is_platformAdmin;
$course_code = $_course['sysCode'];
$course_code = api_get_course_id();
$course_access_settings = CourseManager :: get_access_settings($course_code);
//LOGIC FUNCTIONS
@ -189,6 +189,10 @@ $group[]= $form->createElement('radio', 'visibility', null, get_lang('Private'),
$group[]= $form->createElement('radio', 'visibility', null, get_lang('CourseVisibilityClosed'), COURSE_VISIBILITY_CLOSED);
$form->addGroup($group, '', array(get_lang("CourseAccess"), get_lang("CourseAccessConfigTip")), '');
$url = api_get_path(WEB_CODE_PATH)."auth/inscription.php?c=$course_code&e=".get_lang('there');
$url = Display::url($url, $url);
$form->addElement('label', get_lang('DirectLink'), sprintf(get_lang('CourseSettingsRegisterDirectLink'), $url));
$group = array();
$group[]=$form->createElement('radio', 'subscribe', get_lang('Subscription'), get_lang('Allowed'), 1);
$group[]=$form->createElement('radio', 'subscribe', null, get_lang('Denied'), 0);
@ -351,7 +355,6 @@ $app_plugin->add_course_settings_form($form);
// Get all the course information
$all_course_information = CourseManager::get_course_information($_course['sysCode']);
// Set the default values of the form
$values = array();

@ -1332,6 +1332,8 @@ function api_format_course_array($course_data) {
$_course['disk_quota'] = $course_data['disk_quota'];
$_course['course_public_url'] = api_get_path(WEB_COURSE_PATH).$course_data['directory'].'/index.php';
if (file_exists(api_get_path(SYS_COURSE_PATH).$course_data['directory'].'/course-pic85x85.png')) {
$url_image = api_get_path(WEB_COURSE_PATH).$course_data['directory'].'/course-pic85x85.png';
} else {

Loading…
Cancel
Save