How to add a left nav to SmartDocs Method page to list all operations of the current model

If you wish to have a left navigation similar to the screenshot below, please read this article.

You will need to import the view below into your existing site


$view = new view();
$view->name = 'related_smartdocs_methods_for_nav';
$view->description = 'This is the base view for listing methods in a given model.';
$view->tag = 'smartdocs';
$view->base_table = 'node';
$view->human_name = 'List of Methods related to the currently displayed Smartdocs Node';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['style_options']['grouping'] = array(
  0 => array(
    'field' => 'tags',
    'rendered' => 1,
    'rendered_strip' => 0,
  ),
);
$handler->display->display_options['row_plugin'] = 'fields';
/* Header: Global: Text area */
$handler->display->display_options['header']['area']['id'] = 'area';
$handler->display->display_options['header']['area']['table'] = 'views';
$handler->display->display_options['header']['area']['field'] = 'area';
$handler->display->display_options['header']['area']['content'] = '<h2>[field_model_display_name]</h2>';
$handler->display->display_options['header']['area']['format'] = 'full_html';
$handler->display->display_options['header']['area']['tokenize'] = TRUE;
/* Relationship: Content: Taxonomy terms on node */
$handler->display->display_options['relationships']['term_node_tid']['id'] = 'term_node_tid';
$handler->display->display_options['relationships']['term_node_tid']['table'] = 'node';
$handler->display->display_options['relationships']['term_node_tid']['field'] = 'term_node_tid';
$handler->display->display_options['relationships']['term_node_tid']['label'] = 'smartdocs_model';
$handler->display->display_options['relationships']['term_node_tid']['required'] = TRUE;
$handler->display->display_options['relationships']['term_node_tid']['vocabularies'] = array(
  'smartdocs_models' => 'smartdocs_models',
  'forums' => 0,
  'blog' => 0,
  'content_type_tag' => 0,
  'smartdocs_tags' => 0,
  'smartdocs_verbs' => 0,
  'tags' => 0,
);
/* Relationship: Taxonomy term: Content with term */
$handler->display->display_options['relationships']['nid']['id'] = 'nid';
$handler->display->display_options['relationships']['nid']['table'] = 'taxonomy_index';
$handler->display->display_options['relationships']['nid']['field'] = 'nid';
$handler->display->display_options['relationships']['nid']['relationship'] = 'term_node_tid';
$handler->display->display_options['relationships']['nid']['label'] = 'RelatedNodes';
$handler->display->display_options['relationships']['nid']['required'] = TRUE;
/* Relationship: Content: Taxonomy terms on node */
$handler->display->display_options['relationships']['term_node_tid_1']['id'] = 'term_node_tid_1';
$handler->display->display_options['relationships']['term_node_tid_1']['table'] = 'node';
$handler->display->display_options['relationships']['term_node_tid_1']['field'] = 'term_node_tid';
$handler->display->display_options['relationships']['term_node_tid_1']['label'] = 'Tags';
$handler->display->display_options['relationships']['term_node_tid_1']['vocabularies'] = array(
  'smartdocs_tags' => 'smartdocs_tags',
  'forums' => 0,
  'blog' => 0,
  'content_type_tag' => 0,
  'smartdocs_models' => 0,
  'smartdocs_verbs' => 0,
  'tags' => 0,
);
/* Field: Content: Title */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['relationship'] = 'nid';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['exclude'] = TRUE;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
/* Field: Content: Security schemes */
$handler->display->display_options['fields']['security']['id'] = 'security';
$handler->display->display_options['fields']['security']['table'] = 'field_data_field_smart_method_security';
$handler->display->display_options['fields']['security']['field'] = 'field_smart_method_security';
$handler->display->display_options['fields']['security']['relationship'] = 'nid';
$handler->display->display_options['fields']['security']['label'] = '';
$handler->display->display_options['fields']['security']['exclude'] = TRUE;
$handler->display->display_options['fields']['security']['alter']['alter_text'] = TRUE;
$handler->display->display_options['fields']['security']['alter']['text'] = '<span title="This method needs authentication." class="icon_lock"></span>';
$handler->display->display_options['fields']['security']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['security']['delta_limit'] = '1';
$handler->display->display_options['fields']['security']['delta_offset'] = '0';
/* Field: Content: Resource base URL */
$handler->display->display_options['fields']['base_url']['id'] = 'base_url';
$handler->display->display_options['fields']['base_url']['table'] = 'field_data_field_smart_method_base_url';
$handler->display->display_options['fields']['base_url']['field'] = 'field_smart_method_base_url';
$handler->display->display_options['fields']['base_url']['relationship'] = 'nid';
$handler->display->display_options['fields']['base_url']['label'] = '';
$handler->display->display_options['fields']['base_url']['exclude'] = TRUE;
$handler->display->display_options['fields']['base_url']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['base_url']['type'] = 'text_plain';
/* Field: Content: Resource path */
$handler->display->display_options['fields']['resource_path']['id'] = 'resource_path';
$handler->display->display_options['fields']['resource_path']['table'] = 'field_data_field_smart_method_resource_path';
$handler->display->display_options['fields']['resource_path']['field'] = 'field_smart_method_resource_path';
$handler->display->display_options['fields']['resource_path']['relationship'] = 'nid';
$handler->display->display_options['fields']['resource_path']['label'] = '';
$handler->display->display_options['fields']['resource_path']['exclude'] = TRUE;
$handler->display->display_options['fields']['resource_path']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['resource_path']['type'] = 'text_plain';
/* Field: Content: Tags */
$handler->display->display_options['fields']['tags']['id'] = 'tags';
$handler->display->display_options['fields']['tags']['table'] = 'field_data_field_smart_method_tags';
$handler->display->display_options['fields']['tags']['field'] = 'field_smart_method_tags';
$handler->display->display_options['fields']['tags']['relationship'] = 'nid';
$handler->display->display_options['fields']['tags']['label'] = '';
$handler->display->display_options['fields']['tags']['exclude'] = TRUE;
$handler->display->display_options['fields']['tags']['alter']['alter_text'] = TRUE;
$handler->display->display_options['fields']['tags']['alter']['text'] = '<h3 class="method-tag-header">[tags]</h3>
<div class="clearfix method_details">
  <div class="method_data title-header">Method</div>
