it-swarm-korea.com

Views2 처리기 : 치명적인 오류 클래스 'views_handler_field'를 찾을 수 없습니다.

모듈 작업 중이며 일부 필드를 뷰에 노출하고 사용자 지정 필터를 제공하고 싶습니다. 그러나 치명적인 오류를 그리지 않고는 어떤 뷰 클래스도 확장 할 수 없습니다. 내 코드는 다음과 같습니다. views_handler_field를 확장하려고 할 때까지 모두 잘 작동합니다.

<?php
// $Id$
/**
 * @files
 *  Provide functionality for views.
 */
/**
 * Get some data and set some handlers.
 */
 function custom_views_data() {
      $data = array();
    $data['custom']['table']['group']  = t('custom');     
    $data['custom']['table']['join'] = array(
      'node' => array(
        'left_field' => 'nid',
        'field' => 'nid',
      ),
    );
    // Has form
    $data['custom']['is_checked'] = array(
      'title' => t('Has contest form'),
      'help' => t('Filter based on presence of a contest form. Nodes with contest forms will equal 1.'),
      'field' => array(
        'handler' => 'views_handler_field',
        'click sortable' => FALSE,
      ),
      'filter' => array(
        'handler' => 'views_handler_filter_string',
      )
    );
    return $data;
 }

 // If you remove everything below here, things work as expected

 /**
  *
  * Define custom handlers.
  */
 function custom_views_handlers() {
      return array(
        'info' => array(
          'path' => drupal_get_path('module', 'custom')
        ),
        'handlers' => array(
          'custom_handler_is_checked_field' => array(
            'parent' => 'views_handler_field'
          )
        )
      );

 }

 /**
  * This class fails with Fatal error: Class 'views_handler_field' not found 
  *
  */
class custom_handler_is_checked_field extends views_handler_field {}
2
Codeblind

클래스 코드가 후크와 동일한 파일 (일명 .module 또는 .views.inc 파일)에 있습니까? views_handler_field가 별도의 파일에 있고 필요할 때만로드되기 때문에 작동하지 않습니다.

'path'에 정의한 폴더 내에서 클래스와 이름이 같고 ".inc"가 끝나는 별도의 파일로 이동해야합니다. (귀하의 경우 모듈 디렉토리, 많은 파일이있는 대형 모듈의 경우 뷰 디렉토리에 배치하는 것이 좋습니다)

그런 다음 뷰는 필요할 때 자동으로 클래스 포함 views_handler_field를 포함하는 파일을 포함합니다 (훅에서 부모 관계를 정의했기 때문에).

1
Berdir