뷰에 시작 및 종료 날짜를 표시하는 동안 "to"를 "-"로 변경하는 방법은 무엇입니까?


10

뷰를 사용하여 기본적으로 시작 날짜와 종료 날짜를 표시 할 때 두 날짜 사이에 "to"텍스트를 추가하면 "to"를 "-"로 변환하는 다른 방법이 궁금합니다.

감사



하나가 답을 얻으면 다른 하나는 복제본으로 폐쇄되어야합니다. 잘 잡아라, @RajeevK
Mołot

@ Mołot-이것이 중복으로 표시되지 않은 이유입니다. 누군가가 그것에 대해 뭔가가 있고 뷰 데이터를 수정하기를 바랍니다. 나는 D6에서했지만이 것은 아니지만 매우 다른 일을했습니다.
RajeevK

답변:


9

내 대답에는 내보기에 내용 : 이벤트 날짜로 표시되는 "field_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"])); ?>
    

date () 형식 문자열을 사용하여 형식으로 2014-08-09 20:15:00-2014-08-12 20:15:00과 같은 것을 출력 합니다 .

답변 # 2-보기 필드 사용

  1. 필드에서 컨텐츠 : 이벤트 날짜를 추가하고 표시를 "시작 날짜 만"으로 설정하십시오.
  2. 필드 아래에서 전역 : 사용자 정의 텍스트를 추가하고 텍스트를-
  3. 필드에서 컨텐츠 : 이벤트 날짜를 추가하고 표시를 "종료 날짜 만"으로 설정하십시오.
  4. 필드 설정에서 위의 세 필드를 인라인으로 설정하십시오.

선택한 형식에 따라 2013 년 12 월 1 일 일요일-12:00-2013 년 12 월 1 일 일요일-12:00과 같은 결과가 출력됩니다.


답 # 2b : 동일한 작업을 수행하지만 첫 번째 필드의 디스플레이에서 시작 날짜를 제외하십시오. 전역 : 사용자 정의 텍스트를 추가하지 마십시오. 종료 날짜 필드의 결과를 다음과 같은 대체 패턴으로 다시 작성하십시오 [field_my_time] - [field_my_time_1].
Hugo

4

위의 대답은 정확하지만 TPL에서 PHP를 사용하지 않는 것이 가장 좋습니다. (드루팔이 멋진 API 년대의 무리와 함께 제공 중 하나는 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

날짜 7.x-2.8 이상에서는 전체 "시작 날짜부터 종료 날짜까지"문자열을 번역 할 수 있습니다. 이는 "to"를 "-"로 쉽게 변경하는 방법은 String Overrides 모듈 을 사용하는 것 입니다. 모듈을 다운로드하여 활성화 한 다음 / admin / config / regional / stringoverrides를 방문하십시오. 해당 페이지에서 "원본"아래에 "! start-date to! end-date"(인용 부호 제외)를 추가하고 "바꾸기"아래에 "! start-date-! end-date"(인용 부호 제외)를 추가하십시오. 저장을 클릭하십시오. 변경 사항을 확인하기 전에 사이트 캐시를 플러시해야 할 수도 있습니다.

이 방법의 장점 중 하나는 노드 뷰에서 "-"를 "-" 로 한 번 에 변경한다는 것입니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.