I'm writing a sub-theme of Seven, and I don't want the page title or tabs being displayed in the Header region. But Seven puts them there in such a way that it doesn't seem possible to remove them...
if (isset($variables['content']['header'])) {
if ($variables['title']) {
$title = '<h1 class="page-title">' . $variables['title'] . '</h1>';
$variables['content']['header'] .= $title;
$variables['title'] = NULL;
}
if ($variables['tabs']) {
$tabs = '<div class="tabs">' . $variables['tabs'] . '</div>';
$variables['content']['header'] .= $tabs;
$variables['tabs'] = NULL;
}
}
(Source: https://api.backdropcms.org/api/backdrop/core%21themes%21seven%21templat...)
By appending the title and tabs as strings to the end of the $variables['content']['header'] variable, it makes it impossible to remove using another preprocess function. I thought about maybe recreating the $variables['content']['header'] variable in my preprocess function from scratch less the title and tabs, but it seems to be too late in the chain to be possible either.
Does Seven need to do it this way? Would the alternative be for Seven to override all layout templates and do it in them instead? Would that help here or not?
Recent comments
@yorkshirepudding, In the end I fixed it by deleting the config/active folder contents, copying the config/staging/ files into config/active, importing the database again and clearing the caches...
Importing the staged config throws an error: another field with the same name already exists
Thanks, I have to go out now, I will try later on and report back
Importing the staged config throws an error: another field with the same name already exists
Hi Francis. Yes, what config do you have in staging for it? You might have configs like: field.field.field_video_embed field.instance.node.page....
Importing the staged config throws an error: another field with the same name already exists