Відповіді:
Хто б здогадався? Для цього є модуль. Перевірте модуль « Порожня передня сторінка» . Маючи лише 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']['']
, я би переконався, що немає жодних включених модулів, які використовують її (крім модуля "Вузол").
У мене є шаблон для всіх нових проектів, який містить:
Ось так, мені більше не доводиться мати справу зі страшною сторінкою вузла за замовчуванням.
Це класний фрагмент, щоб позбутися цієї помилки, не плутаючи з іншим вмістом, розміщеним у регіоні вмісту . Це дозволить лише приховати цю помилку і нормально відобразити інший вміст.
Цей фрагмент розміщено в розділі Видалити "Ще не створено вміст передньої сторінки". у встановленні 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']);
}
}
підключіть сторінку.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 ви повинні знайти цю частину коду:
(ну у мене це моя адаптивна тема 7x-3.2)
<?php if ($title): ?>
<h1 id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>
Все, що вам потрібно зробити - це видалити його! Усі рядки.
Ця частина php просто говорить:
Якщо "title" існує, роздрукуйте його у форматі шрифту H1. Він надрукований на веб-сайті в тій області, в якій написаний код. У разі адаптивної теми він знаходиться в області заголовка.
Якщо у вашій підтемі немає сторінки.t.tl.php, ви повинні знайти її в основній темі, а потім скопіювати її в те саме місце, що і основна тема, у свою підтему.
В AT це /templates/page.tpl.php
це означає, що у вашій підтемі "Адаптивна тема" ви повинні створити папку з назвою "шаблони", а потім скопіювати туди 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
ви можете використовувати для заміни String Overrides Modul String Overrides
"Ще не створено вміст титульної сторінки на головній сторінці" до ""
Краще для досягнення цієї роботи не встановлено $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").Щоб підтвердити зміни, перейдіть на головну сторінку. Якщо потрібно, повторіть описані вище кроки, щоб подальше налаштування повідомлення.