[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
14082024
/
Data
/
htdocs
/
htdocs
/
perpustakaan
/
lib
/
contents
/
[
Home
]
File: clustering.inc.php
<?php /** * Copyright (C) 2012 Arie Nugraha (dicarve@yahoo.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ // Check if search clustering enabled if (!$sysconf['enable_search_clustering']) { exit(); } // only run on "index" type index if ($sysconf['index']['type'] != 'index') { exit(); } if (!isset($_GET['q'])) { echo "No Cluster Found!"; exit(); } else { sleep(3); $cluster_limit = 30; $cluster_num_show = 5; $q = trim(strip_tags($_GET['q'])); require SIMBIO.'simbio_UTILS/simbio_tokenizecql.inc.php'; require LIB.'biblio_list_model.inc.php'; // index choice if ($sysconf['index']['type'] == 'index') { require LIB.'biblio_list_index.inc.php'; } else if ($sysconf['index']['type'] == 'sphinx' && file_exists(LIB.'sphinx/sphinxapi.php')) { require LIB.'sphinx/sphinxapi.php'; require LIB.'biblio_list_sphinx.inc.php'; $sysconf['opac_result_num'] = (int)$sysconf['opac_result_num']; } // create biblio list object try { $biblio_list = new biblio_list($dbs, $sysconf['opac_result_num']); } catch (Exception $err) { die($err->getMessage()); } $sql_criteria = $biblio_list->setSQLcriteria($q); // cluster by GMD $gmd_cluster_q = $dbs->query('SELECT TRIM(gmd) AS `Cluster Name`, COUNT(biblio_id) AS `Cluster Count` FROM search_biblio AS `index` ' .( $sql_criteria['sql_criteria']?' WHERE '.$sql_criteria['sql_criteria']:'' ).' GROUP BY `Cluster Name` LIMIT '.$cluster_limit); if ($gmd_cluster_q->num_rows > 0) { echo '<h3 class="cluster-title">'.__('GMD').'</h3>'."\n"; echo '<ul class="cluster-list">'."\n"; $i = 0; while ($cluster_data = $gmd_cluster_q->fetch_assoc()) { if (trim($cluster_data['Cluster Name']) == '') continue; $hidden = ''; if ($i > $cluster_num_show-1) { $hidden = ' cluster-hidden'; } echo '<li class="cluster-item'.$hidden.'"><a href="index.php?keywords='.urlencode('('.$q.') AND gmd="'.$cluster_data['Cluster Name'].'"').'&search=Search&fromcluster=1">'.$cluster_data['Cluster Name'].' <span class="cluster-item-count">'.$cluster_data['Cluster Count'].'</span></a></li>'."\n"; $i++; } echo '</ul>'."\n"; } // cluster by Collection type $coll_type_cluster_q = $dbs->query('SELECT TRIM(collection_types) AS `Cluster Name`, COUNT(biblio_id) AS `Cluster Count` FROM search_biblio AS `index` ' .( $sql_criteria['sql_criteria']?' WHERE '.$sql_criteria['sql_criteria']:'' ).' GROUP BY `Cluster Name` LIMIT '.$cluster_limit); if ($coll_type_cluster_q->num_rows > 0) { echo '<h3 class="cluster-title">'.__('Collection Type').'</h3>'."\n"; echo '<ul class="cluster-list">'."\n"; $i = 0; while ($cluster_data = $coll_type_cluster_q->fetch_assoc()) { if (trim($cluster_data['Cluster Name']) == '') continue; $hidden = ''; if ($i > $cluster_num_show-1) { $hidden = ' cluster-hidden'; } echo '<li class="cluster-item'.$hidden.'"><a href="index.php?keywords='.urlencode('('.$q.') AND colltype="'.$cluster_data['Cluster Name'].'"').'&search=Search&fromcluster=1">'.$cluster_data['Cluster Name'].' <span class="cluster-item-count">'.$cluster_data['Cluster Count'].'</span></a></li>'."\n"; $i++; } echo '</ul>'."\n"; } // cluster by subject $subj_cluster_q = $dbs->query('SELECT TRIM(topic) AS `Cluster Name`, COUNT(biblio_id) AS `Cluster Count` FROM search_biblio AS `index` ' .( $sql_criteria['sql_criteria']?' WHERE '.$sql_criteria['sql_criteria']:'' ).' GROUP BY `Cluster Name` LIMIT '.$cluster_limit); if ($subj_cluster_q->num_rows > 0) { echo '<h3 class="cluster-title">'.__('Subject(s)').'</h3>'."\n"; echo '<ul class="cluster-list">'."\n"; $i = 0; while ($cluster_data = $subj_cluster_q->fetch_assoc()) { if (trim($cluster_data['Cluster Name']) == '') continue; $hidden = ''; if ($i > $cluster_num_show-1) { $hidden = ' cluster-hidden'; } echo '<li class="cluster-item'.$hidden.'"><a href="index.php?keywords='.urlencode('('.$q.') AND subject="'.$cluster_data['Cluster Name'].'"').'&search=Search&fromcluster=1">'.$cluster_data['Cluster Name'].' <span class="cluster-item-count">'.$cluster_data['Cluster Count'].'</span></a></li>'."\n"; $i++; } if ($i > $cluster_num_show) { echo '<li class="cluster-item"><a href="#" class="cluster-more">'.__('More result').'...</a></li>'; } echo '</ul>'."\n"; } // cluster by author $auth_cluster_q = $dbs->query('SELECT TRIM(author) AS `Cluster Name`, COUNT(biblio_id) AS `Cluster Count` FROM search_biblio AS `index` ' .( $sql_criteria['sql_criteria']?' WHERE '.$sql_criteria['sql_criteria']:'' ).' GROUP BY `Cluster Name` LIMIT '.$cluster_limit); if ($auth_cluster_q->num_rows > 0) { echo '<h3 class="cluster-title">'.__('Author(s)').'</h3>'."\n"; echo '<ul class="cluster-list">'."\n"; $i = 0; while ($cluster_data = $auth_cluster_q->fetch_assoc()) { if (trim($cluster_data['Cluster Name']) == '') continue; $hidden = ''; if ($i > $cluster_num_show-1) { $hidden = ' cluster-hidden'; } echo '<li class="cluster-item'.$hidden.'"><a href="index.php?keywords='.urlencode('('.$q.') AND author="'.$cluster_data['Cluster Name'].'"').'&search=Search&fromcluster=1">'.$cluster_data['Cluster Name'].' <span class="cluster-item-count">'.$cluster_data['Cluster Count'].'</a></a></li>'."\n"; $i++; } if ($i > $cluster_num_show) { echo '<li class="cluster-item"><a href="#" class="cluster-more">'.__('More result').'...</a></li>'; } echo '</ul>'."\n"; } } ?> <script type="text/javascript"> $(document).ready( function() { $('.cluster-more').toggle( function(evt) { evt.preventDefault(); $(this).parents('.cluster-list').find('.cluster-hidden').show(); }, function(evt) { evt.preventDefault(); $(this).parents('.cluster-list').find('.cluster-hidden').hide(); }) }) </script> <?php exit();