ビューに開始日と終了日を表示しているときに「に」を「-」に変更するにはどうすればよいですか?


10

ビューを使用してデフォルトで開始日と終了日を表示する場合、2つの日付の間に「to」テキストが追加されます。

ありがとう



回答が得られると、他は重複としてクローズされます。グッドキャッチ、@RajeevK
Mołot

@Mołot-重複フラグを付けなかったのはそのためです。誰かがそれに向けて何かを持ち、ビューデータを変更したことを願っています。私はD6でやったことがありますが、これではなく非常に異なることです。
RajeevK 2013

回答:


9

私の回答では、「field_event_date」というフィールドがあり、ビューにContent:Event Dateと表示されていると想定しています。

回答1-ビューテンプレートを使用する

  1. ビューの「詳細」セクションの「その他」セクションで、テーマ情報を開きます

  2. Field Content:Event Dateの最後のテーマオプションのファイル名をコピーします。私の場合は、views-view-field--VIEWMACHINENAME--BLOCKMACHINENAME--field-event-date.tpl.phpになります。

  3. 以下をコピーしてください:

    <?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"])); ?>

これは、2014-08-09 20:15:00-2014-08-12 20:15:00のようなものを出力し、date()フォーマット文字列を使用してフォーマットします

回答2-ビューフィールドを使用する

  1. [フィールド]で、コンテンツ:イベントの日付を追加し、表示を[開始日のみ]に設定します
  2. [フィールド]で、[グローバル:カスタムテキスト]を追加し、[テキスト]を-に設定します
  3. [フィールド]で、[コンテンツ:イベント日付]を追加し、表示を[終了日のみ]に設定します
  4. [フィールド設定]で、上記の3つのフィールドを[インライン]に設定します。

これにより、選択した形式に基づいて、2013年12月1日日曜日-12:00-2013年12月1日日曜日-12:00のようなものが出力されます。


回答#2b:同じことを行いますが、最初のフィールドの表示から開始日を除外します。Global:Custom Textを追加しないでください。そして、終了日フィールドの結果を置換パターンでのようなものに書き換え[field_my_time] - [field_my_time_1]ます。
Hugo

4

上記の答えは正しいですが、このようなTPLでphpを使用しないことをお勧めします。Drupalには多数の豪華なAPIが付属しています。そのうちの1つはtemplate_preprocess_views_view_fieldsです(ここに示すように

あなたのtemplate.phpでこれを行います:

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

2

Date 7.x-2.8以降では、「開始日から終了日」の文字列全体が翻訳可能です。これは、「に」を「-」に変更する簡単な方法は、文字列オーバーライドモジュールを使用することです。モジュールをダウンロードして有効にしてから、/ admin / config / regional / stringoverridesにアクセスします。そのページで、「オリジナル」の下に「!start-date to!end-date」(引用符なし)を追加し、「Replacement」の下に「!start-date-!end-date」(引用符なし)を追加します。保存をクリックします。変更を確認する前に、サイトのキャッシュをフラッシュする必要がある場合もあります。

このメソッドの1つの利点は、ノードビューの「to」が「-」に一度に変更されることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.