</div>';
$handler->display->display_options['fields']['tags']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['tags']['type'] = 'taxonomy_term_reference_plain';
$handler->display->display_options['fields']['tags']['delta_offset'] = '0';
/* Field: Content: HTTP verb */
$handler->display->display_options['fields']['verb']['id'] = 'verb';
$handler->display->display_options['fields']['verb']['table'] = 'field_data_field_smart_method_verb';
$handler->display->display_options['fields']['verb']['field'] = 'field_smart_method_verb';
$handler->display->display_options['fields']['verb']['relationship'] = 'nid';
$handler->display->display_options['fields']['verb']['label'] = '';
$handler->display->display_options['fields']['verb']['exclude'] = TRUE;
$handler->display->display_options['fields']['verb']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['verb']['type'] = 'taxonomy_term_reference_plain';
/* Field: Global: Custom text */
$handler->display->display_options['fields']['display']['id'] = 'display';
$handler->display->display_options['fields']['display']['table'] = 'views';
$handler->display->display_options['fields']['display']['field'] = 'nothing';
$handler->display->display_options['fields']['display']['label'] = '';
$handler->display->display_options['fields']['display']['alter']['text'] = '<div class="method_details clearfix">
  <div class="method_data title">
    <div class="verb-auth"><p data-role="verb" class="[verb]">[verb]</p>[security]</div>
    <div class="title-description">[title]<p title="[base_url][resource_path]" class="resource_path" data-role="resource_path"><!--[base_url]-->[resource_path]</p></div>
  </div>
