function metris_search_bar($callback, $options) { $defaults = array('type' => 'table', 'title' => _l('Filter By:'), 'elements' => array(), 'actions' => array('search' => '<button type="submit" class="btn btn-default btn-sm">' . _l('Search') . '</button>')); $options = array_merge($defaults, $options); $id = 'filter-bar-' . md5(serialize($options)); ob_start(); ?> <nav class="search_bar navbar navbar-default" role="search"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#<?php echo $id; ?> "> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <?php if ($options['title']) { ?> <a class="navbar-brand" href="#"><?php echo $options['title']; ?> </a> <?php } ?> </div> <div class="collapse navbar-collapse" id="<?php echo $id; ?> "> <div class="navbar-form"> <?php /*if($options['title']){ ?> <div class="form-group search_header"><strong><?php echo $options['title']; ?> </strong></div> <?php }*/ ?> <?php foreach ($options['elements'] as $element) { if (isset($element['field']) && !isset($element['fields'])) { $element['fields'] = array($element['field']); } if (isset($element['title']) && $element['title']) { ?> <div class="form-group search_title"> <?php echo $element['title']; ?> </div> <?php } ?> <div class="form-group search_input"> <?php if (isset($element['fields'])) { ?> <?php if (is_array($element['fields'])) { foreach ($element['fields'] as $dataid => $field) { if (is_array($field)) { // treat this as a call to the form generate option if (!isset($field['placeholder']) && isset($element['title']) && $element['title']) { //$field['placeholder'] = $element['title']; } if (!isset($field['class'])) { $field['class'] = ''; } $field['class'] .= ' form-control input-sm'; module_form::generate_form_element($field); echo ' '; } else { if (is_closure($field)) { $field(); } else { echo $field . ' '; } } } } else { echo $element['fields']; } ?> <?php } ?> </div> <?php } if (class_exists('module_extra', false) && isset($options['extra_fields']) && $options['extra_fields']) { // find out if any extra fields are searchable module_extra::print_search_bar($options['extra_fields']); } if ($options['actions']) { ?> <div class="form-group search_action pull-right"> <?php foreach ($options['actions'] as $action_id => $action) { echo $action . ' '; } ?> </div> <?php } ?> </div> </div> </nav> <?php return ob_get_clean(); }
public static function search_bar($options) { // let the themes override this search bar function. $result = hook_handle_callback('search_bar', $options); if (is_array($result)) { // has been handed by a theme. return current($result); } $defaults = array('type' => 'table', 'title' => _l('Filter By:'), 'elements' => array(), 'actions' => array('search' => create_link("Search", "submit"))); $options = array_merge($defaults, $options); //todo - hook in here for themes. ob_start(); ?> <table class="search_bar"> <tbody> <tr> <?php if ($options['title']) { ?> <th><?php echo $options['title']; ?> </th> <?php } ?> <?php foreach ($options['elements'] as $element) { if (isset($element['field']) && !isset($element['fields'])) { $element['fields'] = array($element['field']); } if (isset($element['title']) && $element['title']) { ?> <td class="search_title"> <?php echo $element['title']; ?> </td> <?php } if (isset($element['fields'])) { ?> <td class="search_input"> <?php if (is_array($element['fields'])) { foreach ($element['fields'] as $dataid => $field) { if (is_array($field)) { // treat this as a call to the form generate option self::generate_form_element($field); echo ' '; } else { echo $field . ' '; } } } else { echo $element['fields']; } ?> </td> <?php } } if (class_exists('module_extra', false) && isset($options['extra_fields']) && $options['extra_fields']) { // find out if any extra fields are searchable module_extra::print_search_bar($options['extra_fields']); } if ($options['actions']) { ?> <td class="search_action"> <?php foreach ($options['actions'] as $action_id => $action) { echo $action . ' '; } ?> </td> <?php } ?> </tr> </tbody> </table> <?php return ob_get_clean(); }