function form_builder_menu_field_access in Form Builder 7
Same name and namespace in other branches
- 6 form_builder.module \form_builder_menu_field_access()
- 7.2 form_builder.module \form_builder_menu_field_access()
Access callback for field configuration, viewing, addition, and deletion.
1 call to form_builder_menu_field_access()
- theme_form_builder_element_wrapper in includes/
form_builder.admin.inc - Output the wrapper around a form_builder element with configure/remove links.
1 string reference to 'form_builder_menu_field_access'
- form_builder_menu in ./
form_builder.module - Implementation of hook_menu().
File
- ./
form_builder.module, line 149 - form_builder.module Generic form building framework and user interface.
Code
function form_builder_menu_field_access($op, $form_type, $form_id, $element_id) {
if (empty($form_type) || empty($form_id) || empty($element_id)) {
// If called by menu API to check access, we should not try and check
// with fake data, which ends up in PHP errors.
return;
}
module_load_include('inc', 'form_builder', 'includes/form_builder.api');
module_load_include('inc', 'form_builder', 'includes/form_builder.cache');
$element = form_builder_cache_field_load($form_type, $form_id, $element_id);
$access = FALSE;
if ($op == 'add' || $op == 'view') {
$access = TRUE;
}
if ($op == 'clone') {
// Unique fields cannot be cloned (or otherwise they would not be unique).
// Cloning fieldsets is also not currently supported.
$fields = FormBuilderLoader::instance()
->getElementTypeInfo($form_type, $form_id);
$access = !empty($element['#form_builder']['element_type']) && empty($fields[$element['#form_builder']['element_type']]['unique']) && $element['#form_builder']['element_type'] != 'fieldset';
}
if ($op == 'configure' && !empty($element['#form_builder']['configurable'])) {
$access = TRUE;
}
if ($op == 'remove' && !empty($element['#form_builder']['removable'])) {
$access = TRUE;
}
$module_accesses = module_invoke_all('form_builder_field_access', $op, $form_type, $form_id, $element);
if (!empty($module_accesses)) {
$access = array_pop($module_accesses);
}
return $access;
}