MDL-23502 refactoring towards separate instance config forms
authorPetr Skoda <skodak@moodle.org>
Sat, 31 Jul 2010 09:58:36 +0000 (09:58 +0000)
committerPetr Skoda <skodak@moodle.org>
Sat, 31 Jul 2010 09:58:36 +0000 (09:58 +0000)
enrol/instances.php
enrol/manual/lib.php
lib/enrollib.php

index 0784423..e7cd09d 100644 (file)
@@ -165,54 +165,56 @@ foreach ($instances as $instance) {
 
     $users = $DB->count_records('user_enrolments', array('enrolid'=>$instance->id));
 
 
     $users = $DB->count_records('user_enrolments', array('enrolid'=>$instance->id));
 
-    $updown = '';
-    $edit = '';
+    $updown = array();
+    $edit = array();
 
     if ($canconfig) {
         // up/down link
         $updown = '';
         if ($updowncount > 1) {
             $aurl = new moodle_url($url, array('action'=>'up', 'instance'=>$instance->id));
 
     if ($canconfig) {
         // up/down link
         $updown = '';
         if ($updowncount > 1) {
             $aurl = new moodle_url($url, array('action'=>'up', 'instance'=>$instance->id));
-            $updown .= html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/up'), 'alt'=>$strup, 'class'=>'smallicon'))).'&nbsp;';
+            $updown[] = html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/up'), 'alt'=>$strup, 'class'=>'smallicon')));
         } else {
         } else {
-            $updown .= html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('spacer'), 'alt'=>'', 'class'=>'smallicon')).'&nbsp;';
+            $updown[] = html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('spacer'), 'alt'=>'', 'class'=>'smallicon'));
         }
         if ($updowncount < $icount) {
             $aurl = new moodle_url($url, array('action'=>'down', 'instance'=>$instance->id));
         }
         if ($updowncount < $icount) {
             $aurl = new moodle_url($url, array('action'=>'down', 'instance'=>$instance->id));
-            $updown .= html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/down'), 'alt'=>$strdown, 'class'=>'smallicon'))).'&nbsp;';
+            $updown[] = html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/down'), 'alt'=>$strdown, 'class'=>'smallicon')));
         } else {
         } else {
-            $updown .= html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('spacer'), 'alt'=>'', 'class'=>'smallicon')).'&nbsp;';
+            $updown[] = html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('spacer'), 'alt'=>'', 'class'=>'smallicon'));
         }
         ++$updowncount;
 
         // edit links
         if ($plugin->instance_deleteable($instance)) {
             $aurl = new moodle_url($url, array('action'=>'delete', 'instance'=>$instance->id));
         }
         ++$updowncount;
 
         // edit links
         if ($plugin->instance_deleteable($instance)) {
             $aurl = new moodle_url($url, array('action'=>'delete', 'instance'=>$instance->id));
-            $edit .= html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/delete'), 'alt'=>$strdelete, 'class'=>'smallicon'))).'&nbsp;';
+            $edit[] = html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/delete'), 'alt'=>$strdelete, 'class'=>'smallicon')));
         }
 
         if (enrol_is_enabled($instance->enrol)) {
             if ($instance->status == ENROL_INSTANCE_ENABLED) {
                 $aurl = new moodle_url($url, array('action'=>'disable', 'instance'=>$instance->id));
         }
 
         if (enrol_is_enabled($instance->enrol)) {
             if ($instance->status == ENROL_INSTANCE_ENABLED) {
                 $aurl = new moodle_url($url, array('action'=>'disable', 'instance'=>$instance->id));
-                $edit .= html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/hide'), 'alt'=>$strdisable, 'class'=>'smallicon'))).'&nbsp;';
+                $edit[] = html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/hide'), 'alt'=>$strdisable, 'class'=>'smallicon')));
             } else if ($instance->status == ENROL_INSTANCE_DISABLED) {
                 $aurl = new moodle_url($url, array('action'=>'enable', 'instance'=>$instance->id));
             } else if ($instance->status == ENROL_INSTANCE_DISABLED) {
                 $aurl = new moodle_url($url, array('action'=>'enable', 'instance'=>$instance->id));
-                $edit .= html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/show'), 'alt'=>$strenable, 'class'=>'smallicon'))).'&nbsp;';
+                $edit[] = html_writer::link($aurl, html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/show'), 'alt'=>$strenable, 'class'=>'smallicon')));
             } else {
                 // plugin specific state - do not mess with it!
             } else {
                 // plugin specific state - do not mess with it!
-                $edit .= html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/show'), 'alt'=>'', 'class'=>'smallicon')).'&nbsp;';
+                $edit[] = html_writer::empty_tag('img', array('src'=>$OUTPUT->pix_url('t/show'), 'alt'=>'', 'class'=>'smallicon'));
             }
 
         }
     }
 
     // link to instance management
             }
 
         }
     }
 
     // link to instance management
-    if ($managelink = $plugin->get_manage_link($instance)) {
-        $displayname = html_writer::link($managelink, $displayname);
+    if (enrol_is_enabled($instance->enrol)) {
+        if ($icons = $plugin->get_action_icons($instance)) {
+            $edit = array_merge($edit, $icons);
+        }
     }
 
     // add a row to the table
     }
 
     // add a row to the table
