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();
}
Exemple #2
0
    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();
    }