Respostas:
Quem teria adivinhado? Existe um módulo para isso. Confira o módulo Empty Front Page . Com apenas 10 linhas de código, ele deve ser um dos módulos mais simples do mercado.
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
por MYMODULE
certo?
Você pode fazer isso no arquivo de modelo do seu tema:
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)
}
}
Uma solução rápida para CSS para ocultar a "mensagem sem conteúdo" é simplesmente adicionando a seguinte linha no seu arquivo CSS:
#first-time {display:none;}
A mensagem "Nenhum conteúdo da primeira página foi criado ainda". é mostrado no retorno de chamada da página que você está usando como primeira página, node_page_default () , que contém o seguinte código.
$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>';
// …
}
É simplesmente saída porque o site não possui nós; a mensagem não está relacionada à primeira página ter (ou não ter) blocos.
Se você deseja manter a primeira página, mas não vê essa mensagem, pode implementar o seguinte gancho em um módulo.
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>', '');
}
}
A outra alternativa seria adicionar o seguinte código no final do arquivo settings.php.
$conf['locale_custom_strings_en'][''] = array(
'No front page content has been created yet.' => '',
);
Se você tiver outros idiomas ativados no seu site, poderá adicionar uma entrada semelhante para cada idioma. Por exemplo, para italiano, o código a ser inserido seria o seguinte. ( _en
é substituído por _it
.)
$conf['locale_custom_strings_it'][''] = array(
'No front page content has been created yet.' => '',
);
Usando esse método, "Nenhum conteúdo da primeira página foi criado ainda". seria substituído em todos os lugares em que for usado, não apenas na primeira página. Essa string normalmente é usada apenas na primeira página, quando a primeira página é a padrão. Não sei se existe outro módulo usando essa string, mas antes de substituí-la por uma vazia $conf['locale_custom_strings_en']['']
, verifiquei se não há módulos ativados que a usem (exceto o módulo Node).
Eu tenho um modelo para todos os novos projetos que contém:
É isso aí, eu não tenho que lidar com a página do nó padrão whacky novamente.
Este é um trecho interessante para se livrar desse erro sem confundir com outros conteúdos colocados na região Conteúdo . Isso ocultará apenas este erro e mostrará o outro conteúdo normalmente.
Este trecho é publicado em Remover o "Ainda não foi criado nenhum conteúdo da primeira página". na instalação padrão do 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']);
}
}
conecte seu page.tpl.php à página - front.tpl.php e faça o que quiser, aproveitando: -)
Não tenho certeza se existe uma maneira de fazer isso na interface de administração do Drupal.
Uma maneira de conseguir isso, que eu saiba, é adicionar uma if
declaração à sua page.tpl.php
. Encontre uma linha como:
<?php print render($page['content']); ?>`
... e altere para:
<?php if (!$is_front): ?>
<?php print render($page['content']); ?>
<?php endif; ?>
Isso basicamente imprimirá o conteúdo da página principal em todas as páginas que não são a primeira página. Mas isso pode deixar você com um buraco no meio da sua página.
Portanto, convém fazer alguns outros ajustes no seu page.tpl.php
e, talvez, abranger mais tags de contêiner ao redor. Alterando ainda mais o tamplate, colocando o cabeçalho acima da primeira barra lateral da página inicial:
<?php if ($is_front): ?>
<?php if ($title): ?>
<h1 class="title" id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>
<?php endif; ?>
... e movendo a if
instrução inicial e colocando-a apenas dentro do contêiner de conteúdo:
<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 -->
... produziu os seguintes resultados:
$page['content']
.
Não sei por que vocês complicam tanto. (bem, eu não sei se as maneiras de abd funcionam, mas, caso não funcione, use a solução abaixo.
em page.tpl.php, você precisa encontrar essa parte do código:
(bem, eu tenho este é o meu tema adaptável 7x-3.2)
<?php if ($title): ?>
<h1 id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>
Tudo que você precisa fazer é excluí-lo! Todas as linhas
Esta parte do php simplesmente diz:
Se existir "título", imprima-o no tamanho da fonte H1. Ele está impresso no site na área em que o código está escrito. No caso de Tema Adaptável, está na área de Cabeçalho.
Se você não possui o page.tpl.php no seu subtema, você deve encontrá-lo no tema principal e copiá-lo no mesmo local que o tema principal, no seu subtema.
Em AT é /templates/page.tpl.php
isso significa que, no subtema do tema Adaptive, é necessário criar uma pasta chamada "templates", copiar lá page.tpl.php e excluir a parte do código mencionada acima.
É importante que você não faça alterações no tema Principal!
Coloque este código em page.tpl.php
if(drupal_is_front_page()) {
unset($page['content']['system_main']['default_message']);
}
Ou
unset($page['content']['system_main']['default_message']);
Na página - front.tpl.php
você pode usar Substituições de seqüência de caracteres Substituições de seqüência de caracteres de módulo para substituir
"Nenhum conteúdo da primeira página foi criado ainda na primeira página" para ""
Melhor para conseguir esse trabalho é desabilitado $page['content']['system_main']['default_message']
no hook_preprocess_theme
ou no page.tpl.php
ou page--front.tpl.php
.
encontrar
<?php print render($page['content']); ?>
e substitua pelo código abaixo.
<?php if(drupal_is_front_page()){
unset($page['content']['system_main']['default_message']);
}
print render($page['content']);
?>
OU
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"
}
}
Desfrutar!!
No Drupal 8, o mesmo "Nenhum conteúdo da primeira página foi criado ainda". também é mostrado, por exemplo, logo após você criar um novo site e visitar sua primeira página (página inicial). Mas as coisas foram simplificadas se você deseja substituí-lo ou removê-lo ... Tudo o que é necessário é o seguinte:
/admin/structure/views/view/frontpage
(para editar a exibição denominada "Frontpage").Para verificar suas alterações, navegue até a página inicial. Se necessário, repita as etapas acima para ajustar ainda mais a mensagem.