I figure out this on my own. Hope will be useful for someone.
/**
* Implements hook_variable_info().
*/
function MY_MODULE_variable_info($options) {
// Use '[custom]' as a placeholder for the variable name.
// It will set these properties ('type' and 'multiple') automatically.
$variables['custom_vars_[custom]'] = array(
'title' => t('Custom multiple variable'),
'group' => 'site_information',
'repeat' => array('type' => 'string', 'default' => 'some default value'),
);
// if you need to expose your custom variable as token
// you have to set 'token' key as TRUE,
// and ought to set the properties (name, description and type)
// Notice that 'first' it's a name of variable defined in custom_variable_options().
$variables['custom_vars_first'] = array(
'token' => TRUE,
'title' => 'Custom variable', // name
'description' => 'My first variable description', // description
'type' => 'string' // type
);
return $variables;
}
/**
* Implements hook_variable_type_info().
* @return
* An array of information defining variable types.
* The array contains a sub-array for each variable type
* with the variable type as the key.
* The possible attributes are the same as for hook_variable_info().
*/
function MY_MODULE_variable_type_info() {
$type['custom'] = array(
'title' => t('Custom variables'),
'type' => 'select',
'options callback' => 'custom_variable_options',
);
return $type;
}
/**
* Callback for custom options.
* @return
* An array of variables with the variable name as the key.
*/
function custom_variable_options($variable, $options) {
return array(
'first' => t('My first variable', array(), $options),
'second' => t('My second variable', array(), $options),
'third' => t('My third variable', array(), $options),
);
}
Want to see how it works?
- Install Variable module
- Enable: Variable, Variable store, Variable Admin
- Place this code in your custom module (replace 'MY_MODULE' to your module name)
- Clear caches.
Results:
admin/config/system/variable -> site information
admin/config/system/variable/group/site_information
admin/config/search/path/patterns