diff --git a/lib/portfoliolib.php b/lib/portfoliolib.php
index 3a90f1b0943..519388c9696 100644
--- a/lib/portfoliolib.php
+++ b/lib/portfoliolib.php
@@ -102,6 +102,11 @@ class portfolio_add_button {
*/
public function __construct($options=null) {
global $SESSION, $CFG;
+
+ if (empty($CFG->enableportfolios)) {
+ debugging('Building portfolio add button while portfolios is disabled. This code can be optimised.', DEBUG_DEVELOPER);
+ }
+
$this->instances = portfolio_instances();
if (empty($options)) {
return true;
diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php
index 170c7f83036..ac89009887c 100644
--- a/mod/assignment/lib.php
+++ b/mod/assignment/lib.php
@@ -1866,23 +1866,25 @@ class assignment_base {
$output = '';
- $fs = get_file_storage();
-
- $found = false;
-
$submission = $this->get_submission($userid);
+ if (!$submission) {
+ return $output;
+ }
- if (($submission) && $files = $fs->get_area_files($this->context->id, 'mod_assignment', 'submission', $submission->id, "timemodified", false)) {
- require_once($CFG->libdir.'/portfoliolib.php');
+ $fs = get_file_storage();
+ $files = $fs->get_area_files($this->context->id, 'mod_assignment', 'submission', $submission->id, "timemodified", false);
+ if (!empty($files)) {
require_once($CFG->dirroot . '/mod/assignment/locallib.php');
- $button = new portfolio_add_button();
+ if ($CFG->enableportfolios) {
+ require_once($CFG->libdir.'/portfoliolib.php');
+ $button = new portfolio_add_button();
+ }
foreach ($files as $file) {
$filename = $file->get_filename();
- $found = true;
$mimetype = $file->get_mimetype();
$path = file_encode_url($CFG->wwwroot.'/pluginfile.php', '/'.$this->context->id.'/mod_assignment/submission/'.$submission->id.'/'.$filename);
$output .= ''.s($filename).'';
- if ($this->portfolio_exportable() && has_capability('mod/assignment:exportownsubmission', $this->context)) {
+ if ($CFG->enableportfolios && $this->portfolio_exportable() && has_capability('mod/assignment:exportownsubmission', $this->context)) {
$button->set_callback_options('assignment_portfolio_caller', array('id' => $this->cm->id, 'fileid' => $file->get_id()), '/mod/assignment/locallib.php');
$button->set_format_by_file($file);
$output .= $button->to_html(PORTFOLIO_ADD_ICON_LINK);
diff --git a/mod/assignment/renderer.php b/mod/assignment/renderer.php
index 87282d4e1fe..89d9b75a2a0 100644
--- a/mod/assignment/renderer.php
+++ b/mod/assignment/renderer.php
@@ -85,19 +85,21 @@ class assignment_files implements renderable {
public $course;
public function __construct($context, $itemid, $filearea='submission') {
global $USER, $CFG;
- require_once($CFG->libdir . '/portfoliolib.php');
$this->context = $context;
list($context, $course, $cm) = get_context_info_array($context->id);
$this->cm = $cm;
$this->course = $course;
$fs = get_file_storage();
$this->dir = $fs->get_area_tree($this->context->id, 'mod_assignment', $filearea, $itemid);
- $files = $fs->get_area_files($this->context->id, 'mod_assignment', $filearea, $itemid, "timemodified", false);
- if (count($files) >= 1 && has_capability('mod/assignment:exportownsubmission', $this->context)) {
- $button = new portfolio_add_button();
- $button->set_callback_options('assignment_portfolio_caller', array('id' => $this->cm->id), '/mod/assignment/locallib.php');
- $button->reset_formats();
- $this->portfolioform = $button->to_html();
+ if (!empty($CFG->enableportfolios)) {
+ require_once($CFG->libdir . '/portfoliolib.php');
+ $files = $fs->get_area_files($this->context->id, 'mod_assignment', $filearea, $itemid, "timemodified", false);
+ if (count($files) >= 1 && has_capability('mod/assignment:exportownsubmission', $this->context)) {
+ $button = new portfolio_add_button();
+ $button->set_callback_options('assignment_portfolio_caller', array('id' => $this->cm->id), '/mod/assignment/locallib.php');
+ $button->reset_formats();
+ $this->portfolioform = $button->to_html();
+ }
}
$this->preprocess($this->dir, $filearea);
}
@@ -107,13 +109,14 @@ class assignment_files implements renderable {
$this->preprocess($subdir, $filearea);
}
foreach ($dir['files'] as $file) {
- $button = new portfolio_add_button();
- if (has_capability('mod/assignment:exportownsubmission', $this->context)) {
- $button->set_callback_options('assignment_portfolio_caller', array('id' => $this->cm->id, 'fileid' => $file->get_id()), '/mod/assignment/locallib.php');
- $button->set_format_by_file($file);
- $file->portfoliobutton = $button->to_html(PORTFOLIO_ADD_ICON_LINK);
- } else {
- $file->portfoliobutton = '';
+ $file->portfoliobutton = '';
+ if (!empty($CFG->enableportfolios)) {
+ $button = new portfolio_add_button();
+ if (has_capability('mod/assignment:exportownsubmission', $this->context)) {
+ $button->set_callback_options('assignment_portfolio_caller', array('id' => $this->cm->id, 'fileid' => $file->get_id()), '/mod/assignment/locallib.php');
+ $button->set_format_by_file($file);
+ $file->portfoliobutton = $button->to_html(PORTFOLIO_ADD_ICON_LINK);
+ }
}
$url = file_encode_url("$CFG->wwwroot/pluginfile.php", '/'.$this->context->id.'/mod_assignment/'.$filearea.'/'.$file->get_itemid(). $file->get_filepath().$file->get_filename(), true);
$filename = $file->get_filename();
diff --git a/mod/chat/report.php b/mod/chat/report.php
index 6a4d96a2844..cf2268a0414 100644
--- a/mod/chat/report.php
+++ b/mod/chat/report.php
@@ -56,6 +56,8 @@
$navlinks = array();
+ $canexportsess = has_capability('mod/chat:exportsession', $context);
+
/// Print a session if one has been specified
if ($start and $end and !$confirmdelete) { // Show a full transcript
@@ -101,8 +103,8 @@
echo $formatmessage->html;
}
}
- $participated_cap = array_key_exists($USER->id, $participates) && has_capability('mod/chat:exportparticipatedsession', $context);
- if (has_capability('mod/chat:exportsession', $context) || $participated_cap) {
+ $participatedcap = array_key_exists($USER->id, $participates) && has_capability('mod/chat:exportparticipatedsession', $context);
+ if (!empty($CFG->enableportfolios) && ($canexportsess || $participatedcap)) {
require_once($CFG->libdir . '/portfoliolib.php');
$buttonoptions = array(
'id' => $cm->id,
@@ -227,9 +229,8 @@
echo '
'; echo "id&start=$sessionstart&end=$sessionend\">$strseesession"; - if (has_capability('mod/chat:exportsession', $context) - || (array_key_exists($USER->id, $sessionusers) - && has_capability('mod/chat:exportparticipatedsession', $context))) { + $participatedcap = (array_key_exists($USER->id, $sessionusers) && has_capability('mod/chat:exportparticipatedsession', $context)); + if (!empty($CFG->enableportfolios) && ($canexportsess || $participatedcap)) { require_once($CFG->libdir . '/portfoliolib.php'); $buttonoptions = array( 'id' => $cm->id, @@ -257,7 +258,7 @@ $lasttime = $message->timestamp; } - if (has_capability('mod/chat:exportsession', $context)) { + if (!empty($CFG->enableportfolios) && $canexportsess) { require_once($CFG->libdir . '/portfoliolib.php'); $button = new portfolio_add_button(); $button->set_callback_options('chat_portfolio_caller', array('id' => $cm->id), '/mod/chat/locallib.php'); diff --git a/mod/data/lib.php b/mod/data/lib.php index 671a795c86f..ff954ddbc88 100644 --- a/mod/data/lib.php +++ b/mod/data/lib.php @@ -1291,7 +1291,7 @@ function data_print_template($template, $records, $data, $search='', $page=0, $r $patterns[]='##export##'; - if ($CFG->enableportfolios && ($template == 'singletemplate' || $template == 'listtemplate') + if (!empty($CFG->enableportfolios) && ($template == 'singletemplate' || $template == 'listtemplate') && ((has_capability('mod/data:exportentry', $context) || (data_isowner($record->id) && has_capability('mod/data:exportownentry', $context))))) { require_once($CFG->libdir . '/portfoliolib.php'); diff --git a/mod/data/view.php b/mod/data/view.php index de9edb5dbc4..3a68ae97ded 100644 --- a/mod/data/view.php +++ b/mod/data/view.php @@ -720,7 +720,7 @@ if ($showactivity) { $records = array(); } - if ($mode == '' && $CFG->enableportfolios) { + if ($mode == '' && !empty($CFG->enableportfolios)) { require_once($CFG->libdir . '/portfoliolib.php'); $button = new portfolio_add_button(); $button->set_callback_options('data_portfolio_caller', array('id' => $cm->id), '/mod/data/locallib.php'); diff --git a/mod/forum/discuss.php b/mod/forum/discuss.php index e33866d368a..ad095bd89bc 100644 --- a/mod/forum/discuss.php +++ b/mod/forum/discuss.php @@ -190,7 +190,7 @@ /// Print the controls across the top echo '