Answers:
谁会猜到?有一个模块。签出“ 空首页”模块。仅用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模块除外)。
我有一个用于所有新项目的模板,其中包含:
就是这样,我不必再处理怪异的默认节点页面。
这是一个很不错的片段,它可以消除此错误,并且不会与Content区域中放置的其他内容混淆。这只会隐藏此错误并正常显示其他内容。
此摘录发布在删除“尚未创建首页内容”中。在默认的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挂接到page--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的这一部分简单地说:
如果存在“标题”,则以H1字体大小打印。它被打印在网站上编写代码的区域中。对于“自适应主题”,它位于“标题”区域中。
如果子主题中没有page.tpl.php,则必须在核心主题中找到它,然后将其复制到与子主题相同的位置。
在AT中是/templates/page.tpl.php
这意味着在您的自适应主题子主题中,您必须创建名为“ 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"
}
}
请享用!!