function chado_add_admin_form_set_title
2.x tripal_core.chado_nodes.title_and_path.api.inc | chado_add_admin_form_set_title(&$form, &$form_state, $details) |
3.x tripal_core.chado_nodes.title_and_path.inc | chado_add_admin_form_set_title(&$form, &$form_state, $details) |
Generic "Set Node Title" sub-form for setting the title of any chado node
Parameters
$form: The Drupal form array into which the property form elements will be added
$form_state: The corresponding form_state array for the form
$details: An array defining details used by this form. Required keys that are always required: -module: the name of the module implementing the node. For example, for features the module is tripal_feature. -options: an array of quick-choice options to supply to the user. The key should be the token and the value should be a human-readable description of the option -content_type: the name of the content type. Defaults to module name. Optional keys include: -fieldset_title: the title to use for the fieldset. Defaults to "Set Page Title". -default_option: the default format to use which matches one of those in $details['options'] -custom_tokens: an array of custom tokens that follow the same format as those generated by chado_node_generate_tokens().
Related topics
- tripal_analysis_admin in tripal_analysis/
includes/ tripal_analysis.admin.inc - Administration page callbacks for the Tripal Analysis module
- tripal_contact_admin in tripal_contact/
includes/ tripal_contact.admin.inc - Administrative settings form
- tripal_example_admin in tripal_example/
includes/ tripal_example.admin.inc - Administrative settings form
- tripal_featuremap_admin in tripal_featuremap/
includes/ tripal_featuremap.admin.inc - Administrative settings form
- tripal_feature_admin in tripal_feature/
includes/ tripal_feature.admin.inc - Feature Settings page
File
- tripal_core/
api/ tripal_core.chado_nodes.title_and_path.api.inc, line 245 - Contains API functions to set titles and paths for all chado nodes
Code
function chado_add_admin_form_set_title(&$form, &$form_state, $details) {
// Get Node Info
if (isset($details['module'])) {
$node_info = call_user_func($details['module'] . '_node_info');
$chado_node_api = $node_info[$details['content_type']]['chado_node_api'];
}
else {
tripal_report_error(
'chado_node_api',
TRIPAL_ERROR,
"Set Titles API: When calling chado_add_admin_form_set_title, you \$details array must include 'module' => [name of your module] in order to pull out all the information provided in your implementation of hook_node_info"
);
}
// Defaults
$details['fieldset_title'] = (isset($details['fieldset_title'])) ? $details['fieldset_title'] : 'Set Page Titles';
$details['additional_instructions'] = (isset($details['additional_instructions'])) ? $details['additional_instructions'] : '';
$details['custom_tokens'] = (isset($details['custom_tokens'])) ? $details['custom_tokens'] : array();
$details['content_type'] = (isset($details['content_type'])) ? $details['content_type'] : $details['module'];
$tokens = array();
if (empty($tokens)) {
$tokens = chado_node_generate_tokens($chado_node_api['base_table']);
}
$tokens = array_merge($tokens, $details['custom_tokens']);
$token_list = chado_node_format_tokens($tokens);
$details['default_option'] = (isset($details['default_option'])) ? $details['default_option'] : chado_node_get_title_format($details['content_type'], $tokens);
// FORM PROPER
$msg = t(
'Each synced %singular must have a unique page title, however, %plural may have the
same name if they are of different types or from different organisms. Therefore,
we must be sure that the page titles can uniquely identify the %singular being viewed.
Select an option below that will uniquely identify all %plural on your site.'
. $details['additional_instructions'],
array('%singular' => $chado_node_api['record_type_title']['singular'],
'%plural' => $chado_node_api['record_type_title']['plural'])
);
$form['set_titles'] = array(
'#type' => 'fieldset',
'#title' => t($details['fieldset_title']),
'#description' => $msg,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#prefix' => "<div id='set_titles-fieldset'>",
'#suffix' => '</div>',
);
$form['set_titles']['content_type'] = array(
'#type' => 'hidden',
'#value' => $node_info[$details['content_type']]['base'],
);
$details['options']['custom'] = 'Custom: See the text field below.';
$form['set_titles']['title_option'] = array(
'#title' => t('%singular Page Titles', array('%singular' => $chado_node_api['record_type_title']['singular'])),
'#type' => 'radios',
'#description' => t("Choose a title type from the list above that is
guaranteed to be unique for all %plural. If in doubt it is safest to choose
the 'Unique Constaint' option as that guarantees uniqueness.",
array('%plural' => $chado_node_api['record_type_title']['plural'])),
'#required' => FALSE,
'#options' => $details['options'],
'#default_value' => (isset($details['options'][$details['default_option']])) ? $details['default_option'] : 'custom',
);
$form['set_titles']['title_format_variable'] = array(
'#type' => 'hidden',
'#value' => $details['module'] . '_title_format'
);
$form['set_titles']['custom_title'] = array(
'#type' => 'textarea',
'#title' => 'Custom Page Title',
'#description' => 'You may rearrange elements in this text box to customize the page
titles. The available tokens are listed below. You can separate or include any text
between the tokens. <strong>Important: be sure that whatever you choose
will always be unique even considering future data that may be added. If in doubt,
please select the unique constraint title option above.</strong>',
'#default_value' => $details['default_option'],
'#rows' => 1
);
$form['set_titles']['token_display'] = array(
'#type' => 'fieldset',
'#title' => 'Available Tokens',
'#description' => 'Copy the token and paste it into the "Custom Page Title" text field above.',
'#collapsible' => TRUE,
'#collapsed' => TRUE
);
$form['set_titles']['token_display']['content'] = array(
'#type' => 'item',
'#markup' => $token_list
);
$form['set_titles']['tokens'] = array(
'#type' => 'hidden',
'#value' => serialize($tokens)
);
$form['set_titles']['submit'] = array(
'#type' => 'submit',
'#value' => 'Set Titles',
'#validate' => array('chado_add_admin_form_set_title_form_validate'),
'#submit' => array('chado_add_admin_form_set_title_form_submit')
);
}