You are here

function view_mode_page_add_entity_pattern in View Mode Page 7.2

Same name and namespace in other branches
  1. 8.2 view_mode_page.module \view_mode_page_add_entity_pattern()

Add a URL pattern to the database.

This does not add the pattern to the menu_router table, but only adds it to the View Mode Page table.

With entity support, we needed new arguments so this pattern was going to change. The function takes a single argument: an array of possible settings which include:

  • content_type
  • entity_type
  • url_pattern
  • show_title
  • title
  • view_mode

Triggers two hooks: view_mode_page_entity_pattern_added and view_mode_page_pattern_added. The first hook is preferred and the second may disappear in future versions.

Parameters

array $settings: An array of settings

5 calls to view_mode_page_add_entity_pattern()
ViewModePageTestCase::testAddEntityPattern in ./view_mode_page.test
Test adding a pattern with the entity based function
ViewModePageTestCase::testDeleteEntityPattern in ./view_mode_page.test
Test deleting a pattern with the entity based function
ViewModePageTestCase::testDeletePattern in ./view_mode_page.test
Test deleting a pattern with the non-entity based function
view_mode_page_add_pattern in ./view_mode_page.module
DEPRECATED: Add a URL pattern to the database.
view_mode_page_form_submit in ./view_mode_page.module
Implements hook_form_submit().

File

./view_mode_page.module, line 521
View Mode Page module allows users to add a page for a specific view mode.

Code

function view_mode_page_add_entity_pattern($settings) {
  $settings = view_mode_page_assert_settings($settings, array(
    'content_type',
    'url_pattern',
    'view_mode',
  ), array(
    'entity_type' => 'node',
    'show_title' => FALSE,
    'title' => '',
  ));
  $query = db_insert('view_mode_page');
  $result = $query
    ->fields(array(
    'content_type' => $settings['content_type'],
    'view_mode' => $settings['view_mode'],
    'url_pattern' => $settings['url_pattern'],
    'show_title' => intval($settings['show_title']),
    'title' => $settings['title'],
    'entity_type' => $settings['entity_type'],
  ))
    ->execute();

  // invoke our hooks
  module_invoke_all('view_mode_page_pattern_added', $settings['content_type'], $settings['view_mode'], $settings['url_pattern'], $result);
  module_invoke_all('view_mode_page_entity_pattern_added', $settings['entity_type'], $settings['content_type'], $settings['view_mode'], $settings['url_pattern'], $result);
  return $result;
}