public ViewExecutable::addHandler($display_id, $type, $table, $field, $options = array(), $id = NULL)
Adds an instance of a handler to the view.
Items may be fields, filters, sort criteria, or arguments.
Parameters
string $display_id: The machine name of the display.
string $type: The type of handler being added.
string $table: The name of the table this handler is from.
string $field: The name of the field this handler is from.
array $options: (optional) Extra options for this instance. Defaults to an empty array.
string $id: (optional) A unique ID for this handler instance. Defaults to NULL, in which case one will be generated.
Return value
string The unique ID for this handler instance.
File
- core/modules/views/src/ViewExecutable.php, line 2162
Class
- ViewExecutable
- Represents a view as a whole.
Namespace
Drupal\views
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | public function addHandler( $display_id , $type , $table , $field , $options = array (), $id = NULL) { $types = $this ::getHandlerTypes(); $this ->setDisplay( $display_id ); $data = $this ->viewsData->get( $table ); $fields = $this ->displayHandlers->get( $display_id )->getOption( $types [ $type ][ 'plural' ]); if ( empty ( $id )) { $id = $this ->generateHandlerId( $field , $fields ); } // If the desired type is not found, use the original value directly. $handler_type = ! empty ( $types [ $type ][ 'type' ]) ? $types [ $type ][ 'type' ] : $type ; $fields [ $id ] = array ( 'id' => $id , 'table' => $table , 'field' => $field , ) + $options ; if (isset( $data [ 'table' ][ 'entity type' ])) { $fields [ $id ][ 'entity_type' ] = $data [ 'table' ][ 'entity type' ]; } if (isset( $data [ $field ][ 'entity field' ])) { $fields [ $id ][ 'entity_field' ] = $data [ $field ][ 'entity field' ]; } // Load the plugin ID if available. if (isset( $data [ $field ][ $handler_type ][ 'id' ])) { $fields [ $id ][ 'plugin_id' ] = $data [ $field ][ $handler_type ][ 'id' ]; } $this ->displayHandlers->get( $display_id )->setOption( $types [ $type ][ 'plural' ], $fields ); return $id ; } |
Please login to continue.