80 lines
2.7 KiB
PHP
80 lines
2.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Field conversion for fields handled by this module.
|
|
*/
|
|
|
|
/**
|
|
* Implementation of hook_views_convert().
|
|
*/
|
|
function book_views_convert($display, $type, &$view, $field, $id = NULL) {
|
|
switch ($type) {
|
|
case 'field':
|
|
switch ($field['tablename']) {
|
|
case 'book_parent_node':
|
|
switch ($field['field']) {
|
|
case 'title':
|
|
$item = $view->get_item($display, 'field', $id);
|
|
if ($field['handler'] == 'views_handler_field_book_parent_title') {
|
|
$item['link_to_node'] = TRUE;
|
|
}
|
|
$item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
|
|
$item['table'] = 'node';
|
|
$item['field'] = 'title';
|
|
$view->set_item($display, 'field', $id, $item);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case 'filter':
|
|
switch ($field['tablename']) {
|
|
case 'book':
|
|
switch ($field['field']) {
|
|
case 'parent':
|
|
$operators = array('AND' => '=', 'OR' => '=', 'NOT' => '!=');
|
|
$item = $view->get_item($display, 'filter', $id);
|
|
$item['operator'] = $operators[$field['operator']];
|
|
$item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
|
|
$item['table'] = 'node';
|
|
$item['field'] = 'nid';
|
|
$view->set_item($display, 'filter', $id, $item);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case 'sort':
|
|
switch ($field['tablename']) {
|
|
case 'book':
|
|
switch ($field['field']) {
|
|
case 'weight':
|
|
$view->set_item_option($display, 'sort', $id, 'table', 'book_menu_links');
|
|
break;
|
|
}
|
|
break;
|
|
case 'book_parent_node':
|
|
switch ($field['field']) {
|
|
case 'title':
|
|
$item = $view->get_item($display, 'sort', $id);
|
|
$item['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
|
|
$item['table'] = 'node';
|
|
$item['field'] = 'title';
|
|
$view->set_item($display, 'sort', $id, $item);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case 'argument':
|
|
$options = $field['argoptions'];
|
|
switch ($field['type']) {
|
|
case 'book_parent':
|
|
$options['relationship'] = $view->add_item($display, 'relationship', 'book_parent', 'nid', array(), 'book_parent_nid');
|
|
$view->add_item($display, 'argument', 'node', 'nid', $options, $field['id']);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|