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'); ?>
<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'); ?>
<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
