Ответы:
Кто бы мог догадаться? Для этого есть модуль. Проверьте модуль Пустой главной страницы . Имея всего 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»).Чтобы проверить ваши изменения, перейдите на первую страницу. При необходимости повторите описанные выше шаги для дальнейшей настройки сообщения.