Wie ändere ich "zu" in "-", während das Start- und Enddatum in Ansichten angezeigt wird?

10

Bei der Verwendung von Ansichten zum Anzeigen des Start- und Enddatums wird standardmäßig zwischen zwei Datumsangaben "zu" Text hinzugefügt. Ich habe mich gefragt, wie "in" nach "-" oder etwas anderes konvertiert werden kann.

Vielen Dank

ilama
quelle
1
Gleiche Art von Frage - drupal.stackexchange.com/questions/79311/…
RajeevK
Wenn einer Antworten hat, sollte der andere als Duplikat geschlossen werden. Guter Fang, @RajeevK
Mołot
@ Mołot - Deshalb habe ich nicht als Duplikat markiert. Hoffe, jemand hat etwas dazu & modifizierte Ansichtsdaten. Ich habe in D6 aber nicht diese eine, sondern eine ganz andere Sache gemacht.
RajeevK

Antworten:

9

Bei meinen Antworten wird davon ausgegangen, dass ich ein Feld mit dem Namen "field_event_date" habe, das in meiner Ansicht als Inhalt: Ereignisdatum angezeigt wird.

Antwort 1 - Verwenden Sie die Ansichtsvorlage

  1. Öffnen Sie im Abschnitt "Erweitert" der Ansicht im Abschnitt "Andere" die Themeninformationen

  2. Kopieren Sie den Dateinamen der letzten Designoption für Feldinhalt: Ereignisdatum. In meinem Fall handelt es sich um ein Ansichtsansichtsfeld - VIEWMACHINENAME - BLOCKMACHINENAME - Feldereignisdatum.tpl.php

  3. Kopieren Sie Folgendes hinein:

    <?php
    
    /**
     * @file
     * This template is used to print a single field in a view.
     *
     * It is not actually used in default Views, as this is registered as a theme
     * function which has better performance. For single overrides, the template is
     * perfectly okay.
     *
     * Variables available:
     * - $view: The view object
     * - $field: The field handler object that can process the input
     * - $row: The raw SQL result that can be used
     * - $output: The processed output that will normally be used.
     *
     * When fetching output from the $row, this construct should be used:
     * $data = $row->{$field->field_alias}
     *
     * The above will guarantee that you'll always get the correct data,
     * regardless of any changes in the aliasing that might happen if
     * the view is modified.
     */
    ?>
    
    <?php print date("Y-m-d H:i:s", strtotime($row->field_field_event_date[0]["raw"]["value"])); ?>
     - 
    <?php print date("Y-m-d H:i:s", strtotime($row->field_field_event_date[0]["raw"]["value2"])); ?>

Dies gibt so etwas wie 2014-08-09 20:15:00 - 2014-08-12 20:15:00 aus, Formatierung mit der Datumszeichenfolge () .

Antwort 2 - Verwenden Sie Ansichtsfelder

  1. Fügen Sie unter Felder Inhalt: Ereignisdatum hinzu und setzen Sie die Anzeige auf "Nur Startdatum".
  2. Fügen Sie unter Felder Global: Benutzerdefinierter Text hinzu und setzen Sie Text auf -
  3. Fügen Sie unter Felder Inhalt: Ereignisdatum hinzu und setzen Sie die Anzeige auf "Nur Enddatum".
  4. Legen Sie unter Feldeinstellungen die drei oben genannten Felder als Inline fest.

Dies gibt so etwas wie Sonntag, 1. Dezember 2013 - 12:00 - Sonntag, 1. Dezember 2013 - 12:00 aus, basierend auf dem von Ihnen gewählten Format.

Scott Joudry
quelle
Antwort 2b: Machen Sie dasselbe, schließen Sie jedoch das Startdatum von der Anzeige im ersten Feld aus. Fügen Sie nicht Global: Custom Text hinzu. und schreiben Sie die Ergebnisse des Enddatumsfelds mit einem Ersatzmuster in etwas wie [field_my_time] - [field_my_time_1].
Hugo
4

Obwohl die obige Antwort richtig ist, wird empfohlen, PHP in einer solchen TPL nicht zu verwenden. Drupal wird mit einer Reihe ausgefallener APIs geliefert. Eine davon ist die template_preprocess_views_view_fields ( wie hier zu sehen ).

Führen Sie in Ihrer template.php Folgendes aus:

function YOURTHEME_preprocess_views_view_fields(&$vars) {
 if($vars['view']->name == 'YOUR_VIEW') {
  if (strpos($vars['fields']['YOUR_FIELD']->content,'to') !== false) {
    $vars['fields']['YOUR_FIELD']->content = str_replace('to','-',$vars['fields']['YOUR_FIELD']->content);
  }
 }
}
John O.
quelle
2

In Datum 7.x-2.8 und höher ist die gesamte Zeichenfolge "Startdatum bis Enddatum" übersetzbar. Dies bedeutet, dass eine einfache Möglichkeit, das "in" in ein "-" zu ändern, die Verwendung des String Overrides- Moduls ist. Laden Sie das Modul einfach herunter und aktivieren Sie es. Besuchen Sie dann / admin / config / regional / stringoverrides. Fügen Sie auf dieser Seite unter "Original" "! Startdatum bis! Enddatum" (ohne Anführungszeichen) und unter "Ersetzung" "! Startdatum -! Enddatum" (ohne Anführungszeichen) hinzu. Klicken Sie auf Speichern. Möglicherweise müssen Sie auch die Caches Ihrer Site leeren, bevor Sie die Änderung sehen können.

Ein Vorteil dieser Methode besteht darin, dass das "zu" auf Knoten und Ansichten gleichzeitig in ein "-" geändert wird .

peezy
quelle