Cara menambahkan pencarian berdasarkan biblio id di halaman admin bibliografi di slims oleh Erwan Setyo Budi

tambahkan ruas pada filter

<form name="search" action="<?php echo MWB; ?>bibliography/index.php" id="search" method="get"
                      class="form-inline"><?php echo __('Search'); ?>
                    <input type="text" name="keywords" id="keywords" class="form-control col-md-3"/>
                    <select name="field" class="form-control col-md-2">
                        <option value="0"><?php echo __('All Fields'); ?></option>
                        <option value="title"><?php echo __('Title/Series Title'); ?> </option>
                        <option value="subject"><?php echo __('Topics'); ?></option>
                        <option value="author"><?php echo __('Authors'); ?></option>
                        <option value="isbn"><?php echo __('ISBN/ISSN'); ?></option>
                        <option value="publisher"><?php echo __('Publisher'); ?></option>
                    </select>
                    <input type="submit" id="doSearch" value="<?php echo __('Search'); ?>"
                           class="s-btn btn btn-default"/>
                    <div class="btn btn-info" data-toggle="collapse" data-target="#advancedFilter"
                         aria-expanded="false"><?php echo __('Advanced Filter'); ?></div>
                    <div class="collapse" id="advancedFilter"
                         style="padding-top:10px;width:100%; text-align:left !important;">
                        <?php echo __('Hide in OPAC'); ?>&nbsp;
                        <select name="opac_hide" class="form-control col-md-2">
                            <option value=""><?php echo __('ALL'); ?></option>
                            <option value="0"><?php echo __('Show'); ?> </option>
                            <option value="1"><?php echo __('Hide'); ?></option>
                        </select>
                        <?php echo __('Promote To Homepage'); ?>&nbsp;
                        <select name="promoted" class="form-control col-md-2">
                            <option value=""><?php echo __('ALL'); ?></option>
                            <option value="0"><?php echo __('Don\'t Promote'); ?> </option>
                            <option value="1"><?php echo __('Promote'); ?></option>
                        </select>
                        <!-- add biblio id search column -->
                        <input type="text" class="form-control" placeholder="BiblioID" name="biblio_id" />
                    </div>
                    <?php
                    // enable UCS?
                    if ($sysconf['ucs']['enable']) {
                        ?>
                        <a href="#"
                           onclick="ucsUpload('<?php echo MWB; ?>bibliography/ucs_upload.php', serializeChbox('dataList'))"
                           class="s-btn btn btn-default notAJAX"><?php echo __('Upload Selected Bibliographic data to Union Catalog Server*'); ?></a>
                        <?php
                    }
                    ?>
                </form>

Tambahkan query pencarian

    if (isset($_GET['promoted']) && $_GET['promoted'] != '') {
        $promoted = $dbs->escape_string($_GET['promoted']);
        $str_criteria .= ' AND promoted =' . $promoted;
    }
    // add biblio id search query
    if (isset($_GET['biblio_id']) && $_GET['biblio_id'] != '') {
        $biblio_id = (int)$dbs->escape_string($_GET['biblio_id']);
        // Cek apakah menggunakan index engine atau default
        if ($search_engine != DefaultEngine::class) {
            // Untuk search_biblio table
            $str_criteria = "`index`.biblio_id = {$biblio_id}";
        } else {
            // Untuk biblio table
            $str_criteria = "biblio.biblio_id = {$biblio_id}";
        }
    }    //debug
        //echo $str_criteria;

    $datagrid->setSQLcriteria($str_criteria);

Tambahakn kolom biblio id pada data grid

    // index choice
    $search_engine = Engine::active();
    if ($search_engine != DefaultEngine::class) {
        if ($search_engine == SphinxSearchEngine::class) {
            require LIB . 'sphinx/sphinxapi.php';
            require LIB . 'biblio_list_sphinx.inc.php';
        } else {
            require LIB . 'biblio_list_index.inc.php';
        }

        // table spec
        $table_spec = 'search_biblio AS `index` LEFT JOIN item ON `index`.biblio_id=item.biblio_id';
        $str_criteria = 'index.biblio_id IS NOT NULL';
        if ($can_read AND $can_write) {
            $datagrid->setSQLColumn('index.biblio_id', 'index.title AS \'' . __('Title') . '\'', 'index.labels', 'index.image',
                'index.author',
                'index.edition AS \'' . __('Edition') . '\'',
                'index.isbn_issn AS \'' . __('ISBN/ISSN') . '\'',
                'index.biblio_id AS \'' . __('Biblio ID') . '\'',
                'IF(COUNT(item.item_id)>0, COUNT(item.item_id), \'<strong style="color: #f00;">' . __('None') . '</strong>\') AS \'' . __('Copies') . '\'',
                'index.last_update AS \'' . __('Last Update') . '\'');
            $datagrid->modifyColumnContent(1, 'callback{showTitleAuthors}');
        } else {
            $datagrid->setSQLColumn('index.title AS \'' . __('Title') . '\'', 'index.author', 'index.labels', 'index.image',
                'index.isbn_issn AS \'' . __('ISBN/ISSN') . '\'',
                'index.biblio_id AS \'' . __('Biblio ID') . '\'',
                'IF(COUNT(item.item_id)>0, COUNT(item.item_id), \'<strong style="color: #f00;">' . __('None') . '</strong>\') AS \'' . __('Copies') . '\'',
                'index.last_update AS \'' . __('Last Update') . '\'');
            $datagrid->modifyColumnContent(1, 'callback{showTitleAuthors}');
        }
        $datagrid->invisible_fields = array(1, 2, 3);
        $datagrid->setSQLorder('index.last_update DESC');

        // set group by
        $datagrid->sql_group_by = 'index.biblio_id';

    } else {
        require LIB . 'biblio_list.inc.php';

        // table spec
        $table_spec = 'biblio LEFT JOIN item ON biblio.biblio_id=item.biblio_id';
        $str_criteria = 'biblio.biblio_id IS NOT NULL';
        if ($can_read AND $can_write) {
            $datagrid->setSQLColumn('biblio.biblio_id', 'biblio.biblio_id AS bid',
                'biblio.title AS \'' . __('Title') . '\'',
                'biblio.isbn_issn AS \'' . __('ISBN/ISSN') . '\'',
                'biblio.biblio_id AS \'' . __('Biblio ID') . '\'',
                'IF(COUNT(item.item_id)>0, COUNT(item.item_id), \'<strong style="color: #f00;">' . __('None') . '</strong>\') AS \'' . __('Copies') . '\'',
                'biblio.last_update AS \'' . __('Last Update') . '\'');
            $datagrid->modifyColumnContent(2, 'callback{showTitleAuthors}');
        } else {
            $datagrid->setSQLColumn('biblio.biblio_id AS bid', 'biblio.title AS \'' . __('Title') . '\'',
                'biblio.isbn_issn AS \'' . __('ISBN/ISSN') . '\'',
                'biblio.biblio_id AS \'' . __('Biblio ID') . '\'',
                'IF(COUNT(item.item_id)>0, COUNT(item.item_id), \'<strong style="color: #f00;">' . __('None') . '</strong>\') AS \'' . __('Copies') . '\'',
                'biblio.last_update AS \'' . __('Last Update') . '\'');
            // modify column value
            $datagrid->modifyColumnContent(1, 'callback{showTitleAuthors}');
        }
        $datagrid->invisible_fields = array(0);
        $datagrid->setSQLorder('biblio.last_update DESC');

        // set group by
        $datagrid->sql_group_by = 'biblio.biblio_id';
    }

Hasil akhir