Configuring views to display book pages as teasers, in the correct order I am trying to display book pages as teasers, on the book cover node.

I created a Views block and display it under the parent node.

Book relationship is added, and a contextual filter as well.
Correct book pages are displayed in the block, but the problem is in the ORDER (weight).

None of the following criteria options work:


(Book parent) Book: Weight (asc)
(Book parent) Book: Hierarchy (asc)
The two above combined


Book pages are always displayed in the same order, which is not the same as order of pages in that book.

What am I missing? Any ideas?

Thanks!
In the sort criteria use:

Book: Weight (asc)


If you take the weight of the parent then all childs will return the same value.

To avoid confusion a Views example to import is added at the bottom. It presumes that:


the top parent node is NOT of the type 'book'
all  child pages are of the type 'book', also sub-childs.


Do not forget to:


'create a new book' in Book outline for the top page (even if it is not of the type 'book')
enable the block 'View: Child page teasers', probably in the 'content' area.


You can try at admin/structure/views/import the example below on your site or with https://simplytest.me/project/views (after deploy enable the Views UI and Book module):

$view = new view();
$view-&gt;name = 'child_page_teasers';
$view-&gt;description = '';
$view-&gt;tag = 'default';
$view-&gt;base_table = 'node';
$view-&gt;human_name = 'Child page teasers';
$view-&gt;core = 7;
$view-&gt;api_version = '3.0';
$view-&gt;disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view-&gt;new_display('default', 'Master', 'default');
$handler-&gt;display-&gt;display_options['title'] = 'Child page teasers';
$handler-&gt;display-&gt;display_options['use_more_always'] = FALSE;
$handler-&gt;display-&gt;display_options['access']['type'] = 'perm';
$handler-&gt;display-&gt;display_options['cache']['type'] = 'none';
$handler-&gt;display-&gt;display_options['query']['type'] = 'views_query';
$handler-&gt;display-&gt;display_options['exposed_form']['type'] = 'basic';
$handler-&gt;display-&gt;display_options['pager']['type'] = 'none';
$handler-&gt;display-&gt;display_options['style_plugin'] = 'default';
$handler-&gt;display-&gt;display_options['row_plugin'] = 'node';
/* Relationship: Book: Parent */
$handler-&gt;display-&gt;display_options['relationships']['nid']['id'] = 'nid';
$handler-&gt;display-&gt;display_options['relationships']['nid']['table'] = 'book_parent';
$handler-&gt;display-&gt;display_options['relationships']['nid']['field'] = 'nid';
/* Field: Content: Title */
$handler-&gt;display-&gt;display_options['fields']['title']['id'] = 'title';
$handler-&gt;display-&gt;display_options['fields']['title']['table'] = 'node';
$handler-&gt;display-&gt;display_options['fields']['title']['field'] = 'title';
$handler-&gt;display-&gt;display_options['fields']['title']['label'] = '';
$handler-&gt;display-&gt;display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler-&gt;display-&gt;display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/* Sort criterion: Book: Weight */
$handler-&gt;display-&gt;display_options['sorts']['weight']['id'] = 'weight';
$handler-&gt;display-&gt;display_options['sorts']['weight']['table'] = 'book_menu_links';
$handler-&gt;display-&gt;display_options['sorts']['weight']['field'] = 'weight';
/* Sort criterion: Content: Title */
$handler-&gt;display-&gt;display_options['sorts']['title']['id'] = 'title';
$handler-&gt;display-&gt;display_options['sorts']['title']['table'] = 'node';
$handler-&gt;display-&gt;display_options['sorts']['title']['field'] = 'title';
/* Contextual filter: Content: Nid */
$handler-&gt;display-&gt;display_options['arguments']['nid']['id'] = 'nid';
$handler-&gt;display-&gt;display_options['arguments']['nid']['table'] = 'node';
$handler-&gt;display-&gt;display_options['arguments']['nid']['field'] = 'nid';
$handler-&gt;display-&gt;display_options['arguments']['nid']['relationship'] = 'nid';
$handler-&gt;display-&gt;display_options['arguments']['nid']['default_action'] = 'default';
$handler-&gt;display-&gt;display_options['arguments']['nid']['default_argument_type'] = 'node';
$handler-&gt;display-&gt;display_options['arguments']['nid']['summary']['number_of_records'] = '0';
$handler-&gt;display-&gt;display_options['arguments']['nid']['summary']['format'] = 'default_summary';
$handler-&gt;display-&gt;display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
$handler-&gt;display-&gt;display_options['arguments']['nid']['specify_validation'] = TRUE;
/* Filter criterion: Content: Published */
$handler-&gt;display-&gt;display_options['filters']['status']['id'] = 'status';
$handler-&gt;display-&gt;display_options['filters']['status']['table'] = 'node';
$handler-&gt;display-&gt;display_options['filters']['status']['field'] = 'status';
$handler-&gt;display-&gt;display_options['filters']['status']['value'] = 1;
$handler-&gt;display-&gt;display_options['filters']['status']['group'] = 1;
$handler-&gt;display-&gt;display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler-&gt;display-&gt;display_options['filters']['type']['id'] = 'type';
$handler-&gt;display-&gt;display_options['filters']['type']['table'] = 'node';
$handler-&gt;display-&gt;display_options['filters']['type']['field'] = 'type';
$handler-&gt;display-&gt;display_options['filters']['type']['value'] = array(
  'book' =&gt; 'book',
);

/* Display: Block */
$handler = $view-&gt;new_display('block', 'Block', 'block');