function metatag_config_overview in Metatag 7
Menu callback for the main Metatag configuration page.
Return value
array A render array with all of the configuration items.
1 string reference to 'metatag_config_overview'
- metatag_menu in ./
metatag.module - Implements hook_menu().
File
- ./
metatag.admin.inc, line 39 - Administration page callbacks for the metatag module.
Code
function metatag_config_overview() {
ctools_include('export');
$metatags = metatag_get_info('tags');
$configs = ctools_export_crud_load_all('metatag_config');
uksort($configs, '_metatag_config_instance_sort');
$rows = array();
foreach ($configs as $config) {
$row = array();
// Style disabled configurations differently.
if (!empty($config->disabled)) {
$row['class'][] = 'disabled';
}
$details = '<div class="metatag-config-label collapsed"><a href="#" class="toggle-details">' . check_plain(metatag_config_instance_label($config->instance)) . '</a></div>';
$details .= '<div class="metatag-config-details js-hide">';
$inherits = array();
$parents = metatag_config_get_parent_instances($config->instance);
array_shift($parents);
foreach (array_reverse($parents) as $parent) {
if (!isset($configs[$parent])) {
$rows[$parent] = array(
_metatag_config_overview_indent('<div class="metatag-config-label">' . check_plain(metatag_config_instance_label($parent)) . '</div>', $parent),
'',
);
}
else {
$inherits[$parent] = metatag_config_instance_label($parent);
if (!empty($configs[$parent]->disabled)) {
$inherits[$parent] .= ' ' . t('(disabled)');
}
}
}
// Show how this config inherits from its parents.
if (!empty($inherits)) {
$details .= '<div class="inheritance">';
$details .= '<p>';
$details .= t('Inherits meta tags from: @parents', array(
'@parents' => implode(', ', $inherits),
));
$details .= '</p>';
$details .= '</div>';
}
// Add a summary of the configuration's defaults.
$summary = array();
foreach ($config->config as $metatag => $data) {
// Skip meta tags that were disabled.
if (empty($metatags[$metatag])) {
continue;
}
$summary[] = array(
check_plain($metatags[$metatag]['label']) . ':',
check_plain(metatag_get_value($metatag, $data, array(
'raw' => TRUE,
))),
);
}
if (!empty($summary)) {
$details .= theme('table', array(
'rows' => $summary,
'attributes' => array(
'class' => array(
'metatag-value-summary',
),
),
));
}
else {
$details .= '<p class="warning">No overridden default meta tags</p>';
$row['class'][] = 'warning';
}
// Close the details div.
$details .= '</div>';
// Add indentation to the leading cell based on how many parents the config
// has.
$details = _metatag_config_overview_indent($details, $config->instance);
$row['data']['details'] = $details;
$operations = array();
if (metatag_config_access('disable', $config)) {
$operations['edit'] = array(
'title' => $config->export_type & EXPORT_IN_DATABASE ? t('Edit') : t('Override'),
'href' => 'admin/config/search/metatags/config/' . $config->instance,
);
}
if (metatag_config_access('enable', $config)) {
$operations['enable'] = array(
'title' => t('Enable'),
'href' => 'admin/config/search/metatags/config/' . $config->instance . '/enable',
'query' => array(
'token' => drupal_get_token('enable-' . $config->instance),
) + drupal_get_destination(),
);
}
if (metatag_config_access('disable', $config)) {
$operations['disable'] = array(
'title' => t('Disable'),
'href' => 'admin/config/search/metatags/config/' . $config->instance . '/disable',
'query' => array(
'token' => drupal_get_token('disable-' . $config->instance),
) + drupal_get_destination(),
);
}
if (metatag_config_access('revert', $config)) {
$operations['revert'] = array(
'title' => t('Revert'),
'href' => 'admin/config/search/metatags/config/' . $config->instance . '/revert',
);
}
if (metatag_config_access('delete', $config)) {
$operations['delete'] = array(
'title' => t('Delete'),
'href' => 'admin/config/search/metatags/config/' . $config->instance . '/delete',
);
}
$operations['export'] = array(
'title' => t('Export'),
'href' => 'admin/config/search/metatags/config/' . $config->instance . '/export',
);
if (module_exists('i18n_string') && !variable_get('metatag_i18n_disabled', FALSE)) {
$operations['translate'] = array(
'title' => t('Translate'),
'href' => 'admin/config/search/metatags/config/' . $config->instance . '/translate',
);
}
$row['data']['operations'] = array(
'data' => array(
'#theme' => 'links',
'#links' => $operations,
'#attributes' => array(
'class' => array(
'links',
'inline',
),
),
),
);
$rows[$config->instance] = $row;
}
$build['config_table'] = array(
'#theme' => 'table',
'#header' => array(
'type' => t('Type'),
'operations' => t('Operations'),
),
'#rows' => $rows,
'#empty' => t('No meta tag defaults available yet.'),
'#attributes' => array(
'class' => array(
'metatag-config-overview',
),
),
'#attached' => array(
'js' => array(
drupal_get_path('module', 'metatag') . '/metatag.admin.js',
),
'css' => array(
drupal_get_path('module', 'metatag') . '/metatag.admin.css',
),
),
'#suffix' => '<p>' . t('Any items marked "Unknown" are configurations in the system for entity types or bundles which have been disabled via the API or the <a href="@url">Settings page</a>; they will not be used.', array(
'@url' => url('admin/config/search/metatags/settings'),
)) . '</p>',
);
return $build;
}