Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
/user/ -> portfolio.php (source)
<?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/>.

/**
 * This file is part of the User section Moodle
 *
 * @copyright 1999 Martin Dougiamas  http://dougiamas.com
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 * @package core_user
 */

require_once(__DIR__ . '/../config.php');

if (empty($CFG->enableportfolios)) {
< print_error('disabled', 'portfolio');
> throw new \moodle_exception('disabled', 'portfolio');
} require_once($CFG->libdir . '/portfoliolib.php'); require_once($CFG->libdir . '/portfolio/forms.php'); $config = optional_param('config', 0, PARAM_INT); $hide = optional_param('hide', 0, PARAM_INT); $courseid = optional_param('courseid', SITEID, PARAM_INT); $url = new moodle_url('/user/portfolio.php', array('courseid' => $courseid)); if ($config !== 0) { $url->param('config', $config); } if (! $course = $DB->get_record("course", array("id" => $courseid))) {
< print_error('invalidcourseid');
> throw new \moodle_exception('invalidcourseid');
} $user = $USER; $fullname = fullname($user); $strportfolios = get_string('portfolios', 'portfolio'); $configstr = get_string('manageyourportfolios', 'portfolio'); $namestr = get_string('name'); $pluginstr = get_string('plugin', 'portfolio'); $baseurl = $CFG->wwwroot . '/user/portfolio.php'; $introstr = get_string('intro', 'portfolio'); $showhide = get_string('showhide', 'portfolio'); $display = true; // Set this to false in the conditions to stop processing. require_login($course, false); $PAGE->set_url($url); $PAGE->set_context(context_user::instance($user->id)); $PAGE->set_title($configstr); $PAGE->set_heading($fullname); $PAGE->set_pagelayout('admin'); echo $OUTPUT->header(); $showroles = 1; if (!empty($config)) { navigation_node::override_active_url(new moodle_url('/user/portfolio.php', array('courseid' => $courseid))); $instance = portfolio_instance($config); $mform = new portfolio_user_form('', array('instance' => $instance, 'userid' => $user->id)); if ($mform->is_cancelled()) { redirect($baseurl); exit; } else if ($fromform = $mform->get_data()) { if (!confirm_sesskey()) {
< print_error('confirmsesskeybad', '', $baseurl);
> throw new \moodle_exception('confirmsesskeybad', '', $baseurl);
} // This branch is where you process validated data. $instance->set_user_config($fromform, $USER->id); core_plugin_manager::reset_caches(); redirect($baseurl, get_string('instancesaved', 'portfolio'), 3); exit; } else { echo $OUTPUT->heading(get_string('configplugin', 'portfolio')); echo $OUTPUT->box_start(); $mform->display(); echo $OUTPUT->box_end(); $display = false; } } else if (!empty($hide)) { $instance = portfolio_instance($hide); $instance->set_user_config(array('visible' => !$instance->get_user_config('visible', $USER->id)), $USER->id); core_plugin_manager::reset_caches(); } if ($display) { echo $OUTPUT->heading($configstr); echo $OUTPUT->box_start(); echo html_writer::tag('p', $introstr); if (!$instances = portfolio_instances(true, false)) {
< print_error('noinstances', 'portfolio', $CFG->wwwroot . '/user/view.php');
> throw new \moodle_exception('noinstances', 'portfolio', $CFG->wwwroot . '/user/view.php');
} $table = new html_table(); $table->head = array($namestr, $pluginstr, $showhide); $table->data = array(); foreach ($instances as $i) { // Contents of the actions (Show / hide) column. $actions = ''; // Configure icon. if ($i->has_user_config()) { $configurl = new moodle_url($baseurl); $configurl->param('config', $i->get('id')); $actions .= html_writer::link($configurl, $OUTPUT->pix_icon('t/edit', get_string('configure', 'portfolio'))); } // Hide/show icon. $visible = $i->get_user_config('visible', $USER->id); $visibilityaction = $visible ? 'hide' : 'show'; $showhideurl = new moodle_url($baseurl); $showhideurl->param('hide', $i->get('id')); $actions .= html_writer::link($showhideurl, $OUTPUT->pix_icon('t/' . $visibilityaction, get_string($visibilityaction))); $table->data[] = array($i->get('name'), $i->get('plugin'), $actions); } echo html_writer::table($table); echo $OUTPUT->box_end(); } echo $OUTPUT->footer();