Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status
colourBlue
titleDrupal 7 230525

Info

Drupal 7 The information below is most suited to Drupal 7. It may or not be applicable to later versions of Drupal

The information is still good, it just needs to be updated for Drupal 8 and beyond: https://api.drupal.org/api/drupal/core%21modules%21views%21src%21Plugin%21views%21field%21FieldPluginBase.php/group/views_field_handlers/8.9.x

Rather than using Views PHP to insert logic in a views field, a highly advised alternative is to write a custom field handler.  The following code provides the skeleton for a basic Views field handler. 

example.module

Code Block
languagephp
linenumberstrue
/**
 * Implements hook_views_api
 */
function example_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'example'),
  );
}

example.views.inc

Code Block
languagephplinenumberstrue
/**
 * @file
 * Views definitions for 'example'
 */

/**
 * Implementation of hook_views_handlers() to register all of the basic handlers
 * views uses.
 */
function example_views_handlers() {
  return array(
    'info' => array(
      'path' => drupal_get_path('module', 'example'),
    ),
    'handlers' => array(
      // The name of my handler
      'example_handler_custom_field' => array(
        // The name of the handler we are extending.
        'parent' => 'views_handler_field',
      ),
    ),
  );
}

/**
 * Implements hook_views_data().
 */
function example_views_data() {
  $data = array();
  // Add Example group
  $data['example']['table']['group'] = t('Example');
  $data['example']['table']['join'] = array(
    // #global is a special flag which let's a table appear all the time.
    '#global' => array(),
  );
  // Add custom field
  $data['example']['custom_field'] = array(
    'title' => t('Custom Field'),
    'help' => t('Provides a custom field.'),
    'field' => array(
      'handler' => 'example_handler_custom_field',
    ),
  );
  return $data;
}

example.info

Code Block
languagephp
linenumberstrue
name = Example Module
description = This module provides the skeleton for a custom Views field handler
core = 7.x
version = 7.x-1.0
dependencies[] = views
files[] = views/example_handler_custom_field.inc

views/example_handler_custom_field.inc

Code Block
languagephplinenumberstrue
/**
 * @file
 * Definition of example_handler_custom_field
 */
 
/**
 * Provides a custom views field. 
 */
class example_handler_custom_field extends views_handler_field {
  function option_definition() {
    $options = parent::option_definition();
    return $options;
  }
 
  function options_form(&$form, &$form_state) {
    parent::options_form($form, $form_state);
  }
 
  function query() {
    // do nothing -- to override the parent query.
  }
 
  function render($data) {
    // If the devel module is enabled, you may view all of the
    // data provided by fields previously added in your view.
    // dpm($data);
    // Insert PHP code here, or display greeting.
    $output = t("Hello World!");
    return $output;  
  }
}

 

...



Info

Other resources:

Filter by label (Content by label)
showLabelsfalse
max5
spacesKALA
showSpacefalse
sortmodified

...

type

...

page
reversetrue
labelsViews
cqllabel = "views" and type

...

= "page" and space = "KALA"

...

Review History

Who

When

Status

Bob

20230525

Drupal 7 with suggestions for how to update.