Como remover a mensagem "Nenhum conteúdo da primeira página foi criado ainda".


15

Eu só quero bloqueios na página inicial. Como não tenho nós e quero manter a página inicial como / node, estou recebendo a mensagem "Nenhum conteúdo da página inicial foi criado ainda". mensagem na minha página.

Como contornar isso?

Respostas:


13

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.


Como observação lateral, este módulo também removerá o link "Adicionar novo conteúdo", que não é necessário, se o site não tiver nós.
kiamlaluno

2
Cuidado!! Você não precisa adicionar módulos para pequenas alterações: você pode substituir o arquivo de modelo e adicionar o código a seguir: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) }
Himanshu Pathak

5
Cuidado? A adição de módulos é perigosa hoje em dia? Na verdade, eu seria mais cuidadoso ao colocar coisas como essa no seu tema. Você pode se perguntar: "Se algum dia eu escolher outro tema, essa mudança deve permanecer?" Se a resposta for sim, ela não pertence ao seu tema.
Marcvangend 04/04

@HimanshuPathak Provavelmente é melhor evitar adicionar código a um tema apenas porque é mais fácil, especialmente quando o comportamento não depende de um tema (o que significa que o código que você está adicionando a um tema deve ser adicionado a todos os temas).
kiamlaluno

Obrigado, nesse caso, precisamos substituir MYTHEMEpor MYMODULEcerto?
Himanshu Pathak

9

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)
  }
}

É trabalho para drupal8?
Guru

embora eu não tenha tentado e acho que não
Himanshu Pathak

Eu não adicionaria código em um tema para algo que eu quisesse independentemente do tema usado em um site.
kiamlaluno

2

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;}

11
Isso é uma coisa perigosa a se fazer. Ele aparece nos resultados do google;)
Tomáš Fejfar

Eu concordo com você. Esta não é a melhor solução. isso é uma solução alternativa. nada mais.
xaa

1

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).


A propósito, isso removerá todos os blocos existentes da minha página inicial? Terei que refazê-los novamente? Ou será apenas livrar-se da mensagem que eu não quero?
user12804

Alterar o retorno de chamada da página para uma página não altera os blocos atribuídos a essa página; portanto, a resposta é não para as duas perguntas.
kiamlaluno

Desculpe, outra pergunta. Em qual módulo devo colocar isso? Se você deseja manter a primeira página, mas não vê essa mensagem, pode implementar o seguinte gancho em um módulo. função 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 (' Nenhum conteúdo da primeira página ainda foi criado. ').' </ p > ',' '); }}
user12804

Você precisa criar um módulo, se ainda não o criou para personalizar o site.
kiamlaluno

1

Eu tenho um modelo para todos os novos projetos que contém:

  1. hook_menu () para criar um novo retorno de chamada de menu para um caminho genérico como "home"
  2. O retorno de chamada da página para "home", que retorna uma string com um espaço nela '' (porque o Omega tenta ser "inteligente" se você retornar uma string vazia)
  3. Uma exportação dearmarm que define a página inicial do site como meu URL "doméstico"

É isso aí, eu não tenho que lidar com a página do nó padrão whacky novamente.


Por que você exporta e não apenas define em seu hook_enable () variable_set ('site_frontpage', 'home'); apenas uma nota
Pan Chrono

1

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']);
      }
  }

0

conecte seu page.tpl.php à página - front.tpl.php e faça o que quiser, aproveitando: -)


Obrigado por isso. Como eu "conecto" esses dois modelos? Isso eliminará o "Nenhum conteúdo da primeira página foi criado ainda". texto na página inicial?
user12804

não há necessidade de ligar ambos os modelos, basta seguir esses passos:
Somik

1) copie o conteúdo total do page.tpl.php para o seu front.tpl conectado 2) e verifique se escreve seu nome ou meu nome na parte superior e atualize sua casa 3) ainda se você não conseguir encontrar o seu nome configuration-> performance-> clear todos os cache página inicial de atualização dura
Somik

2
Se houver mais de um tema ativado, prefiro não seguir esse método.
kiamlaluno

0

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 ifdeclaraçã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.

Depois de comentar o conteúdo sobre o tema Bartik.

Portanto, convém fazer alguns outros ajustes no seu page.tpl.phpe, 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 ifinstruçã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:

Removido o conteúdo e mantido o cabeçalho.


Isso é excessivo demais: não é necessário remover todo o conteúdo de $page['content'].
kiamlaluno

O que você sugeriria?
precisa saber é o seguinte


0

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!


0

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



0

Melhor para conseguir esse trabalho é desabilitado $page['content']['system_main']['default_message']no hook_preprocess_theme ou no page.tpl.phpou 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!!


0

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:

  • Navegue para /admin/structure/views/view/frontpage(para editar a exibição denominada "Frontpage").
  • Em "Comportamento sem resultados", use o link "Global: texto não filtrado" para editá-lo. Altere a mensagem (= "Nenhum conteúdo da primeira página foi criado ainda.") Para o que você deseja, ou apenas remova-o completamente.
  • Não esqueça de salvar as alterações.

Para verificar suas alterações, navegue até a página inicial. Se necessário, repita as etapas acima para ajustar ainda mais a mensagem.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.