Wie entferne ich die Meldung "Es wurde noch kein Inhalt für die Startseite erstellt." Von der Startseite?


15

Ich möchte nur Blöcke auf der Homepage. Da ich keine Knoten habe und die Homepage als / node behalten möchte, erhalte ich die Meldung "Es wurde noch kein Titelseiteninhalt erstellt." Nachricht auf meiner Seite.

Wie komme ich darum herum?

Antworten:


13

Wer hätte das gedacht? Dafür gibt es ein Modul. Schauen Sie sich das Empty Front Page- Modul an. Mit nur 10 Codezeilen muss es eines der einfachsten Module auf dem Markt sein.


Als Randnotiz entfernt dieses Modul auch den Link "Neuen Inhalt hinzufügen", der nicht erforderlich ist, wenn die Site keine Knoten haben soll.
kiamlaluno

2
Vorsichtig!! Sie müssen keine Module für kleine Änderungen hinzufügen: Sie können Ihre Vorlagendatei überschreiben und den folgenden Code hinzufügen: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
Vorsichtig? Ist das Hinzufügen von Modulen heutzutage gefährlich? In der Tat wäre ich vorsichtiger, wenn ich solche Dinge in Ihr Thema aufnehmen würde. Sie können sich die Frage stellen: "Wenn ich jemals ein anderes Thema wählen würde, sollte diese Änderung bestehen bleiben?" Wenn die Antwort ja ist, gehört sie nicht in Ihr Thema.
Marcvangend

@HimanshuPathak Es ist wahrscheinlich besser, das Hinzufügen von Code zu einem Thema zu vermeiden, nur weil es einfacher ist, insbesondere wenn das Verhalten nicht von einem Thema abhängt (was bedeutet, dass der Code, den Sie einem Thema hinzufügen, jedem Thema hinzugefügt werden sollte).
kiamlaluno

Vielen Dank, in diesem Fall müssen wir MYTHEMEdurch MYMODULErechts ersetzen ?
Himanshu Pathak

9

Sie können dies in der Vorlagendatei Ihres Themas tun:

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

Funktioniert es für Drupal8?
Guru

obwohl ich es nicht versucht habe und ich denke nein
Himanshu Pathak

Ich würde in einem Design keinen Code für etwas hinzufügen, das ich möchte, unabhängig von dem Design, das ich für eine Site verwende.
kiamlaluno

2

Eine schnelle CSS-Problemumgehung zum Ausblenden der Meldung "Kein Inhalt" besteht darin, einfach die folgende Zeile in Ihre CSS-Datei einzufügen:

 #first-time {display:none;}

1
Das ist eine gefährliche Sache. Es zeigt sich in Google-Ergebnissen;)
Tomáš Fejfar

Ich stimme mit Ihnen ein. Dies ist nicht die beste Lösung. Dies ist eine Problemumgehung. nichts mehr.
xaa

1

Die Meldung "Es wurde noch kein Inhalt für die Startseite erstellt." wird aus dem Seitenrückruf für die Seite angezeigt , die Sie als Startseite verwenden, node_page_default () , der den folgenden Code enthält.

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

    // …
  }

Es wird einfach ausgegeben, da die Site keine Knoten hat. Die Nachricht hat nichts mit der Titelseite zu tun, die Blöcke hat (oder nicht hat).

Wenn Sie diese Titelseite beibehalten möchten, diese Meldung jedoch nicht sehen, können Sie den folgenden Hook in einem Modul implementieren.

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

Die andere Alternative wäre das Hinzufügen des folgenden Codes am Ende der settings.php-Datei.

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

Wenn auf Ihrer Website andere Sprachen aktiviert sind, können Sie für jede Sprache einen ähnlichen Eintrag hinzufügen. Für Italienisch wäre der einzugebende Code beispielsweise der folgende. ( _enwird ersetzt durch _it.)

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

