function theme_noderelationships_formatter_count in Node Relationships 6
Field formatter for back references count.
File
- ./
noderelationships.pages.inc, line 257 - Implementation of user land pages.
Code
function theme_noderelationships_formatter_count($element) {
// Check if we have a node here. We should.
if (empty($element['#node']) || empty($element['#node']->nid)) {
return '';
}
// Load back reference field data.
$field = content_fields($element['#field_name'], $element['#type_name']);
if (empty($field['referrer_field']) || empty($field['referrer_type'])) {
return '';
}
// Include common module functions.
module_load_include('inc', 'noderelationships');
// Obtain back reference settings for this type.
$backref_settings = noderelationships_settings_load($element['#type_name'], 'backref');
$backref_regions = $backref_settings['regions'];
if (empty($backref_regions[NODERELATIONSHIPS_BACKREF_REGION_FIELD])) {
return '';
}
// Check we really have relation information.
$region_settings = $backref_regions[NODERELATIONSHIPS_BACKREF_REGION_FIELD];
if (empty($region_settings[$field['referrer_type'] . ':' . $field['referrer_field']])) {
return '';
}
// Get information about the referrer field.
$referrer_field = content_fields($field['referrer_field'], $field['referrer_type']);
if (empty($referrer_field)) {
return '';
}
$db_info = content_database_info($referrer_field);
if (empty($db_info) || empty($db_info['columns'])) {
return '';
}
$db_column = $field['referrer_field'] . '_' . current(array_keys($db_info['columns']));
// Compute and return the count of back references for the given field.
return db_result(db_query('SELECT COUNT(*) FROM {' . $db_info['table'] . '} WHERE ' . $db_column . ' = %d', $element['#node']->nid));
}