//display instances list and creation form
if ($edit){
- if (repository_static_function($edit,"has_multiple_instances")){
+ $instanceoptionnames = repository_static_function($edit, 'get_instance_option_names');
+ if (!empty($instanceoptionnames)){
repository_display_instances_list(get_context_instance(CONTEXT_SYSTEM), $edit);
}
}
foreach (repository_get_types()
as $repositorytype)
{
- //display setup page for plugins with: general options or multiple instances
- $adminconfignames = repository_static_function($repositorytype->get_typename(), 'get_type_option_names');
- if (!empty($adminconfignames)
- || repository_static_function($repositorytype->get_typename(), 'has_multiple_instances')) {
+ //display setup page for plugins with: general options or multiple instances (e.g. has instance config)
+ $typeoptionnames = repository_static_function($repositorytype->get_typename(), 'get_type_option_names');
+ $instanceoptionnames = repository_static_function($repositorytype->get_typename(), 'get_instance_option_names');
+ if (!empty($typeoptionnames) || !empty($instanceoptionnames)) {
$ADMIN->add('repositorysettings',
new admin_externalpage('repositorysettings'.$repositorytype->get_typename(),
$repositorytype->get_readablename(),
$updowncount=1;
foreach ($instances as $i) {
$settings = '';
- //display edit link only if you can config the type or if it has multiple instances
- $adminconfignames = repository_static_function($i->get_typename(), 'get_type_option_names');
- if ( !empty($adminconfignames)
- || repository_static_function($i->get_typename(), 'has_multiple_instances')) {
+ //display edit link only if you can config the type or if it has multiple instances (e.g. has instance config)
+ $typeoptionnames = repository_static_function($i->get_typename(), 'get_type_option_names');
+ $instanceoptionnames = repository_static_function($i->get_typename(), 'get_instance_option_names');
+ if ( !empty($typeoptionnames) || !empty($instanceoptionnames)) {
$settings .= '<a href="' . $this->baseurl . '&edit=' . $i->get_typename() . '">'
. $settingsstr .'</a>' . "\n";
}
}
}
- public static function has_multiple_instances() {
- return false;
- }
-
public static function get_type_option_names() {
return array('api_key');
}
- public static function get_instance_option_names() {
- return array('share_url');
- }
-
public function type_config_form(&$mform) {
$public_account = get_config('boxnet', 'public_account');
$api_key = get_config('boxnet', 'api_key');
}
public function instance_config_form(&$mform) {
- //$share_url = get_config('boxnet', 'share_url');
$mform->addElement('text', 'share_url', get_string('shareurl', 'repository_boxnet'));
}
}
return $dir.$file;
}
- public static function has_multiple_instances() {
- return false;
- }
-
- public function instance_config_form(&$mform) {
- $mform->addElement('text', 'email_address', get_string('emailaddress', 'repository_flickr'));
- $mform->addRule('email_address', get_string('required'), 'required', null, 'client');
- }
-
- public static function get_instance_option_names() {
- return array('email_address');
- }
-
public function type_config_form(&$mform) {
global $CFG;
$api_key = get_config('flickr', 'api_key');
$secret = get_config('flickr', 'secret');
-
-
if (empty($api_key)) {
$api_key = '';
}
$mform->addElement('static', 'callbackurl', '', get_string('callbackurltext', 'repository_flickr', $callbackurl));
}
-
$mform->addRule('api_key', $strrequired, 'required', null, 'client');
$mform->addRule('secret', $strrequired, 'required', null, 'client');
}
return $dir.$file;
}
- public static function has_multiple_instances() {
- return true;
- }
-
public function instance_config_form(&$mform) {
$mform->addElement('text', 'email_address', get_string('emailaddress', 'repository_flickr_public'));
$mform->addRule('email_address', get_string('required'), 'required', null, 'client');
//save the options in DB
$this->update_options();
- //if the plugin type has no multiple so it wont
+ //if the plugin type has no multiple instance (e.g. has no instance option name) so it wont
//be possible for the administrator to create a instance
//in this case we need to create an instance
- if (!repository_static_function($this->_typename,"has_multiple_instances")) {
+ $instanceoptionnames = repository_static_function($this->_typename, 'get_instance_option_names');
+ if (empty($instanceoptionnames)) {
$instanceoptions = array();
$instanceoptions['name'] = $this->_typename;
repository_static_function($this->_typename, 'create', $this->_typename, 0, get_system_context(), $instanceoptions);
$record->userid = $userid;
$id = $DB->insert_record('repository_instances', $record);
$options = array();
- if (call_user_func($classname . '::has_multiple_instances')) {
- $configs = call_user_func($classname . '::get_instance_option_names');
- foreach ($configs as $config) {
- $options[$config] = $params[$config];
- }
+ $configs = call_user_func($classname . '::get_instance_option_names');
+ foreach ($configs as $config) {
+ $options[$config] = $params[$config];
}
+
if (!empty($id)) {
unset($options['name']);
$instance = repository_get_instance($id);
public function instance_config_form(&$mform) {
}
- /**
- * Return true if the plugin can have multiple instances
- * By default: false
- * @return boolean
- */
- public static function has_multiple_instances() {
- return false;
- }
-
/**
* Return names of the general options
* By default: no general option name
$types= repository_get_types(true);
$editabletypes = array();
foreach ($types as $type) {
- if (repository_static_function($type->get_typename(), 'has_multiple_instances')) {
+ $instanceoptionnames = repository_static_function($type->get_typename(), 'get_instance_option_names');
+ if (!empty($instanceoptionnames)) {
$editabletypes[]=$type;
}
}
foreach ($plugins as $p) {
$type = repository_get_type_by_typename($p);
if (!empty($type) && $type->get_visible()) {
- if (repository_static_function($p, 'has_multiple_instances')) {
+ $instanceoptionnames = repository_static_function($p, 'get_instance_option_names');
+ if (!empty($instanceoptionnames)) {
$instancehtml .= '<li><a href="'.$baseurl.'&new='.$p.'">'.get_string('create', 'repository')
.' "'.get_string('repositoryname', 'repository_'.$p).'" '
.get_string('instance', 'repository').'</a></li>';
}
$instancehtml .= '</ul>';
- } else if (repository_static_function($typename, 'has_multiple_instances')) { //create a unique type of instance
+ } else {
+ $instanceoptionnames = repository_static_function($typename, 'get_instance_option_names');
+ if (!empty($instanceoptionnames)) { //create a unique type of instance
$addable = 1;
$instancehtml .= "<form action='".$baseurl."&new=".$typename."' method='post'>
<p style='text-align:center'><input type='submit' value='".get_string('createinstance', 'repository')."'/></p>
</form>";
+ }
}
if ($addable) {