Completed
Pull Request — master (#1)
by Roberto
04:53 queued 01:45
created

index.php (15 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
// This file is part of Moodle - http://moodle.org/
3
//
4
// Moodle is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// Moodle is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
17
/**
18
 * Relationship listing page
19
 * can be reached by the "Administration" block on category listing
20
 *
21
 * @package local_relationship
22
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23
 */
24
25
require_once(__DIR__.'/../../config.php');
26
require($CFG->dirroot.'/local/relationship/lib.php');
27
require_once($CFG->dirroot.'/local/relationship/locallib.php');
28
29
require_login();
30
$contextid = required_param('contextid', PARAM_INT);
31
$context = context::instance_by_id($contextid, MUST_EXIST);
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 3 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
32
require_capability('local/relationship:view', $context);
33
34
$page = optional_param('page', 0, PARAM_INT);
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 8 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
35
$searchquery = optional_param('searchquery', '', PARAM_RAW);
36
$params = array('page' => $page, 'contextid' => $contextid);
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 6 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
37
if ($searchquery) {
38
    $params['searchquery'] = $searchquery;
39
}
40
$baseurl = new moodle_url('/local/relationship/index.php', $params);
41
42
relationship_set_header($context, $baseurl);
43
relationship_set_title();
44
45
$manager = has_capability('local/relationship:manage', $context);
46
47
if ($relationshipid = optional_param('relationshipid', 0, PARAM_INT)) {
48
    $relationship = relationship_get_relationship($relationshipid);
49
    echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide');
50
    echo $OUTPUT->heading(get_string('coursesusing', 'local_relationship', $relationship->name), 3, 'main');
51
    echo html_writer::start_tag('OL');
52
    foreach (relationship_get_courses($relationshipid) AS $c) {
53
        $link = html_writer::link(new moodle_url('/enrol/instances.php', array('id' => $c->id)), $c->fullname, array('target' => '_new'));
54
        echo html_writer::tag('LI', $link);
55
    }
56
    echo html_writer::end_tag('OL');
57
    echo $OUTPUT->box_end();
58
}
59
60
$relationships = relationship_search_relationships($contextid, $page, 25, $searchquery);
61
$count = '';
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 9 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
62
if ($relationships['allrelationships'] > 0) {
63
    if ($searchquery === '') {
64
        $count = ' ('.$relationships['allrelationships'].')';
65
    } else {
66
        $count = ' ('.$relationships['totalrelationships'].'/'.$relationships['allrelationships'].')';
67
    }
68
}
69
70
// Add search form.
71
$search = html_writer::start_tag('form', array('id' => 'searchrelationshipquery', 'method' => 'get'));
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 2 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
72
$search .= html_writer::start_tag('div');
73
$search .= html_writer::label(get_string('searchrelationship', 'local_relationship'), 'relationship_search_q');
74
$search .= html_writer::empty_tag('input', array('id' => 'relationship_search_q', 'type' => 'text', 'name' => 'searchquery', 'value' => $searchquery));
75
$search .= html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('search', 'local_relationship')));
76
$search .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'contextid', 'value' => $contextid));
77
$search .= html_writer::end_tag('div');
78
$search .= html_writer::end_tag('form');
79
echo $search;
80
81
echo $OUTPUT->paging_bar($relationships['totalrelationships'], $page, 25, $baseurl);
82
83
$data = array();
84
foreach ($relationships['relationships'] as $relationship) {
85
    $line = array();
86
87
    $line[] = format_string($relationship->name);
88
89
    $sql = "SELECT count(DISTINCT rm.userid)
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 4 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
90
              FROM {relationship_groups} rg
91
              JOIN {relationship_members} rm
92
                ON (rm.relationshipgroupid = rg.id)
93
             WHERE rg.relationshipid = :relationshipid";
94
    $line[] = $DB->count_records_sql($sql, array('relationshipid' => $relationship->id));
95
96
    $course_count = $DB->count_records('enrol', array('enrol' => 'relationship', 'customint1' => $relationship->id));
97
    if ($course_count > 0) {
98
        $url = new moodle_url('/local/relationship/index.php', array('contextid' => $contextid, 'relationshipid' => $relationship->id));
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 4 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
99
        $link = html_writer::link($url, get_string('list', 'local_relationship'));
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 3 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
100
        $line[] = $course_count.' ('.$link.')';
101
    } else {
102
        $line[] = $course_count;
103
    }
104
105
    $line[] = implode(', ', $relationship->tags);
106
    $line[] = empty($relationship->component) ? get_string('nocomponent', 'local_relationship') : get_string('pluginname', $relationship->component);
107
108
    $buttons = array();
109
    if (empty($relationship->component)) {
110 View Code Duplication
        if ($manager) {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
111
            if ($course_count == 0) {
112
                $buttons[] = html_writer::link(new moodle_url('/local/relationship/edit.php', array('relationshipid' => $relationship->id, 'delete' => 1)),
113
                        html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/delete'), 'alt' => get_string('delete'), 'title' => get_string('delete'), 'class' => 'iconsmall')));
114
            }
115
            $buttons[] = html_writer::link(new moodle_url('/local/relationship/edit.php', array('relationshipid' => $relationship->id)),
116
                    html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/edit'), 'alt' => get_string('edit'), 'title' => get_string('edit'), 'class' => 'iconsmall')));
117
        }
118
    }
119
    $buttons[] = html_writer::link(new moodle_url('/local/relationship/cohorts.php', array('relationshipid' => $relationship->id)),
120
            html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/cohort'), 'alt' => get_string('cohorts', 'local_relationship'), 'title' => get_string('cohorts', 'local_relationship'), 'class' => 'iconsmall')));
121
    $buttons[] = html_writer::link(new moodle_url('/local/relationship/groups.php', array('relationshipid' => $relationship->id)),
122
            html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/groups'), 'alt' => get_string('groups'), 'title' => get_string('groups'), 'class' => 'iconsmall')));
123
    $line[] = implode(' ', $buttons);
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 4 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
124
125
    $data[] = $line;
126
}
127
128
echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide');
129
echo $OUTPUT->heading(get_string('relationships', 'local_relationship', $count), 3, 'main');
130
131
$table = new html_table();
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 22 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
132
$table->head = array(
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 16 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
133
        get_string('name', 'local_relationship'),
134
        get_string('memberscount', 'local_relationship'),
135
        get_string('courses'),
136
        get_string('tags', 'tag'),
137
        get_string('component', 'local_relationship'),
138
        get_string('edit')
139
);
140
$table->colclasses = array('leftalign name', 'leftalign description', 'leftalign size', 'centeralign', 'centeralign source', 'centeralign action');
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 10 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
141
$table->id = 'relationships';
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 18 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
142
$table->attributes['class'] = 'admintable generaltable';
143
$table->data = $data;
0 ignored issues
show
Equals sign not aligned with surrounding assignments; expected 16 spaces but found 1 space

This check looks for multiple assignments in successive lines of code. It will report an issue if the operators are not in a straight line.

To visualize

$a = "a";
$ab = "ab";
$abc = "abc";

will produce issues in the first and second line, while this second example

$a   = "a";
$ab  = "ab";
$abc = "abc";

will produce no issues.

Loading history...
144
echo html_writer::table($table);
145
146
if ($manager) {
147
    echo $OUTPUT->single_button(new moodle_url('/local/relationship/edit.php', array('contextid' => $context->id)), get_string('add'));
148
}
149
echo $OUTPUT->box_end();
150
151
echo $OUTPUT->paging_bar($relationships['totalrelationships'], $page, 25, $baseurl);
152
153
echo $OUTPUT->footer();
154