Réponses:
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é.
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
par le MYMODULE
droit?
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)
}
}
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;}
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 (sauf le module Node).
J'ai un modèle pour tous les nouveaux projets qui contient:
Ça y est, je n'ai plus jamais à gérer la page de noeud par défaut délirante.
Ceci est un extrait sympa pour se débarrasser de cette erreur sans confondre avec d'autres contenus placés dans la région de contenu . Cela ne fera que masquer cette erreur et affichera normalement les autres contenus.
Cet extrait est publié sur Supprimer le "Aucun contenu de première page n'a encore été créé." dans l'installation par défaut de 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']);
}
}
accrochez votre page.tpl.php à la page - front.tpl.php et faites ce que vous voulez, accrochez-vous :-)
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, consiste à ajouter une if
déclaration à 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.
Donc, vous pourriez bien faire quelques autres ajustements à votre page.tpl.php
et peut-être englober plus 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 déplacer l' if
instruction initiale et la placer 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:
$page['content']
.
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!
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
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!!
Dans Drupal 8, le même "Aucun contenu de première page n'a encore été créé." s'affiche également, par exemple juste après avoir créé un nouveau site et visité sa première page (page d'accueil). Mais les choses ont été simplifiées si vous voulez le remplacer ou le supprimer ... Tout ce dont vous avez besoin est comme ceci:
/admin/structure/views/view/frontpage
(pour modifier la vue nommée "Frontpage").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.