Bei dieser Methode wurde noch kein Titelseiteninhalt erstellt. würde an jedem Ort, an dem es verwendet wird, ersetzt werden, nicht nur auf der Titelseite. Diese Zeichenfolge wird normalerweise nur auf der Startseite verwendet, wenn die Startseite die Standardeinstellung ist. Ich weiß nicht, ob ein anderes Modul diese Zeichenfolge verwendet, aber bevor $conf['locale_custom_strings_en']['']ich diese Zeichenfolge durch eine leere Zeichenfolge ersetze, würde ich überprüfen, dass es keine aktivierten Module gibt, die sie verwenden (mit Ausnahme des Node-Moduls).


Entfernt das übrigens alle vorhandenen Blöcke von meiner Homepage? Muss ich sie noch einmal wiederholen? Oder wird es nur die Nachricht loswerden, die ich nicht will?
user12804

Durch Ändern des Seitenrückrufs für eine Seite werden die dieser Seite zugewiesenen Blöcke nicht geändert. Die Antwort lautet also Nein zu beiden Fragen.
kiamlaluno

Entschuldigung, noch eine Frage. In welches Modul soll ich das einfügen? Wenn Sie diese Titelseite beibehalten möchten, diese Meldung jedoch nicht sehen, können Sie den folgenden Hook in einem Modul implementieren. Funktion 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 (' Es wurde noch kein Titelseiteninhalt erstellt. ').' </ p > ',' '); }}
user12804

Sie müssen ein Modul erstellen, falls Sie noch kein Modul erstellt haben, um die Site anzupassen.
kiamlaluno

1

Ich habe eine Vorlage für alle neuen Projekte, die Folgendes enthält:

  1. hook_menu (), um einen neuen Menü-Callback für einen generischen Pfad wie "home" zu erstellen
  2. Der Seitenrückruf für "home", der eine Zeichenfolge mit einem Leerzeichen zurückgibt (weil Omega versucht, "smart" zu sein, wenn Sie eine leere Zeichenfolge zurückgeben)
  3. Ein Strongarm-Export, der die Homepage der Site auf meine "Home" -URL setzt

Das war's, ich muss mich nie wieder mit der verrückten Standardknotenseite befassen.


Warum exportieren Sie und setzen nicht nur in Ihrem hook_enable () variable_set ('site_frontpage', 'home'); nur eine Notiz
Pan Chrono

1

Dies ist ein cooler Ausschnitt, um diesen Fehler zu beseitigen, ohne mit anderen Inhalten im Inhaltsbereich zu verwechseln . Dadurch wird nur dieser Fehler ausgeblendet und die anderen Inhalte normal angezeigt.

Dieses Snippet wurde veröffentlicht unter Entfernen des "Es wurde noch kein Titelseiteninhalt erstellt." in der Standard-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']);
      }
  }

0

Haken Sie Ihre page.tpl.php auf page - front.tpl.php und machen Sie, was Sie wollen, genießen Sie das Einhängen :-)


Dank dafür. Wie kann ich diese beiden Vorlagen "einbinden"? Beseitigt dies die Meldung "Es wurde noch kein Inhalt für die Startseite erstellt." Text auf der Homepage?
user12804

Keine Notwendigkeit, beide Vorlagen zu haken, folgen Sie einfach diesen Schritten:
Somik

1) Kopieren Sie den gesamten page.tpl.php-Inhalt in Ihre angehängte front.tpl. 2) Schreiben Sie dann zur Überprüfung Ihren Namen oder meinen Namen oben auf und aktualisieren Sie Ihr Zuhause all cache hard
refresh

2
Wenn mehr als ein Thema aktiviert ist, würde ich dieser Methode lieber nicht folgen.
kiamlaluno

0

Ich bin nicht sicher, ob es eine Möglichkeit gibt, dies über die Administrationsoberfläche von Drupal zu tun.

Eine Möglichkeit, dies zu erreichen, die ich kenne, besteht darin, eine ifErklärung zu Ihrer hinzuzufügen page.tpl.php. Finde eine Zeile wie:

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

... und ändere es in:

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

Dadurch wird der Inhalt der Hauptseite grundsätzlich auf allen Seiten gedruckt, die nicht die Startseite sind. Dies kann jedoch zu einem klaffenden Loch in der Mitte Ihrer Seite führen.

