回答:
誰が推測したでしょうか?そのためのモジュールがあります。空のフロントページモジュールを確認してください。わずか10行のコードで、最も単純なモジュールの1つでなければなりません。
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)
}
}
「no content message」を非表示にする簡単な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.' => '',
);
Webサイトで他の言語を有効にしている場合、各言語に同様のエントリを追加できます。たとえば、イタリア語の場合、入力するコードは次のようになります。(_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の管理インターフェイスからこれを行う方法があるかどうかはわかりません。
これを実現する1つの方法は、私が知っていることですが、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のこの部分は単に次のように述べています。
「タイトル」が存在する場合は、H1フォントサイズで印刷します。ウェブサイトのコードが書かれている領域に印刷されます。アダプティブテーマの場合は、ヘッダー領域にあります。
サブテーマにpage.tpl.phpがない場合は、コアテーマでそれを見つけてから、コアテーマと同じ場所にサブテーマにコピーする必要があります。
ATでは/templates/page.tpl.phpです
つまり、Adaptiveテーマサブテーマでは、「templates」という名前のフォルダーを作成し、そこにpage.tpl.phpをコピーしてから、上記のコードの一部を削除する必要があります。
Coreテーマに変更を加えないことが重要です!
置換にはString Overrides Module 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」という名前のビューを編集します)。変更を確認するには、フロントページを参照します。必要に応じて、上記の手順を繰り返してメッセージをさらに調整します。