diff --git a/apply_form.php b/apply_form.php index 7919046..0cb21a3 100644 --- a/apply_form.php +++ b/apply_form.php @@ -60,12 +60,16 @@ class enrol_apply_apply_form extends moodleform { } $mform->addElement('html', '
'.$instance->customtext1.'
'); - $mform->addElement('textarea', 'applydescription', get_string('comment', 'enrol_apply'), 'cols="80"'); + $comment_title = get_string('comment', 'enrol_apply'); + if($instance->customtext2 != ''){ + $comment_title = $instance->customtext2; + } + $mform->addElement('textarea', 'applydescription', $comment_title, 'cols="80"'); $mform->setType('applydescription', PARAM_TEXT); // User profile... $editoroptions = $filemanageroptions = null; - + if ($instance->customint1) { useredit_shared_definition($mform, $editoroptions, $filemanageroptions, $USER); } @@ -85,5 +89,6 @@ class enrol_apply_apply_form extends moodleform { $mform->addElement('hidden', 'instance'); $mform->setType('instance', PARAM_INT); $mform->setDefault('instance', $instance->id); + } } diff --git a/edit.php b/edit.php index afa2c78..b279ed3 100644 --- a/edit.php +++ b/edit.php @@ -64,10 +64,13 @@ if ($instanceid) { // Process notify setting for editing... // Convert to array for use with multi-select element. $notify = array('$@NONE@$'); +/* if ($instance->customtext2 != '') { $notify = explode(',', $instance->customtext2); } +*/ $instance->notify = $notify; + $mform = new enrol_apply_edit_form(null, array($instance, $plugin, $context)); if ($mform->is_cancelled()) { @@ -86,7 +89,7 @@ if ($mform->is_cancelled()) { unset($notify[array_search('$@NONE@$', $notify)]); } // Convert back to string for storing in enrol table. - $data->customtext2 = implode(',', $notify); + //$data->customtext2 = implode(',', $notify); if ($instance->id) { $instance->status = $data->status; $instance->name = $data->name; diff --git a/edit_form.php b/edit_form.php index 6e0cd08..fb04a33 100644 --- a/edit_form.php +++ b/edit_form.php @@ -60,6 +60,12 @@ class enrol_apply_edit_form extends moodleform { $mform->addElement('textarea', 'customtext1', get_string('editdescription', 'enrol_apply')); + //new added requirement_20190110 + //$title_customtext2 = str_replace("{replace_title}",$instance->customtext2,get_string('custom_label', 'enrol_apply')); + $title_customtext2 = get_string('custom_label', 'enrol_apply'); + $mform->addElement('text', 'customtext2', $title_customtext2); + $mform->setDefault('customtext2', "Comment"); + $options = array(1 => get_string('yes'), 0 => get_string('no')); @@ -94,7 +100,7 @@ class enrol_apply_edit_form extends moodleform { $mform->setType('courseid', PARAM_INT); $this->add_action_buttons(true, ($instance->id ? null : get_string('addinstance', 'enrol'))); - + //echo "";print_r($instance);exit; $this->set_data($instance); } } diff --git a/info.php b/info.php new file mode 100644 index 0000000..7bade9f --- /dev/null +++ b/info.php @@ -0,0 +1,67 @@ +. + +/** + * @package enrol_apply + * @copyright emeneo (http://emeneo.com/) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @author emeneo (http://emeneo.com/) + */ + + defined('MOODLE_INTERNAL') || die(); + +require_once('../../config.php'); +require_once($CFG->dirroot.'/enrol/apply/lib.php'); +require_once($CFG->dirroot.'/enrol/apply/info_table.php'); +require_once($CFG->dirroot.'/enrol/apply/renderer.php'); + +$id = optional_param('id', null, PARAM_INT); +$formaction = optional_param('formaction', null, PARAM_TEXT); +$userenrolments = optional_param_array('userenrolments', null, PARAM_INT); + +require_login(); + +$manageurlparams = array(); +if ($id == null) { + $context = context_system::instance(); + require_capability('enrol/apply:manageapplications', $context); + $pageheading = get_string('submitted_info', 'enrol_apply'); +} else { + $instance = $DB->get_record('enrol', array('id' => $id, 'enrol' => 'apply'), '*', MUST_EXIST); + require_course_login($instance->courseid); + $course = get_course($instance->courseid); + $context = context_course::instance($course->id, MUST_EXIST); + require_capability('enrol/apply:manageapplications', $context); + $manageurlparams['id'] = $instance->id; + $pageheading = $course->fullname; +} + +$manageurl = new moodle_url('/enrol/apply/info.php', $manageurlparams); + +$PAGE->set_context($context); +$PAGE->set_url($manageurl); +$PAGE->set_pagelayout('admin'); +$PAGE->set_heading($pageheading); +$PAGE->navbar->add(get_string('submitted_info', 'enrol_apply')); +$PAGE->set_title(get_string('submitted_info', 'enrol_apply')); +$PAGE->requires->css('/enrol/apply/style.css'); + + +$table = new enrol_apply_info_table($id); +$table->define_baseurl($manageurl); + +$renderer = $PAGE->get_renderer('enrol_apply'); +$renderer->info_page($table, $manageurl,$instance); diff --git a/info_table.php b/info_table.php new file mode 100644 index 0000000..9499907 --- /dev/null +++ b/info_table.php @@ -0,0 +1,90 @@ +. + +/** + * + * @package enrol_apply + * @copyright 2016 sudile GbR (http://www.sudile.com) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @author Johannes Burk+ */ + +defined('MOODLE_INTERNAL') || die(); + +require_once($CFG->libdir . '/tablelib.php'); + +class enrol_apply_info_table extends table_sql { + + public $is_collapsible = false; + + public function __construct($enrolid = null) { + parent::__construct('enrol_apply_info_table'); + + global $DB; + + $sqlwhere = 'ue.status != 0'; + $sqlparams = array(); + if ($enrolid != null) { + $sqlwhere .= " AND e.id = :enrolid"; + $sqlparams['enrolid'] = $enrolid; + } else { + $sqlwhere .= " AND e.enrol = :enrol"; + $sqlparams['enrol'] = 'apply'; + } + + $this->set_sql( + 'ue.id AS userenrolmentid, ue.userid, ue.status AS enrolstatus, ue.timecreated AS applydate, + ai.comment AS applycomment, u.*, c.fullname as course', + "{user_enrolments} AS ue + LEFT JOIN {enrol_apply_applicationinfo} ai ON ai.userenrolmentid = ue.id + JOIN {user} u ON u.id = ue.userid + JOIN {enrol} e ON e.id = ue.enrolid + JOIN {course} c ON c.id = e.courseid", + $sqlwhere, + $sqlparams); + + //$this->no_sorting('checkboxcolumn'); + } + + /** + * Get any extra classes names to add to this row in the HTML. + * @param $row array the data for this row. Note (Johannes): this is actually an object with all sql columns. + * @return string added to the class="" attribute of the tr. + */ + public function get_row_class($row) { + if ($row->enrolstatus == 2) { + return 'enrol_apply_waitinglist_highlight'; + } + return ''; + } + /* + public function col_checkboxcolumn($row) { + return html_writer::checkbox('userenrolments[]', $row->userenrolmentid, false); + } + + public function col_fullname($row) { + // The $row variable contains all user fields, see sql query. + global $OUTPUT; + $col = $OUTPUT->user_picture($row, array('popup' => true)); + $col .= fullname($row); + return $col; + } + + public function col_applydate($row) { + return date("Y-m-d", $row->applydate); + } + */ +} diff --git a/lang/en/enrol_apply.php b/lang/en/enrol_apply.php index 90e6f5a..6f7a89a 100644 --- a/lang/en/enrol_apply.php +++ b/lang/en/enrol_apply.php @@ -100,6 +100,9 @@ $string['user_profile'] = 'User Profile'; $string['show_standard_user_profile'] = 'Show standard user profile fields on enrolment screen'; $string['show_extra_user_profile'] = 'Show extra user profile fields on enrolment screen'; +//$string['custom_label'] = 'Custom label "{replace_title}"'; +$string['custom_label'] = 'Custom label'; + $string['maxenrolled'] = 'Max enrolled users'; $string['maxenrolled_help'] = 'Specifies the maximum number of users that can self enrol. 0 means no limit.'; $string['maxenrolledreached_left'] = 'Maximum number of users allowed'; @@ -117,3 +120,5 @@ $string['expiry_heading'] = 'Expiry settings'; $string['expiry_desc'] = ''; $string['expiredaction'] = 'Enrolment expiry action'; $string['expiredaction_help'] = 'Select action to carry out when user enrolment expires. Please note that some user data and settings are purged from course during course unenrolment.'; + +$string['submitted_info'] = 'Enrol info'; diff --git a/lib.php b/lib.php index 40e8ac2..5e0c6d2 100644 --- a/lib.php +++ b/lib.php @@ -175,6 +175,13 @@ class enrol_apply_plugin extends enrol_plugin { get_string('confirmenrol', 'enrol_apply'), 'core', array('class' => 'iconsmall'))); + + $infolink = new moodle_url("/enrol/apply/info.php", array('id' => $instance->id)); + $icons[] = $OUTPUT->action_icon($infolink, new pix_icon( + 'i/files', + get_string('submitted_info', 'enrol_apply'), + 'core', + array('class' => 'iconsmall'))); } return $icons; @@ -364,7 +371,7 @@ class enrol_apply_plugin extends enrol_plugin { require_once($CFG->dirroot.'/enrol/apply/notification.php'); // Required for course_get_url() function. require_once($CFG->dirroot.'/course/lib.php'); - + $course = get_course($instance->courseid); $user = core_user::get_user($userenrolment->userid); @@ -376,7 +383,8 @@ class enrol_apply_plugin extends enrol_plugin { $type, $subject, $content, - course_get_url($course)); + course_get_url($course), + $instance->courseid); message_send($message); } @@ -387,7 +395,7 @@ class enrol_apply_plugin extends enrol_plugin { require_once($CFG->dirroot.'/course/lib.php'); $renderer = $PAGE->get_renderer('enrol_apply'); - + $course = get_course($instance->courseid); $user = core_user::get_user($userid); $contact = core_user::get_support_user(); @@ -425,7 +433,8 @@ class enrol_apply_plugin extends enrol_plugin { 'application', get_string('mailtoteacher_suject', 'enrol_apply'), $content, - $manageurl); + $manageurl, + $instance->courseid); message_send($message); } } @@ -451,7 +460,8 @@ class enrol_apply_plugin extends enrol_plugin { 'application', get_string('mailtoteacher_suject', 'enrol_apply'), $content, - $manageurl); + $manageurl, + $instance->courseid); message_send($message); } } diff --git a/manage.php b/manage.php index 35d8e8b..14e97b7 100644 --- a/manage.php +++ b/manage.php @@ -78,4 +78,4 @@ $table = new enrol_apply_manage_table($id); $table->define_baseurl($manageurl); $renderer = $PAGE->get_renderer('enrol_apply'); -$renderer->manage_page($table, $manageurl); +$renderer->manage_page($table, $manageurl, $instance); diff --git a/notification.php b/notification.php index fce3894..fac2104 100644 --- a/notification.php +++ b/notification.php @@ -24,7 +24,7 @@ defined('MOODLE_INTERNAL') || die(); class enrol_apply_notification extends \core\message\message { - public function __construct($to, $from, $type, $subject, $content, $url) { + public function __construct($to, $from, $type, $subject, $content, $url,$courseid) { $this->component = 'enrol_apply'; switch ($type) { @@ -60,5 +60,6 @@ class enrol_apply_notification extends \core\message\message { $this->notification = true; $this->contexturl = $url; $this->contexturlname = get_string('course'); + $this->courseid = $courseid; } } diff --git a/renderer.php b/renderer.php index 9efc772..e9b7a30 100644 --- a/renderer.php +++ b/renderer.php @@ -25,11 +25,11 @@ defined('MOODLE_INTERNAL') || die(); class enrol_apply_renderer extends plugin_renderer_base { - public function manage_page($table, $manageurl) { + public function manage_page($table, $manageurl, $instance) { echo $this->header(); echo $this->heading(get_string('confirmusers', 'enrol_apply')); echo get_string('confirmusers_desc', 'enrol_apply'); - $this->manage_form($table, $manageurl); + $this->manage_form($table, $manageurl, $instance); echo $this->footer(); } @@ -40,13 +40,13 @@ class enrol_apply_renderer extends plugin_renderer_base { echo $this->footer(); } - public function manage_form($table, $manageurl) { + public function manage_form($table, $manageurl, $instance) { echo html_writer::start_tag('form', array( 'id' => 'enrol_apply_manage_form', 'method' => 'post', 'action' => $manageurl->out())); - $this->manage_table($table); + $this->manage_table($table, $instance); if ($table->totalrows > 0) { echo html_writer::empty_tag('br'); @@ -69,7 +69,15 @@ class enrol_apply_renderer extends plugin_renderer_base { echo html_writer::end_tag('form'); } - public function manage_table($table) { + public function info_page($table, $manageurl,$instance) { + echo $this->header(); + echo $this->heading(get_string('submitted_info', 'enrol_apply')); + echo get_string('submitted_info', 'enrol_apply'); + $this->info_form($table, $manageurl,$instance); + echo $this->footer(); + } + + public function manage_table($table, $instance) { $columns = array( 'checkboxcolumn', 'course', @@ -83,7 +91,42 @@ class enrol_apply_renderer extends plugin_renderer_base { 'fullname', // Magic happens here: The column heading will automatically be set due to column name 'fullname'. get_string('email'), get_string('applydate', 'enrol_apply'), - get_string('comment', 'enrol_apply')); + $instance->customtext2); + $table->define_columns($columns); + $table->define_headers($headers); + + $table->sortable(true, 'id'); + + $table->out(50, true); + } + + public function info_form($table, $manageurl,$instance) { + echo html_writer::start_tag('form', array( + 'id' => 'enrol_apply_info_form', + 'method' => 'post', + 'action' => $manageurl->out())); + + $this->info_table($table,$instance); + + if ($table->totalrows > 0) { + echo html_writer::empty_tag('br'); + echo html_writer::start_tag('div', array('class' => 'formaction')); + + + echo html_writer::end_tag('div'); + + $this->page->requires->js_call_amd('enrol_apply/info', 'init'); + } + echo html_writer::end_tag('form'); + } + + public function info_table($table,$instance) { + $columns = array( + 'fullname', + 'applycomment'); + $headers = array( + 'User', // Magic happens here: The column heading will automatically be set due to column name 'fullname'. + $instance->customtext2); $table->define_columns($columns); $table->define_headers($headers); @@ -105,7 +148,9 @@ class enrol_apply_renderer extends plugin_renderer_base { $body .= ' '. get_string('email') .': '.$standarduserfields->email.'
'; $body .= ''. get_string('city') .': '.$standarduserfields->city.'
'; $body .= ''. get_string('country') .': '.$standarduserfields->country.'
'; - $body .= ''. get_string('preferredlanguage') .': '.$standarduserfields->lang.'
'; + if(isset($standarduserfields->lang)){ + $body .= ''. get_string('preferredlanguage') .': '.$standarduserfields->lang.'
'; + } $body .= ''. get_string('description') .': '.$standarduserfields->description_editor['text'].'
'; $body .= ''. get_string('firstnamephonetic') .': '.$standarduserfields->firstnamephonetic.'
'; diff --git a/version.php b/version.php index faa4afc..7f44045 100644 --- a/version.php +++ b/version.php @@ -24,7 +24,7 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2018112603; +$plugin->version = 2018112604; $plugin->requires = 2011080100; $plugin->maturity = MATURITY_STABLE; $plugin->release = 'Enrolment upon approval plugin Version 3.5-a';