function services_edit_form_endpoint_resources in Services 6.3
Same name and namespace in other branches
- 7.3 plugins/export_ui/services_ctools_export_ui.class.php \services_edit_form_endpoint_resources()
services_edit_form_endpoint_resources function.
Parameters
array &$form_state:
object $endpoint:
Return value
Form
2 string references to 'services_edit_form_endpoint_resources'
- services_ctools_export_ui::resources_page in plugins/
export_ui/ services_ctools_export_ui.class.php - Page callback for the resources page.
- services_edit_endpoint_resources in plugins/
export_ui/ services_ctools_export_ui.class.php - services_edit_endpoint_resources function.
File
- plugins/
export_ui/ services_ctools_export_ui.class.php, line 239 - Export-ui handler for the Services module.
Code
function services_edit_form_endpoint_resources(&$form_state, $endpoint) {
module_load_include('resource_build.inc', 'services');
module_load_include('runtime.inc', 'services');
$form = array();
drupal_add_js('misc/tableselect.js');
drupal_add_js(drupal_get_path('module', 'services') . '/js/services.admin.js');
drupal_add_css(drupal_get_path('module', 'services') . '/css/services.admin.css');
$form['endpoint_object'] = array(
'#type' => 'value',
'#value' => $endpoint,
);
$ops = array(
'create' => t('Create'),
'retrieve' => t('Retrieve'),
'update' => t('Update'),
'delete' => t('Delete'),
'index' => t('Index'),
);
// Call _services_build_resources() directly instead of
// services_get_resources to bypass caching.
$resources = _services_build_resources();
// Apply the endpoint in a non-strict mode, so that the non-active resources
// are preserved.
_services_apply_endpoint($resources, $endpoint, FALSE);
$form['instructions'] = array(
'#type' => 'item',
'#title' => t('Resources'),
'#description' => t('Select the resource(s) or methods you would like to enable and click <em>Save</em>.'),
);
$form['resources'] = array(
'#theme' => 'services_resource_table',
'#tree' => TRUE,
);
// Collect authentication module info for later use and
// append the default settings for authentication modules
$auth_info = array();
$class_names = services_operation_class_info();
foreach ($endpoint->authentication as $module => $settings) {
$auth_info[$module] = services_authentication_info($module);
// Append the default settings for the authentication module.
$default_settings = services_auth_invoke($module, 'default_security_settings');
if (is_array($default_settings) && is_array($settings)) {
$settings += $default_settings;
}
$endpoint->authentication[$module] = $settings;
}
// Generate the list of methods arranged by resource.
foreach ($resources as $resource_name => $resource) {
$resource_conf = array();
if (isset($endpoint->resources[$resource_name])) {
$resource_conf = $endpoint->resources[$resource_name];
}
$res_item = array(
'#collapsed' => TRUE,
'#collapsible' => TRUE,
);
$alias = '';
if (isset($endpoint->resources[$resource_name]['alias'])) {
$alias = $endpoint->resources[$resource_name]['alias'];
}
elseif (isset($resource_conf['alias'])) {
$alias = $resource_conf['alias'];
}
$res_item['alias'] = array(
'#type' => 'textfield',
'#default_value' => $alias,
'#size' => 20,
);
foreach ($class_names as $class => $info) {
if (!empty($resource[$class])) {
$res_item[$class] = array(
'#type' => 'item',
'#title' => $info['title'],
);
foreach ($resource[$class] as $op_name => $op) {
$description = isset($op['help']) ? $op['help'] : t('No description is available');
$default_value = 0;
if (isset($resource_conf[$class][$op_name]['enabled'])) {
$default_value = $resource_conf[$class][$op_name]['enabled'];
}
$res_item[$class][$op_name] = array(
'#type' => 'item',
'#title' => $op_name,
'#description' => $description,
);
$res_item[$class][$op_name]['enabled'] = array(
'#type' => 'checkbox',
'#default_value' => $default_value,
);
$controller_settings = array();
foreach ($endpoint->authentication as $module => $settings) {
$auth_settings = services_auth_invoke($module, 'controller_settings', $settings, $op, $endpoint->authentication[$module], $class, $op_name);
if (is_array($auth_settings)) {
$auth_settings = array(
'#title' => $auth_info[$module]['title'],
'#type' => 'item',
) + $auth_settings;
$controller_settings[$module] = $auth_settings;
}
}
$res_item[$class][$op_name]['settings'] = $controller_settings;
}
}
}
$form['resources'][$resource_name] = $res_item;
}
$form['save'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
return $form;
}