function noderelationships_settings_load in Node Relationships 6
Get relationship settings for the given content type.
Parameters
$nodetype: The node type.
$settings_group: The group of settings the caller is interested in. Optional, options: 'noderef', 'backref', 'all' (default).
Return value
array The requested settings array.
15 calls to noderelationships_settings_load()
- noderelationships_admin_settings_backref in ./
noderelationships.admin.inc - Back reference settings form.
- noderelationships_admin_settings_backref_submit in ./
noderelationships.admin.inc - Submit handler for the back reference settings form.
- noderelationships_admin_settings_noderef in ./
noderelationships.admin.inc - Node reference extras form.
- noderelationships_admin_settings_noderef_submit in ./
noderelationships.admin.inc - Submit handler for the node reference extras form.
- noderelationships_backref_access in ./
noderelationships.module - Access callback for the node relationships tab.
File
- ./
noderelationships.inc, line 55 - Common functions for the noderelationships module.
Code
function noderelationships_settings_load($nodetype, $settings_group = 'all') {
// Build default settings structure.
$settings = array(
'noderef' => array(
'search_and_reference_view' => array(),
'view_in_new_window' => array(),
'edit_reference' => array(),
'create_and_reference' => array(),
'translate_and_reference' => array(),
),
'backref' => array(
'regions' => array(),
),
);
// Read settings from database.
$regions = noderelationships_get_back_reference_regions();
foreach (noderelationships_settings_list("type_name = '%s'", $nodetype) as $row) {
$relation_key = $row->related_type . ':' . $row->field_name;
if ($row->relation_type == 'noderef') {
if (!empty($row->settings['search_and_reference_view'])) {
$settings['noderef']['search_and_reference_view'][$row->field_name] = $row->settings['search_and_reference_view'];
}
if (!empty($row->settings['view_in_new_window'])) {
$settings['noderef']['view_in_new_window'][$row->field_name] = $row->field_name;
}
if (!empty($row->settings['edit_reference'])) {
$settings['noderef']['edit_reference'][$row->field_name] = $row->field_name;
}
if (!empty($row->settings['create_and_reference'])) {
$settings['noderef']['create_and_reference'][$row->field_name] = $row->field_name;
}
if (!empty($row->settings['translate_and_reference'])) {
$settings['noderef']['translate_and_reference'][$row->field_name] = $row->field_name;
}
}
elseif ($row->relation_type == 'backref') {
$region = $row->settings['region'];
if (isset($regions[$region])) {
if (!isset($settings['backref']['regions'][$region])) {
$settings['backref']['regions'][$region] = array();
}
$settings['backref']['regions'][$region][$relation_key] = array(
'weight' => $row->settings['weight'],
'back_reference_view' => $row->settings['back_reference_view'],
);
}
}
}
// Sort back reference regions by weight.
foreach (array_keys($settings['backref']['regions']) as $region) {
noderelationships_settings_region_sort($settings['backref']['regions'][$region]);
}
if ($settings_group == 'noderef') {
return $settings['noderef'];
}
elseif ($settings_group == 'backref') {
return $settings['backref'];
}
return $settings;
}