web-dev-qa-db-fra.com

Comment supprimer le «Aucun contenu de première page n'a encore été créé». message de la première page?

Je veux seulement des blocs sur la page d'accueil. Parce que je n'ai pas de nœuds et que je souhaite conserver la page d'accueil en tant que/nœud, je reçois un "Aucun contenu de première page n'a encore été créé". message sur ma page.

Comment puis-je contourner cela?

14
user12804

Qui aurait deviné? Il y a un module pour ça. Découvrez le module Empty Front Page . Avec seulement 10 lignes de code, ce doit être l'un des modules les plus simples du marché.

13
marcvangend

Vous pouvez le faire dans le fichier de modèle de votre thème:

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)
  }
}
9
Himanshu Pathak

Une solution de contournement CSS rapide pour masquer le "message sans contenu" consiste simplement à ajouter la ligne suivante dans votre fichier CSS:

 #first-time {display:none;}
2
xaa

J'ai un modèle pour tous les nouveaux projets qui contient:

  1. hook_menu () pour faire un nouveau rappel de menu pour un chemin générique comme "home"
  2. Le rappel de page pour "home" qui renvoie une chaîne avec un espace '' (car Omega essaie d'être "intelligent" si vous retournez une chaîne vide)
  3. Une exportation forte qui définit la page d'accueil du site sur mon URL "home"

Ça y est, je n'ai plus jamais à gérer la page de noeud par défaut délirante.

1
David Meister

Ceci est un extrait sympa pour se débarrasser de cette erreur sans confondre avec d'autres contenus placés dans Région de contenu. Cela ne fera que masquer cette erreur et affichera normalement les autres contenus.

Cet extrait est publié sur Supprimez le "Aucun contenu de page d'accueil n'a encore été créé." Dans l'installation par défaut Drupal installation.

/**
 * 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']);
      }
  }
1
WaQaR Ali

Le message "Aucun contenu de première page n'a encore été créé." est affiché à partir du rappel de page pour la page que vous utilisez comme première page, node_page_default () , qui contient le code suivant.

  $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>';

    // …
  }

Il est simplement sorti car le site n'a pas de nœuds; le message n'est pas lié à la page d'accueil ayant (ou n'ayant pas) de blocs.

Si vous souhaitez conserver cette page d'accueil, sans voir ce message, vous pouvez implémenter le hook suivant dans un module.

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

L'autre alternative serait d'ajouter le code suivant à la fin du fichier settings.php.

$conf['locale_custom_strings_en'][''] = array(
  'No front page content has been created yet.' => '',
);

Si d'autres langues sont activées sur votre site Web, vous pouvez ajouter une entrée similaire pour chaque langue. Par exemple, pour l'italien, le code à saisir serait le suivant. (_en est remplacé par _it.)

$conf['locale_custom_strings_it'][''] = array(
  'No front page content has been created yet.' => '',
);

En utilisant cette méthode, "Aucun contenu de première page n'a encore été créé." serait remplacé dans chaque endroit où il est utilisé, pas seulement la première page. Cette chaîne est normalement utilisée uniquement dans la page d'accueil, lorsque la page d'accueil est celle par défaut. Je ne sais pas si un autre module utilise cette chaîne, mais avant de remplacer cette chaîne par une chaîne vide avec $conf['locale_custom_strings_en'][''], Je vérifierais qu'aucun module activé ne l'utilise (à l'exception du module Node).

1
kiamlaluno

Mieux vaut réaliser ce travail n'est pas défini $page['content']['system_main']['default_message'] dans hook_preprocess_theme ou dans le page.tpl.php ou page--front.tpl.php.

trouver

<?php print render($page['content']); ?>

et remplacez par le code ci-dessous.

<?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"
     }
    }

Prendre plaisir!!

0
Yusef

Placez ce code dans page.tpl.php

if(drupal_is_front_page()) {

unset($page['content']['system_main']['default_message']);

}

Ou

unset($page['content']['system_main']['default_message']);

Dans la page - front.tpl.php

0
Paulson Peter

accrochez votre page.tpl.php à la page - front.tpl.php et faites ce que vous voulez, accrochez-vous :-)

0
Somik

vous pouvez utiliser Remplacements de chaîne Module Remplacements de chaîne pour remplacer

"Aucun contenu de première page n'a encore été créé dans la première page" à ""

0
Kamal Oberoi

Dans Drupal 8, le même "Aucun contenu de page d'accueil n'a encore été créé." Est également affiché, par exemple juste après avoir créé un nouveau site et visité sa page d'accueil (page d'accueil). Mais les choses ont été simplifié si vous voulez le remplacer ou le supprimer ... Tout ce dont vous avez besoin est comme ceci:

  • Aller vers /admin/structure/views/view/frontpage (pour modifier la vue nommée "Frontpage").
  • Dans "Aucun comportement de résultats", utilisez le lien "Global: Texte non filtré" pour le modifier. Modifiez le message (= "Aucun contenu de première page n'a encore été créé.") En celui que vous souhaitez, ou supprimez-le complètement.
  • N'oubliez pas de Enregistrer les modifications.

Pour vérifier vos modifications, accédez à la page d'accueil. Si nécessaire, répétez les étapes ci-dessus pour affiner davantage le message.

0
Pierre.Vriens

Je ne sais pas pourquoi vous compliquez tant les choses. (eh bien je ne sais pas si les méthodes d'abd fonctionnent, mais au cas où cela ne fonctionnerait pas, utilisez la solution ci-dessous.

dans page.tpl.php vous devez trouver cette partie du code:

(eh bien j'ai le mien Adaptive Theme 7x-3.2)

<?php if ($title): ?>
<h1 id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>

Il vous suffit de le supprimer! Toutes les lignes.

Cette partie de php dit simplement:

Si "title" existe, imprimez-le en taille de police H1. Il est imprimé sur le site Web dans la zone dans laquelle le code est écrit. Dans le cas du thème adaptatif, il se trouve dans la zone d'en-tête.

Si vous n'avez pas page.tpl.php dans votre sous-thème, vous devez le trouver dans le thème principal, puis le copier au même emplacement que le thème principal, dans votre sous-thème.

Dans AT c'est /templates/page.tpl.php

cela signifie que dans votre sous-thème de thème adaptatif, vous devez créer un dossier nommé "modèles", puis y copier page.tpl.php, puis supprimer la partie de code mentionnée ci-dessus.

Il est important que vous n'apportiez aucune modification au thème principal!

0
EmilSamson

Je ne sais pas s'il existe un moyen de le faire à partir de l'interface d'administration de Drupal.

Une façon d'y parvenir, à ma connaissance, est d'ajouter une instruction if à votre page.tpl.php. Trouvez une ligne comme:

<?php print render($page['content']); ?>` 

... et changez-le en:

<?php if (!$is_front): ?>
  <?php print render($page['content']); ?>
<?php endif; ?>

Cela imprimera essentiellement le contenu de la page principale sur toutes les pages qui ne sont pas la première page. Mais cela pourrait vous laisser un trou béant au milieu de votre page.

After commenting out content on Bartik theme.

Donc, vous pourriez bien faire quelques autres ajustements à votre page.tpl.php et peut-être englober davantage de balises de conteneur environnantes. Modifier davantage le tamplate, en plaçant le titre au-dessus de la première barre latérale de la page d'accueil:

<?php if ($is_front): ?>
  <?php if ($title): ?>
    <h1 class="title" id="page-title">
      <?php print $title; ?>
    </h1>
  <?php endif; ?>
<?php endif; ?>

... et en déplaçant l'instruction if initiale et en la plaçant juste à l'intérieur du conteneur de contenu:

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

... a donné les résultats suivants:

Removed the content and maintained the heading.

0
Batandwa