Nach dem Kommentieren von Inhalten zum Bartik-Thema.

Sie sollten also einige andere Anpassungen vornehmen page.tpl.phpund möglicherweise mehr umgebende Container-Tags einschließen. Weitere Änderung der Tamplate durch Platzieren der Überschrift über der ersten Seitenleiste für die Homepage:

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

... und verschieben Sie die ursprüngliche ifAnweisung und platzieren Sie sie direkt im Inhaltscontainer:

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

... ergab folgende Ergebnisse:

Inhalt entfernt und Überschrift beibehalten.


Das ist zu viel: Es ist nicht notwendig, den gesamten Inhalt von zu entfernen $page['content'].
kiamlaluno

Was würden Sie stattdessen vorschlagen?
User12804


0

Ich weiß nicht, warum ihr es so kompliziert. (Nun, ich weiß nicht, ob Abd's Wege funktionieren, aber falls es nicht funktioniert hat, benutze die Lösung unten.

in page.tpl.php musst du diesen Teil des Codes finden:

(Nun, ich habe dies ist mein Adaptive Theme 7x-3.2)

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

Alles was Sie tun müssen, ist es zu löschen! Alle Zeilen.

Dieser Teil von PHP sagt einfach:

Wenn "title" vorhanden ist, drucken Sie es in H1-Schriftgröße. Es wird auf der Website in dem Bereich gedruckt, in dem der Code geschrieben ist. Im Falle von Adaptive Theme befindet es sich im Header-Bereich.

Wenn Sie page.tpl.php nicht in Ihrem Unterthema haben, müssen Sie es im Hauptthema finden und dann an die gleiche Stelle wie das Hauptthema in Ihr Unterthema kopieren.

In AT ist es /templates/page.tpl.php

Das bedeutet, dass Sie in Ihrem Adaptive-Theme-Unterthema einen Ordner mit dem Namen "templates" erstellen und dann die page.tpl.php kopieren und dann den oben genannten Teil des Codes löschen müssen.

Es ist wichtig, dass Sie keine Änderungen am Core-Thema vornehmen!


0

Fügen Sie diesen Code in page.tpl.php ein

if(drupal_is_front_page()) {

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

}

Oder

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

In der Seite - front.tpl.php


0

Sie können String Overrides Module verwenden, um String Overrides zu ersetzen

"Es wurde noch kein Titelseiteninhalt auf der Titelseite" bis "" erstellt.


0

Besser, diesen Job zu erreichen, ist $page['content']['system_main']['default_message']in hook_preprocess_theme oder im page.tpl.phpoder nicht eingestellt page--front.tpl.php.

finden

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

und durch folgenden Code ersetzen.

<?php  if(drupal_is_front_page()){
            unset($page['content']['system_main']['default_message']);
            } 
        print render($page['content']); 
    ?>

ODER

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

Genießen!!


0

In Drupal 8 wurde derselbe "Noch kein Titelseiteninhalt erstellt." wird auch angezeigt, z. B. direkt nachdem Sie eine neue Site erstellt und deren Startseite (Homepage) besucht haben. Aber die Dinge wurden vereinfacht, wenn Sie es ersetzen oder entfernen möchten ... Alles, was benötigt wird, ist wie folgt:

  • Navigieren Sie zu /admin/structure/views/view/frontpage(um die Ansicht mit dem Namen "Frontpage" zu bearbeiten).
  • Verwenden Sie unter "Verhalten ohne Ergebnisse" den Link "Global: Ungefilterter Text", um ihn zu bearbeiten. Ändern Sie die Nachricht (= "Es wurde noch kein Titelseiteninhalt erstellt.") Nach Ihren Wünschen oder entfernen Sie sie einfach ganz.
  • Vergessen Sie nicht, die Änderungen zu speichern .

Navigieren Sie zur Startseite, um Ihre Änderungen zu überprüfen. Wiederholen Sie bei Bedarf die obigen Schritte, um die Nachricht weiter abzustimmen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.