* @param boolean $visible
* @param integer $sortorder (don't really need set, it will be during create() call)
*/
- public function __construct($typename = '', $typeoptions = array(), $visible = true, $sortorder = 0){
+ public function __construct($typename = '', $typeoptions = array(), $visible = false, $sortorder = 0){
global $CFG;
//set type attributs
$id = $DB->insert_record('repository_instances', $record);
$options = array();
if (call_user_func($classname . '::has_instance_config')) {
- $configs = call_user_func($classname . '::get_instance_option_names');
+ $configs = call_user_func($classname . '::get_instance_option_names');
foreach ($configs as $config) {
$options[$config] = $params[$config];
}
$mform->addElement('hidden', 'edit', ($this->instance) ? $this->instance->get_typename() : 0);
$mform->addElement('hidden', 'new', $this->plugin);
$mform->addElement('hidden', 'plugin', $this->plugin);
-
// let the plugin add the fields they want (either statically or not)
if (repository_static_function($this->plugin, 'has_admin_config')) {
if (!$this->instance) {
$stropt = get_string('operation', 'repository');
$updown = get_string('updown', 'repository');
$plugins = get_list_of_plugins('repository');
- $instances = repository_get_instances($context,null,true,$typename);
+ //retrieve list of instances. In administration context we want to display all
+ //instances even if the type is not visible. In course/user context we
+ //want to display only visible instances. The repository_get_instances()
+ //third parameter displays only visible type.
+ $instances = repository_get_instances($context,null,!$admin,$typename);
$instancesnumber = count($instances);
$alreadyplugins = array();
$table = new StdClass;
//$row .= ' <a href="' . $baseurl . '&type='.$typename.'&hide=' . $i->id . '"><img src="' . $CFG->pixpath . '/t/' . ($i->visible ? 'hide' : 'show') . '.gif" alt="' . get_string($i->visible ? 'hide' : 'show') . '" /></a>' . "\n";
$table->data[] = array($i->name, $type->get_readablename(),$row);
+ //display a grey row if the type is defined as not visible
+ if (isset($type) && !$type->get_visible()){
+ $table->rowclass[] = 'dimmed_text';
+ } else{
+ $table->rowclass[] = '';
+ }
+
if (!in_array($i->name, $alreadyplugins)) {
$alreadyplugins[] = $i->name;
}
//create a unique type of instance
else {
if (repository_static_function($typename, 'has_multiple_instances')){
- $addable = 1;
+ $addable = 1;
$instancehtml .= '<li><a href="'.$baseurl.'&new='.$typename.'">'.get_string('create', 'repository')
.' "'.get_string('repositoryname', 'repository_'.$typename).'" '
.get_string('instance', 'repository').'</a></li>';