1 block.taxonomy.inc | DashboardTaxonomyBlock::getContent() |
Return the content of a block.
Return value
mixed:
Overrides Block::getContent
File
- core/
modules/ dashboard/ includes/ block.taxonomy.inc, line 52 - Dashboard block displaying information about taxonomy, including: -
Class
- DashboardTaxonomyBlock
- @file Dashboard block displaying information about taxonomy, including: -
Code
function getContent() {
if (!module_exists('taxonomy')) {
return;
}
$allowed_vocabularies = !empty($this->settings['vocabularies']) ? $this->settings['vocabularies'] : FALSE;
// Passing FALSE to taxonomy_vocabulary_load_multiple() loads all
// vocabularies.
$vocabularies = taxonomy_vocabulary_load_multiple($allowed_vocabularies);
$rows = array();
// Flag that determines whether the block should be rendered or not.
$no_access = TRUE;
foreach ($vocabularies as $vocabulary) {
$term_count = db_query("SELECT count(*) FROM {taxonomy_term_data} WHERE vocabulary = :name", array(':name' => $vocabulary->machine_name))->fetchField();
$terms = format_plural($term_count, '1 term', '@count terms');
module_load_include('inc', 'taxonomy', 'taxonomy.admin');
$operations = _vocabulary_get_operations($vocabulary);
foreach ($operations as $operation => $link) {
// We only need a specific set of operations in the Taxonomy block.
if (!in_array($operation, array('list', 'add', 'configure'))) {
// Remove the rest.
unset($operations[$operation]);
}
// Add the current page as destination for the remaining operations.
else {
$operations[$operation]['query']['destination'] = current_path();
}
}
// If even one operation is allowed to be performed on any vocabulary,
// render the block.
if (!empty($operations)) {
$no_access = FALSE;
}
$operations = array(
'#type' => 'operations',
'#links' => $operations,
);
$rows[] = array(
'data' => array(
check_plain(t($vocabulary->name)),
$terms,
backdrop_render($operations),
),
);
}
// If there are existing vocabularies, but the user has no access to perform
// any operation to any of them, hide the block completely.
if ($no_access) {
return array();
}
$header = array(
array('data' => t('Vocabulary')),
array('data' => t('Terms')),
array('data' => t('Operations')),
);
$panel = array(
'#theme' => 'dashboard_panel__taxonomy',
);
$panel['table'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#empty' => t('There are no vocabularies to display.'),
);
if (user_access('administer taxonomy')) {
$panel['link'] = array(
'#theme' => 'link',
'#path' => 'admin/structure/taxonomy',
'#text' => t('Manage taxonomy'),
);
}
return $panel;
}