materiobasemod.module 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?php
  2. /**
  3. * @file
  4. * This is the file description for Materiobasemod module.
  5. *
  6. * In this more verbose, multi-line description, you can specify what this
  7. * file does exactly. Make sure to wrap your documentation in column 78 so
  8. * that the file can be displayed nicely in default-sized consoles.
  9. */
  10. /**
  11. * Implements hook_permission().
  12. */
  13. function materiobasemod_permission() {
  14. return array(
  15. 'use materiobase search' => array(
  16. 'title' => t('Materio base search'),
  17. 'description' => t('Use materiobasemod search.'),
  18. ),
  19. );
  20. }
  21. /**
  22. * Implements hook_menu().
  23. */
  24. function materiobasemod_menu() {
  25. $items = array();
  26. $items['materiobase/search/autocomplete/dbselect'] = array(
  27. 'title' => 'Autocomplete materiobase search',
  28. 'page callback' => 'materiobase_search_autocomplete_dbselect',
  29. 'access arguments' => array('access content'),
  30. 'type' => MENU_CALLBACK,
  31. 'file' => 'materiobasemod.pages.inc',
  32. );
  33. $items['materiobase/search/autocomplete/searchapi'] = array(
  34. 'title' => 'Autocomplete materiobase search',
  35. 'page callback' => 'materiobase_search_autocomplete_searchapi',
  36. 'access arguments' => array('access content'),
  37. 'type' => MENU_CALLBACK,
  38. 'file' => 'materiobasemod.pages.inc',
  39. );
  40. return $items;
  41. }
  42. /**
  43. * Implements hook_block_info().
  44. */
  45. function materiobasemod_block_info() {
  46. // This example comes from node.module.
  47. $blocks['base_search'] = array(
  48. 'info' => t('Materio base search'),
  49. 'cache' => DRUPAL_NO_CACHE
  50. );
  51. return $blocks;
  52. }
  53. /**
  54. * Implements hook_theme().
  55. */
  56. function materiobasemod_theme($existing, $type, $theme, $path) {
  57. return array(
  58. 'materiobase_search_block' => array(
  59. 'arguments' => array(),
  60. 'template' => 'materiobase-search-block',
  61. 'path' => drupal_get_path('module', 'materiobasemod').'/templates',
  62. ),
  63. );
  64. }
  65. /**
  66. * Implements hook_block_view().
  67. */
  68. function materiobasemod_block_view($delta = '') {
  69. // This example comes from node.module. Note that you can also return a
  70. // renderable array rather than rendered HTML for 'content'.
  71. $block = array();
  72. switch ($delta) {
  73. case 'base_search':
  74. if (user_access('use materiobase search')) {
  75. $block['subject'] = t('Search');
  76. $block['content'] = theme('materiobase_search_block', array());
  77. }
  78. break;
  79. }
  80. return $block;
  81. }
  82. /**
  83. * Implements hook_block_view_alter().
  84. */
  85. function materiobasemod_block_view_alter(&$data, $block) {
  86. if ($block->module == 'search_api_page') {
  87. $page = search_api_page_load($block->delta);
  88. $item = menu_get_item();
  89. if (isset($page->path) && $page->path == $item['path']) {
  90. $keys = arg(count(arg(NULL, $page->path)));
  91. if ($keys) {
  92. $data['content']['keys_' . $page->id]['#default_value'] = $keys;
  93. $data['content']['keys_' . $page->id]['#value'] = $keys;
  94. }
  95. }
  96. }
  97. }
  98. /**
  99. * Implements hook_entity_info_alter().
  100. */
  101. function materiobasemod_entity_info_alter(&$entity_info) {
  102. $entity_info['node']['view modes']['cardsmall'] = array(
  103. 'label' => t('Small card for the grid'),
  104. 'custom settings' => TRUE,
  105. );
  106. $entity_info['node']['view modes']['cardmedium'] = array(
  107. 'label' => t('Medium card for the grid'),
  108. 'custom settings' => TRUE,
  109. );
  110. $entity_info['node']['view modes']['cardbig'] = array(
  111. 'label' => t('Big card for the grid'),
  112. 'custom settings' => TRUE,
  113. );
  114. }
  115. /**
  116. * Implements hook_preprocess_node().
  117. */
  118. function materiobasemod_preprocess_node(&$vars) {
  119. $vars['theme_hook_suggestions'][] = 'node__'.$vars['view_mode'];
  120. $vars['theme_hook_suggestions'][] = 'node__' . $vars['type'] . '__' . $vars['view_mode'];
  121. // dsm($vars, '$vars');
  122. }
  123. function materiobasemod_preprocess_field(&$vars) {
  124. $vars['theme_hook_suggestions'][] = 'field__' . $vars['element']['#view_mode'];
  125. $vars['theme_hook_suggestions'][] = 'field__' . $vars['element']['#field_type'] . '__' . $vars['element']['#view_mode'];
  126. $vars['theme_hook_suggestions'][] = 'field__' . $vars['element']['#field_name'] . '__' . $vars['element']['#view_mode'];
  127. // dsm($vars, '$vars');
  128. }
  129. /**
  130. * materiobase_search_form()
  131. */
  132. function materiobase_search_form(){
  133. $form = array();
  134. $form['searchfield'] = array(
  135. '#type' => 'textfield',
  136. '#default_value' => '',
  137. // '#autocomplete_path' => 'materiobase/search/autocomplete/searchapi',
  138. '#autocomplete_path' => 'materiobase/search/autocomplete/dbselect',
  139. '#size' => 30,
  140. '#maxlength' => 1024,
  141. // '#element_validate' => array('taxonomy_autocomplete_validate'),
  142. );
  143. $form['create'] = array(
  144. '#type' => 'submit',
  145. '#value' => t('Search'),
  146. );
  147. return $form;
  148. }
  149. /**
  150. * template_preprocess_materiobase_search_block();
  151. */
  152. function template_preprocess_materiobase_search_block(&$vars){
  153. $vars['searchform'] = drupal_get_form("materiobase_search_form");
  154. }