Ответы:
Кто бы мог догадаться? Для этого есть модуль. Проверьте модуль Пустой главной страницы . Имея всего 10 строк кода, это должен быть один из самых простых модулей.
function MYTHEME_preprocess_page(&$vars) { if (drupal_is_front_page()) { unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is created" drupal_set_title(''); //removes welcome message (page title) }
MYTHEMEпо MYMODULEправу?
Вы можете сделать это в файле шаблона вашей темы:
function MYTHEME_preprocess_page(&$vars) {
if (drupal_is_front_page()) {
unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is created"
drupal_set_title(''); //removes welcome message (page title)
}
}
Быстрый обходной путь CSS для скрытия «сообщения без содержимого» - просто добавьте следующую строку в ваш файл CSS:
#first-time {display:none;}
Сообщение "Нет содержимого главной страницы еще не было создано." отображается на странице обратного вызова для страницы, которую вы используете в качестве главной страницы, node_page_default () , которая содержит следующий код.
$select = db_select('node', 'n')
->fields('n', array('nid', 'sticky', 'created'))
->condition('n.promote', 1)
->condition('n.status', 1)
->orderBy('n.sticky', 'DESC')
->orderBy('n.created', 'DESC')
->extend('PagerDefault')
->limit(variable_get('default_nodes_main', 10))
->addTag('node_access');
$nids = $select->execute()->fetchCol();
if (!empty($nids)) {
$nodes = node_load_multiple($nids);
$build = node_view_multiple($nodes);
// 'rss.xml' is a path, not a file, registered in node_menu().
drupal_add_feed('rss.xml', variable_get('site_name', 'Drupal') . ' ' . t('RSS'));
$build['pager'] = array(
'#theme' => 'pager',
'#weight' => 5,
);
drupal_set_title('');
}
else {
drupal_set_title(t('Welcome to @site-name', array('@site-name' => variable_get('site_name', 'Drupal'))), PASS_THROUGH);
$default_message = '<p>' . t('No front page content has been created yet.') . '</p>';
// …
}
Это просто вывод, потому что у сайта нет узлов; сообщение не относится к главной странице, имеющей (или не имеющей) блоки.
Если вы хотите сохранить эту титульную страницу, но не видите этого сообщения, вы можете реализовать следующую ловушку в модуле.
function mymodule_page_alter(&$page) {
if (isset($page['default_message']['#markup']) && is_string($page['default_message']['#markup'])) {
$page['default_message']['#markup'] = strtr($page['default_message']['#markup'], '<p>' . t('No front page content has been created yet.') . '</p>', '');
}
}
Другой альтернативой будет добавление следующего кода в конец файла settings.php.
$conf['locale_custom_strings_en'][''] = array(
'No front page content has been created yet.' => '',
);
Если на вашем сайте включены другие языки, вы можете добавить аналогичную запись для каждого языка. Например, для итальянского языка вводимый код будет следующим. ( _enзаменяется на _it.)
$conf['locale_custom_strings_it'][''] = array(
'No front page content has been created yet.' => '',
);
При использовании этого метода «Контент главной страницы еще не создан». будет заменен в любом месте, где он используется, а не только на первой странице. Эта строка обычно используется только на первой странице, если она является страницей по умолчанию. Я не знаю, использует ли какой-либо другой модуль эту строку, но перед тем, как заменить эту строку пустой строкой $conf['locale_custom_strings_en'][''], я бы проверил, нет ли включенных модулей, которые ее используют (кроме модуля Node).
У меня есть шаблон для всех новых проектов, который содержит:
Вот и все, мне больше не нужно иметь дело со странной страницей узлов по умолчанию.
Это классный фрагмент, чтобы избавиться от этой ошибки, не путая с другим содержимым, размещенным в области содержимого . Это только скроет эту ошибку и покажет другое содержимое нормально.
Этот фрагмент размещен в разделе «Удалить содержимое главной страницы еще не создано». в стандартной установке Drupal .
/**
* Implements template_preprocess_page().
*/
function YOUR_THEME_preprocess_page(&$vars) {
// Remove the "No front page content has been created yet.".
if (isset($vars['page']['content']['system_main']['default_message'])) {
unset($vars['page']['content']['system_main']['default_message']);
}
}
подключите ваш page.tpl.php к странице - front.tpl.php и делайте все, что хотите, наслаждайтесь подключением :-)
Я не уверен, есть ли способ сделать это из интерфейса администратора Drupal.
Один из способов сделать это, о котором я знаю, - добавить ifзаявление к вашему page.tpl.php. Найдите строку вроде:
<?php print render($page['content']); ?>`
... и измените его на:
<?php if (!$is_front): ?>
<?php print render($page['content']); ?>
<?php endif; ?>
Это в основном напечатает содержимое главной страницы на всех страницах, которые не являются главной страницей. Но это может оставить вас с зияющей дырой в середине вашей страницы.

Таким образом, вы могли бы сделать несколько других корректировок page.tpl.phpи, возможно, включить больше тегов окружающего контейнера. Далее, изменив тамплату, поместив заголовок над первой боковой панелью домашней страницы:
<?php if ($is_front): ?>
<?php if ($title): ?>
<h1 class="title" id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>
<?php endif; ?>
... и перемещаем начальный ifоператор и помещаем его прямо в контейнер содержимого:
<div id="content" class="column">
<?php if (!$is_front): // Moved the if statement over here.... ?>
<div class="section">
<?php if ($page['highlighted']): ?>
<div id="highlighted"><?php print render($page['highlighted']); ?>
</div>
<?php endif; ?>
<a id="main-content"></a>
<?php print render($title_prefix); ?>
<?php if ($title): ?>
<h1 class="title" id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>
<?php print render($title_suffix); ?>
<?php if ($tabs): ?>
<div class="tabs">
<?php print render($tabs); ?>
</div>
<?php endif; ?>
<?php print render($page['help']); ?>
<?php if ($action_links): ?>
<ul class="action-links">
<?php print render($action_links); ?>
</ul>
<?php endif; ?>
<?php print render($page['content']); ?>
<?php print $feed_icons; ?>
</div>
<?php endif; // ...and closed it here. ?>
</div> <!-- /.section, /#content -->
... дал следующие результаты:

$page['content'].
Я не знаю, почему вы, ребята, так усложняете это. (ну, я не знаю, работают ли способы abd, но если это не сработало, используйте решение ниже.
в page.tpl.php вы должны найти эту часть кода:
(ну у меня это моя адаптивная тема 7х-3,2)
<?php if ($title): ?>
<h1 id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>
Все, что вам нужно сделать, это удалить его! Все строки
Эта часть PHP просто говорит:
Если «заголовок» существует, выведите его шрифтом H1. Он напечатан на сайте в той области, в которой написан код. В случае с адаптивной темой - в области заголовка.
Если в вашей подтеме нет файла page.tpl.php, вы должны найти его в основной теме, а затем скопировать в то же место, что и основная тема, в свою подтему.
В AT это /templates/page.tpl.php
это означает, что в вашей подтеме Adaptive theme вам нужно создать папку с именем «templates», затем скопировать туда page.tpl.php и затем удалить часть кода, упомянутую выше.
Важно, чтобы вы не вносили никаких изменений в базовую тему!
Поместите этот код в page.tpl.php
if(drupal_is_front_page()) {
unset($page['content']['system_main']['default_message']);
}
Или
unset($page['content']['system_main']['default_message']);
На странице - front.tpl.php
Вы можете использовать Overrides Строки модуль String Overrides для замены
Msgstr "Контент главной страницы еще не создан на первой странице" to ""
Лучше для достижения этой работы не установлено $page['content']['system_main']['default_message']в hook_preprocess_theme или в page.tpl.phpили page--front.tpl.php.
находить
<?php print render($page['content']); ?>
и заменить приведенным ниже кодом.
<?php if(drupal_is_front_page()){
unset($page['content']['system_main']['default_message']);
}
print render($page['content']);
?>
ИЛИ
function MYTHEME_preprocess_page(&$vars) {
if (drupal_is_front_page()) {
unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is created"
}
}
Наслаждаться!!
В Drupal 8, то же самое: «Контент главной страницы еще не создан». также отображается, например, сразу после создания нового сайта и посещения его главной страницы (домашней страницы). Но все было упрощено, если вы хотите заменить или удалить его ... Все, что нужно, это так:
/admin/structure/views/view/frontpage(чтобы редактировать вид с именем «Frontpage»).Чтобы проверить ваши изменения, перейдите на первую страницу. При необходимости повторите описанные выше шаги для дальнейшей настройки сообщения.