Merge branch 'MDL-54772-master' of git://github.com/junpataleta/moodle
authorDan Poltawski <dan@moodle.com>
Mon, 13 Jun 2016 08:35:58 +0000 (09:35 +0100)
committerDan Poltawski <dan@moodle.com>
Mon, 13 Jun 2016 08:35:58 +0000 (09:35 +0100)
admin/user/user_bulk.php
admin/user/user_bulk_enrol.php [deleted file]
admin/user/user_bulk_forms.php
lib/form/tags.php
lib/outputrenderers.php
mod/data/classes/search/activity.php [new file with mode: 0644]
mod/data/lang/en/data.php
tag/classes/output/tagareacollection.php
tag/classes/tag.php

index 62a4d29..751a75b 100644 (file)
@@ -24,7 +24,6 @@ if ($data = $action_form->get_data()) {
         case 3: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_delete.php');
         case 4: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_display.php');
         case 5: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_download.php');
-        //case 6: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_enrol.php'); //TODO: MDL-24064
         case 7: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_forcepasswordchange.php');
         case 8: redirect($CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk_cohortadd.php');
     }
diff --git a/admin/user/user_bulk_enrol.php b/admin/user/user_bulk_enrol.php
deleted file mode 100644 (file)
index 21ad105..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-/**
-* script for bulk user multi enrol operations
-*/
-
-die('this needs to be rewritten to use new enrol framework, sorry');  //TODO: MDL-24064
-
-require_once('../../config.php');
-require_once($CFG->libdir.'/adminlib.php');
-$processed = optional_param('processed', '', PARAM_BOOL);
-$sort = optional_param('sort', 'fullname', PARAM_ALPHA); //Sort by full name
-$dir  = optional_param('dir', 'asc', PARAM_ALPHA);       //Order to sort (ASC)
-
-require_login();
-admin_externalpage_setup('userbulk');
-require_capability('moodle/role:assign', context_system::instance()); //TODO: use some enrol cap
-$return = $CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk.php';
-//If no users selected then return to user_bulk.php
-if (empty($SESSION->bulk_users)) {
-    redirect($return);
-}
-$users = $SESSION->bulk_users; //Get users to display
-$usertotal = get_users(false); //Total number of users registered
-$usercount = count($users);    //number of users
-
-echo $OUTPUT->header();
-
-//take user info
-foreach ($users as $key => $id) {
-    $user = $DB->get_record('user', array('id'=>$id));
-    $user->fullname = fullname($user, true);
-    unset($user->firstname);
-    unset($user->lastname);
-    $users[$key] = $user;
-}
-
-// Need to sort by date
-function sort_compare($a, $b) {
-    global $sort, $dir;
-    if($sort == 'lastaccess') {
-        $rez = $b->lastaccess - $a->lastaccess;
-    } else {
-        $rez = strcasecmp(@$a->$sort, @$b->$sort);
-    }
-    return $dir == 'desc' ? -$rez : $rez;
-}
-usort($users, 'sort_compare');
-
-//Take courses data (id, shortname, and fullname)
-$courses = get_courses_page(1, 'c.sortorder ASC', 'c.id,c.shortname,c.fullname,c.visible', $totalcount);
-$table = new html_table();
-$table->width = "95%";
-$columns = array('fullname');
-foreach ($courses as $v)
-{
-    $columns[] = $v->shortname;
-}
-
-//Print columns headers from table
-foreach ($columns as $column) {
-    $strtitle = $column;
-    if ($sort != $column) {
-        $columnicon = '';
-        $columndir = 'asc';
-    } else {
-        $columndir = ($dir == 'asc') ? 'desc' : 'asc';
-        $columnicon = ' <img src="'.$OUTPUT->pix_url('t/'.($dir == 'asc' ? 'down' : 'up' )).'" alt="" />';
-    }
-    $table->head[] = '<a href="user_bulk_enrol.php?sort='.$column.'&amp;dir='.$columndir.'">'.$strtitle.'</a>'.$columnicon;
-    $table->align[] = 'left';
-}
-
-// process data submitting
-if(!empty($processed)) {
-    //Process data form here
-    $total = count($courses) * count($users);
-
-    for ( $i = 0; $i < $total; $i++ )
-    {
-        $param = "selected".$i;
-        $info = optional_param($param, '', PARAM_SEQUENCE);
-        /**
-         * user id:    ids[0]
-         * course id:  ids[1]
-         * enrol stat: ids[2]
-         */
-        $ids = explode(',', $info);
-        if(!empty($ids[2])) {
-            $context = context_course::instance($ids[1]);
-            role_assign(5, $ids[0], $context->id); //TODO: horrible!!
-        } else {
-            if( empty($ids[1] ) ) {
-                continue;
-            }
-            $context = context_course::instance($ids[1]);
-            role_unassign(5, $ids[0], $context->id);
-        }
-    }
-    redirect($return, get_string('changessaved')); //TODO: horrible!!
-}
-
-//Form beginning
-echo '<form id="multienrol" name="multienrol" method="post" action="user_bulk_enrol.php">';
-echo '<input type="hidden" name="processed" value="yes" />';
-$count = 0;
-foreach($users as $user) {
-    $temparray = array (
-        '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$user->id.'&amp;course='.SITEID.'">'.$user->fullname.'</a>'
-    );
-    $mycourses = enrol_get_users_courses($user->id, false);
-    foreach($courses as $acourse) {
-        $state = '';
-        if (isset($mycourses[$acourse->id])) {
-            $state = 'checked="checked"';
-        }
-        $temparray[] = '<input type="hidden" name="selected' . $count .
-                '" value="' . $user->id . ',' . $acourse->id . ',0" />' .
-                '<input type="checkbox" name="selected' . $count .
-                '" value="' . $user->id . ',' . $acourse->id . ',1" ' . $state . '/>';
-        $count++;
-    }
-    $table->data[] = $temparray;
-}
-echo $OUTPUT->heading("$usercount / $usertotal ".get_string('users'));
-echo html_writer::table($table);
-echo '<div class="continuebutton">';
-echo '<input type="submit" name="multienrolsubmit" value="save changes" />';
-echo '</div>';
-echo '</form>';
-
-echo $OUTPUT->footer();
index 0f7c25c..dd410f4 100644 (file)
@@ -24,10 +24,6 @@ class user_bulk_action_form extends moodleform {
         if (has_capability('moodle/user:update', $syscontext)) {
             $actions[5] = get_string('download', 'admin');
         }
-        if (has_capability('moodle/role:assign', $syscontext)){
-             //TODO: MDL-24064
-            //$actions[6] = get_string('enrolmultipleusers', 'admin');
-        }
         if (has_capability('moodle/user:update', $syscontext)) {
             $actions[7] = get_string('forcepasswordchange');
         }
index 3a66e69..7f9bab6 100644 (file)
@@ -128,6 +128,9 @@ class MoodleQuickForm_tags extends MoodleQuickForm_autocomplete {
      */
     public function onQuickFormEvent($event, $arg, &$caller) {
         if ($event === 'createElement') {
+            if (!is_array($arg[2])) {
+                $arg[2] = [];
+            }
             $arg[2] += array('itemtype' => '', 'component' => '');
         }
         return parent::onQuickFormEvent($event, $arg, $caller);
index af0c977..d0d5b23 100644 (file)
@@ -566,7 +566,7 @@ class core_renderer extends renderer_base {
     public function standard_top_of_body_html() {
         global $CFG;
         $output = $this->page->requires->get_top_of_body_code();
-        if (!empty($CFG->additionalhtmltopofbody)) {
+        if ($this->page->pagelayout !== 'embedded' && !empty($CFG->additionalhtmltopofbody)) {
             $output .= "\n".$CFG->additionalhtmltopofbody;
         }
         $output .= $this->maintenance_warning();
@@ -689,7 +689,7 @@ class core_renderer extends renderer_base {
         // but some of the content won't be known until later, so we return a placeholder
         // for now. This will be replaced with the real content in {@link core_renderer::footer()}.
         $output = '';
-        if (!empty($CFG->additionalhtmlfooter)) {
+        if ($this->page->pagelayout !== 'embedded' && !empty($CFG->additionalhtmlfooter)) {
             $output .= "\n".$CFG->additionalhtmlfooter;
         }
         $output .= $this->unique_end_html_token;
diff --git a/mod/data/classes/search/activity.php b/mod/data/classes/search/activity.php
new file mode 100644 (file)
index 0000000..eb776c3
--- /dev/null
@@ -0,0 +1,37 @@
+<?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/>.
+
+/**
+ * Search area for mod_data activities.
+ *
+ * @package    mod_data
+ * @copyright  2016 David Monllao {@link http://www.davidmonllao.com}
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace mod_data\search;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Search area for mod_data activities.
+ *
+ * @package    mod_data
+ * @copyright  2016 David Monllao {@link http://www.davidmonllao.com}
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class activity extends \core_search\area\base_activity {
+}
index 0d01c13..a8e0d38 100644 (file)
@@ -331,6 +331,7 @@ $string['savesettings'] = 'Save settings';
 $string['savesuccess'] = 'Saved successfully. Your preset will now be available across the site.';
 $string['savetemplate'] = 'Save template';
 $string['search'] = 'Search';
+$string['search:activity'] = 'Database - activity information';
 $string['selectedrequired'] = 'All selected required';
 $string['showall'] = 'Show all entries';
 $string['single'] = 'View single';
index cb845ad..a2928b7 100644 (file)
@@ -43,8 +43,17 @@ class tagareacollection extends \core\output\inplace_editable {
      * @param \stdClass $tagarea
      */
     public function __construct($tagarea) {
+        if (!empty($tagarea->locked)) {
+            // If the tag collection for the current tag area is locked, display the
+            // name of the collection without possibility to edit it.
+            $tagcoll = \core_tag_collection::get_by_id($tagarea->tagcollid);
+            parent::__construct('core_tag', 'tagareacollection', $tagarea->id, false,
+                \core_tag_collection::display_name($tagcoll), $tagarea->tagcollid);
+            return;
+        }
+
         $tagcollections = \core_tag_collection::get_collections_menu(true);
-        $editable = (count($tagcollections) > 1) && empty($tagarea->locked) &&
+        $editable = (count($tagcollections) > 1) &&
                 has_capability('moodle/tag:manage', context_system::instance());
         $areaname = core_tag_area::display_name($tagarea->component, $tagarea->itemtype);
         $edithint = new lang_string('edittagcollection', 'core_tag');
index 26ee690..02d568b 100644 (file)
@@ -1297,7 +1297,7 @@ class core_tag_tag {
                 require_once($CFG->dirroot . '/' . ltrim($tagarea->callbackfile, '/'));
             }
             $callback = $tagarea->callback;
-            return $callback($this, $exclusivemode, $fromctx, $ctx, $rec, $page);
+            return call_user_func_array($callback, [$this, $exclusivemode, $fromctx, $ctx, $rec, $page]);
         }
         return null;
     }