-    $table->data[] = array($displayname, $users, $updown, $edit);
+    $table->data[] = array($displayname, $users, implode('&nbsp;', $updown), implode('&nbsp;', $edit));
 
 }
 echo html_writer::table($table);
 
 }
 echo html_writer::table($table);
index 2fc7f8d..dd8adab 100644 (file)
@@ -60,10 +60,6 @@ class enrol_manual_plugin extends enrol_plugin {
             throw new coding_exception('invalid enrol instance!');
         }
 
             throw new coding_exception('invalid enrol instance!');
         }
 
-        if ($instance->courseid == SITEID) {
-            return NULL;
-        }
-
         if (!enrol_is_enabled($name)) {
             return NULL;
         }
         if (!enrol_is_enabled($name)) {
             return NULL;
         }
@@ -77,6 +73,53 @@ class enrol_manual_plugin extends enrol_plugin {
         return new moodle_url('/enrol/manual/manage.php', array('enrolid'=>$instance->id, 'id'=>$instance->courseid));
     }
 
         return new moodle_url('/enrol/manual/manage.php', array('enrolid'=>$instance->id, 'id'=>$instance->courseid));
     }
 
+    /**
+     * Returns enrolment instance manage link.
+     *
+     * By defaults looks for manage.php file and tests for manage capability.
+     *
+     * @param object $instance
+     * @return moodle_url;
+     */
+    public function add_course_navigation($instancesnode, stdClass $instance) {
+        $name = $this->get_name();
+
+        if ($instance->enrol !== $name) {
+             throw new coding_exception('Invalid enrol instance type!');
+        }
+
+        $context = get_context_instance(CONTEXT_COURSE, $instance->courseid);
+        if (!has_capability('enrol/manual:manage', $context)) {
+            return;
+        }
+
+        $managelink = new moodle_url("/enrol/$name/manage.php", array('enrolid'=>$instance->id));
+        $instancesnode->add($this->get_instance_name($instance), $managelink, navigation_node::TYPE_SETTING);
+    }
+
+    /**
+     * Returns edit icons for the page with list of instances
+     * @param stdClass $instance
+     * @return array
+     */
+    public function get_action_icons(stdClass $instance) {
+        global $OUTPUT;
+
+        $name = $this->get_name();
+        if ($instance->enrol !== $name) {
+            throw new coding_exception('invalid enrol instance!');
+        }
+
+        $context = get_context_instance(CONTEXT_COURSE, $instance->courseid);
+        if (!has_capability('enrol/manual:manage', $context)) {
+            return;
+        }
+
+        $managelink = new moodle_url("/enrol/$name/manage.php", array('enrolid'=>$instance->id));
+        $icon = $OUTPUT->action_icon($managelink, new pix_icon('i/users', get_string('enrolusers', 'enrol_manual'), 'core', array('class'=>'iconsmall')));
+        return array($icon);
+    }
+
     /**
      * Returns link to page which may be used to add new instance of enrolment plugin in course.
      * @param int $courseid
     /**
      * Returns link to page which may be used to add new instance of enrolment plugin in course.
      * @param int $courseid
index 85b14af..a6c89cb 100644 (file)
@@ -1254,46 +1254,19 @@ abstract class enrol_plugin {
      *
      * @param navigation_node $instancesnode
      * @param object $instance
      *
      * @param navigation_node $instancesnode
      * @param object $instance
-     * @return moodle_url;
+     * @return void
      */
     public function add_course_navigation($instancesnode, stdClass $instance) {
      */
     public function add_course_navigation($instancesnode, stdClass $instance) {
-        if ($managelink = $this->get_manage_link($instance)) {
-            $instancesnode->add($this->get_instance_name($instance), $managelink, navigation_node::TYPE_SETTING);
-        }
+        // usually adds manage users
     }
 
     /**
     }
 
     /**
-     * Returns enrolment instance manage link.
-     *
-     * By defaults looks for manage.php file and tests for manage capability.
-     *
-     * @param object $instance
-     * @return moodle_url;
+     * Returns edit icons for the page with list of instances
+     * @param stdClass $instance
+     * @return array
      */
      */
-    public function get_manage_link($instance) {
-        global $CFG, $DB;
-
-        $name = $this->get_name();
-
-        if ($instance->enrol !== $name) {
-             throw new coding_exception('Invalid enrol instance type!');
-        }
-
-        if (!file_exists("$CFG->dirroot/enrol/$name/manage.php")) {
-            return NULL;
-        }
-
-        if ($instance->courseid == SITEID) {
-            // no enrolments on the frontpage, only roles there allowed
-            return NULL;
-        }
-
-        $context = get_context_instance(CONTEXT_COURSE, $instance->courseid);
-        if (!has_capability('enrol/'.$name.':manage', $context)) {
-            return NULL;
-        }
-
-        return new moodle_url("/enrol/$name/manage.php", array('enrolid'=>$instance->id));
+    public function get_action_icons(stdClass $instance) {
+        return array();
     }
 
     /**
     }
 
     /**