126 lines
2.6 KiB
PHP
126 lines
2.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Provide views data for book.module.
|
|
*
|
|
* @ingroup views_module_handlers
|
|
*/
|
|
|
|
/**
|
|
* Implements hook_views_data().
|
|
*/
|
|
function book_views_data() {
|
|
$data = [];
|
|
$data['book'] = [];
|
|
$data['book']['table'] = [];
|
|
$data['book']['table']['group'] = t('Book');
|
|
|
|
$data['book']['table']['join'] = [
|
|
'node_field_data' => [
|
|
'left_field' => 'nid',
|
|
'field' => 'nid',
|
|
],
|
|
];
|
|
|
|
$data['book']['nid'] = [
|
|
'title' => t('Page'),
|
|
'help' => t('The book page node.'),
|
|
'relationship' => [
|
|
'base' => 'node_field_data',
|
|
'id' => 'standard',
|
|
'label' => t('Book Page'),
|
|
],
|
|
];
|
|
|
|
$data['book']['bid'] = [
|
|
'title' => t('Top level book'),
|
|
'help' => t('The book the node is in.'),
|
|
'relationship' => [
|
|
'base' => 'node_field_data',
|
|
'id' => 'standard',
|
|
'label' => t('Book'),
|
|
],
|
|
];
|
|
|
|
$data['book']['pid'] = [
|
|
'title' => t('Parent'),
|
|
'help' => t('The parent book node.'),
|
|
'relationship' => [
|
|
'base' => 'node_field_data',
|
|
'id' => 'standard',
|
|
'label' => t('Book Parent'),
|
|
],
|
|
];
|
|
|
|
$data['book']['has_children'] = [
|
|
'title' => t('Page has Children'),
|
|
'help' => t('Flag indicating whether this book page has children'),
|
|
'field' => [
|
|
'id' => 'boolean',
|
|
],
|
|
'sort' => [
|
|
'id' => 'standard',
|
|
],
|
|
'filter' => [
|
|
'id' => 'boolean',
|
|
'label' => t('Has Children'),
|
|
],
|
|
'argument' => [
|
|
'id' => 'numeric',
|
|
],
|
|
];
|
|
|
|
$data['book']['weight'] = [
|
|
'title' => t('Weight'),
|
|
'help' => t('The weight of the book page.'),
|
|
'field' => [
|
|
'id' => 'numeric',
|
|
],
|
|
'sort' => [
|
|
'id' => 'standard',
|
|
],
|
|
];
|
|
|
|
$data['book']['depth'] = [
|
|
'title' => t('Depth'),
|
|
'help' => t('The depth of the book page in the hierarchy; top level books have a depth of 1.'),
|
|
'field' => [
|
|
'id' => 'numeric',
|
|
],
|
|
'sort' => [
|
|
'id' => 'standard',
|
|
],
|
|
'filter' => [
|
|
'id' => 'numeric',
|
|
],
|
|
'argument' => [
|
|
'id' => 'standard',
|
|
],
|
|
];
|
|
$parents = [
|
|
1 => t('1st parent'),
|
|
2 => t('2nd parent'),
|
|
3 => t('3rd parent'),
|
|
4 => t('4th parent'),
|
|
5 => t('5th parent'),
|
|
6 => t('6th parent'),
|
|
7 => t('7th parent'),
|
|
8 => t('8th parent'),
|
|
9 => t('9th parent'),
|
|
];
|
|
foreach ($parents as $i => $parent_label) {
|
|
$data['book']["p$i"] = [
|
|
'title' => $parent_label,
|
|
'help' => t('The @parent of book node.', ['@parent' => $parent_label]),
|
|
'relationship' => [
|
|
'base' => 'node_field_data',
|
|
'id' => 'standard',
|
|
'label' => t('Book @parent', ['@parent' => $parent_label]),
|
|
],
|
|
];
|
|
}
|
|
|
|
return $data;
|
|
}
|