Browse Source

Submitted info improvements

Name of "comment" label customizable
Submitted info table
SABERES_37_STABLE v.3.5-c
Flotter Totte 6 years ago
parent
commit
3fae45c7eb
  1. 9
      apply_form.php
  2. 5
      edit.php
  3. 8
      edit_form.php
  4. 67
      info.php
  5. 90
      info_table.php
  6. 5
      lang/en/enrol_apply.php
  7. 20
      lib.php
  8. 2
      manage.php
  9. 3
      notification.php
  10. 59
      renderer.php
  11. 2
      version.php

9
apply_form.php

@ -60,12 +60,16 @@ class enrol_apply_apply_form extends moodleform {
}
$mform->addElement('html', '<p>'.$instance->customtext1.'</p>');
$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);
}
}

5
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;

8
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 "<pre>";print_r($instance);exit;
$this->set_data($instance);
}
}

67
info.php

@ -0,0 +1,67 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* @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);

90
info_table.php

@ -0,0 +1,90 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
*
* @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 <johannes.burk@sudile.com>
*/
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);
}
*/
}

5
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';

20
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);
}
}

2
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);

3
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;
}
}

59
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 .= '<p>'. get_string('email') .': '.$standarduserfields->email.'</p>';
$body .= '<p>'. get_string('city') .': '.$standarduserfields->city.'</p>';
$body .= '<p>'. get_string('country') .': '.$standarduserfields->country.'</p>';
$body .= '<p>'. get_string('preferredlanguage') .': '.$standarduserfields->lang.'</p>';
if(isset($standarduserfields->lang)){
$body .= '<p>'. get_string('preferredlanguage') .': '.$standarduserfields->lang.'</p>';
}
$body .= '<p>'. get_string('description') .': '.$standarduserfields->description_editor['text'].'</p>';
$body .= '<p>'. get_string('firstnamephonetic') .': '.$standarduserfields->firstnamephonetic.'</p>';

2
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';

Loading…
Cancel
Save