-
Notifications
You must be signed in to change notification settings - Fork 0
/
sync.php
104 lines (79 loc) · 3.81 KB
/
sync.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?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/>.
/*
Learning Plan Template Manager for Moodle
Copyright 2024 Carnegie Mellon University.
NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS.
CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO,
WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL.
CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
Licensed under a GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007-style license, please see license.txt or contact [email protected] for full terms.
[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution.
This Software includes and/or makes use of Third-Party Software each subject to its own license.
DM24-1177
*/
/**
* Page to sync a learning plan template as a CSV.
*
* @package tool_lptmanager
* @copyright 2024 Carnegie Mellon University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once(__DIR__ . '/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
use core_competency\api;
admin_externalpage_setup('toollpsync');
$pagetitle = get_string('syncnavlink', 'tool_lptmanager');
$context = context_system::instance();
$url = new moodle_url("/admin/tool/lptmanager/sync.php");
$PAGE->set_context($context);
$PAGE->set_url($url);
$PAGE->set_title($pagetitle);
$PAGE->set_pagelayout('admin');
$form = new \tool_lptmanager\form\sync($url->out(false), array('persistent' => null, 'context' => $context));
if ($form->is_cancelled()) {
redirect(new moodle_url('/admin/tool/lp/learningplans.php', array('pagecontextid' => $context->id)));
} else if ($data = $form->get_data()) {
require_sesskey();
// TODO should just call functions from lp_importer to create and link learning plan templates/competencies
$syncer = new \tool_lptmanager\lp_importer();
// Extract the regex value from the form data
$regexvalue = $data->regexvalue;
// Split the string by dashes
$parts = explode('-', $regexvalue);
// Check if the array has the expected parts
if (isset($parts[1])) {
$extracted_competency_value = $parts[1];
} else {
echo "No match found.";
}
// Define filters for competency search
$filters = array();
// Get the list of competencies based on the regex filter
$competencies = api::list_competencies($filters);
// Process the competencies as needed
foreach ($competencies as $competency) {
$idnumber = $competency->get('idnumber');
if (strpos($idnumber, $extracted_competency_value) !== false) {
$syncer->sync_learning_plan_template($competency);
}
}
die();
}
echo $OUTPUT->header();
echo $OUTPUT->heading($pagetitle);
$form->display();
echo $OUTPUT->footer();