diff --git a/lang/en_utf8/portfolio.php b/lang/en_utf8/portfolio.php
index 18d61f753a7..856d624be9f 100644
--- a/lang/en_utf8/portfolio.php
+++ b/lang/en_utf8/portfolio.php
@@ -31,6 +31,7 @@ $string['instancenotsaved'] = 'Failed to save portfolio';
$string['instancenotdelete'] = 'Failed to delete portfolio';
$string['instancesaved'] = 'Portfolio saved successfully';
$string['invalidformat'] = 'Something is exporting an invalid format, $a';
+$string['invalidinstance'] = 'Could not find that portfolio instance';
$string['manageportfolios'] = 'Manage portfolios';
$string['manageyourportfolios'] = 'Manage your portfolios';
$string['noavailableplugins'] = 'Sorry, but there are no available portfolios for you to export to';
@@ -41,6 +42,7 @@ $string['nonprimative'] = 'A non primative value was passed as a callback argume
$string['notexportable'] = 'Sorry, but the type of content you are trying to export is not exportable';
$string['nouploaddirectory'] = 'Could not create a temporary directory to package your data into';
$string['portfolio'] = 'Portfolio';
+$string['portfolionotfile'] = 'Export to a portfolio rather than a file';
$string['portfolios'] = 'Portfolios';
$string['plugin'] = 'Portfolio Plugin';
$string['plugincouldnotpackage'] = 'Failed to package up your data for export';
diff --git a/lib/portfoliolib.php b/lib/portfoliolib.php
index 96b2e9cf1c3..69819c12a8e 100644
--- a/lib/portfoliolib.php
+++ b/lib/portfoliolib.php
@@ -200,7 +200,7 @@ function portfolio_add_button($callbackclass, $callbackargs, $callbackfile=null,
$output .= "\n" . '';
}
else {
- $selectoutput = portfolio_instance_select($instances, $callersupports, $callbackclass);
+ $selectoutput = portfolio_instance_select($instances, $callersupports, $callbackclass, true);
}
if ($fullform) {
@@ -231,10 +231,16 @@ function portfolio_add_button($callbackclass, $callbackargs, $callbackfile=null,
*
* @return string the html, from inclusive.
*/
-function portfolio_instance_select($instances, $callerformats, $callbackclass) {
+function portfolio_instance_select($instances, $callerformats, $callbackclass, $selectname='instance', $return=false, $returnarray=false) {
+ global $CFG;
+
+ if (empty($CFG->portfolioenabled)) {
+ return;
+ }
+
$insane = portfolio_instance_sanity_check();
$count = 0;
- $selectoutput = "\n" . '