</div>';
$handler->display->display_options['fields']['display']['element_label_colon'] = FALSE;
/* Field: Taxonomy term: Display name */
$handler->display->display_options['fields']['field_model_display_name']['id'] = 'field_model_display_name';
$handler->display->display_options['fields']['field_model_display_name']['table'] = 'field_data_field_model_display_name';
$handler->display->display_options['fields']['field_model_display_name']['field'] = 'field_model_display_name';
$handler->display->display_options['fields']['field_model_display_name']['relationship'] = 'term_node_tid';
$handler->display->display_options['fields']['field_model_display_name']['label'] = '';
$handler->display->display_options['fields']['field_model_display_name']['exclude'] = TRUE;
$handler->display->display_options['fields']['field_model_display_name']['element_label_colon'] = FALSE;
/* Sort criterion: Taxonomy term: Name */
$handler->display->display_options['sorts']['name']['id'] = 'name';
$handler->display->display_options['sorts']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['sorts']['name']['field'] = 'name';
$handler->display->display_options['sorts']['name']['relationship'] = 'term_node_tid_1';
/* Sort criterion: Content: Title */
$handler->display->display_options['sorts']['title']['id'] = 'title';
$handler->display->display_options['sorts']['title']['table'] = 'node';
$handler->display->display_options['sorts']['title']['field'] = 'title';
$handler->display->display_options['sorts']['title']['relationship'] = 'nid';
/* Contextual filter: Content: Nid */
$handler->display->display_options['arguments']['nid']['id'] = 'nid';
$handler->display->display_options['arguments']['nid']['table'] = 'node';
$handler->display->display_options['arguments']['nid']['field'] = 'nid';
$handler->display->display_options['arguments']['nid']['default_action'] = 'default';
$handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
$handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['relationship'] = 'nid';
$handler->display->display_options['filters']['status']['value'] = '1';
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type_1']['id'] = 'type_1';
$handler->display->display_options['filters']['type_1']['table'] = 'node';
$handler->display->display_options['filters']['type_1']['field'] = 'type';
$handler->display->display_options['filters']['type_1']['relationship'] = 'nid';
$handler->display->display_options['filters']['type_1']['value'] = array(
  'smart_method' => 'smart_method',
);
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'smart_method' => 'smart_method',
);

/* Display: Model index page */
$handler = $view->new_display('block', 'Model index page', 'modelindex');
$handler->display->display_options['display_description'] = 'This block provides the content navigation for Smartdocs Method page';

Once you have this View imported you can place it in the Primary region of your theme and make sure it is only displayed on ā€œSmartDocs Methodā€ content type.

2 Likes

Hi @gkoli123 ,

This tutorial is very helpful for me,I want to make api first page as left menu and resources method in right side,can you explain as above helpful tutorial.

Hi @gkoli123 ,

I have imported this view and check the content type in Filter Criteria which is smartDocs method but could not get any success.

1 Like

@AbdulRehman,

Importing the view isn’t enough. Go to blocks administration (/admin/structure/block) and look for the following block, in the ā€œDisabledā€ section at the bottom: ā€œView: List of Methods related to the currently displayed Smartdocs Node: Model index pageā€. You have to put that block in one of the regions on your page. Don’t forget to ā€œSave blocksā€ at the bottom of the block admin page after you have assigned that block to a region.

Please report back to let us know if this solved your issue.

Hi @Shai Gluskin,

After importing the view, I added this view block in ā€˜frontPage Panel Left’ region and also added ā€˜Main page content’ in content region which is required,but its showing blank output.

ā€œfrontPageā€ doesn’t sound right. This view block is meant to show up on a method page. The advantage is that when you are on the method page, the block will show you all the other methods that are part of the same model.

Hey, I used this view but the text keeps spilling out of the box and may look unprofessional. Any idea how to fix it so that the text keeps being wrapped inside?

1 Like