https://www.bananas-playground.net/projekt/bibliotheca/
## Usage
+Self hosted collection management for movies, music or games.
+Install it on your own webserver (see requirements) and store the information
+about your collected stuff.
+Accessible and usable with a browser. Runs also off a Rapsberry Pi.
+Tag and category support. Fulltext search an individual fields per collection.
## Technical information
This is build and tested on a linux based OS. Windows support not yet, but it could work.
-1.0 - Castle - (tba)
+1.0 - Castle - (20210106)
* First usable version
+ * Using as a collection management software will work
+ * Rights management needs tweeking, so use the admin account for a start
+ * Documentation covers the basics
+ * Use it and give feedback.
+ * Also, make backups.
*/
# set to true if you need debug messages in error log file
-define('DEBUG',true);
+define('DEBUG',false);
# set to ture if you need query log messages in error log file.
-define('QUERY_DEBUG',true);
+define('QUERY_DEBUG',false);
require_once './config/path.php';
require_once './config/system.php';
*/
# set to true if you need debug messages in error log file
-define('DEBUG',true);
+define('DEBUG',false);
# set to ture if you need query log messages in error log file.
-define('QUERY_DEBUG',true);
+define('QUERY_DEBUG',false);
require_once './config/path.php';
require_once './config/system.php';
* 'colName' => 'column name to search in',
* 'colValue' => 'Value to search for',
* 'fieldData' => field data from Trite->getCollectionFields()
+ * 'exactTagMatch' => true to make a binary compare. false for match against search
* )
*
* @param array $searchData
$queryJoin = " LEFT JOIN `".DB_PREFIX."_collection_entry2lookup_".$this->_DB->real_escape_string($this->_collectionId)."` AS e2l ON e2l.fk_entry=t.id";
$queryWhere .= " AND e2l.fk_field = '".$this->_DB->real_escape_string($sd['fieldData']['id'])."'";
- $queryWhere .= " AND MATCH (e2l.value) AGAINST ('".$this->_DB->real_escape_string($sd['colValue'])."' IN BOOLEAN MODE)";
+ if(isset($sd['exactTagMatch']) && $sd['exactTagMatch'] === true) {
+ $queryWhere .= " AND e2l.value = BINARY '".$this->_DB->real_escape_string($sd['colValue'])."'";
+ $_isFulltext = false;
+ }
+ else {
+ $queryWhere .= " AND MATCH (e2l.value) AGAINST ('".$this->_DB->real_escape_string($sd['colValue'])."' IN BOOLEAN MODE)";
+ }
}
elseif ($sd['fieldData']['searchtype'] == "entrySingleNum" && strstr($sd['colValue'],'<')) {
$_s = str_replace('<','',$sd['colValue']);
$_sdata[0] = array(
'colName' => $_fd[$_fid]['identifier'],
'colValue' => $_fv,
- 'fieldData' => $_fd[$_fid]
+ 'fieldData' => $_fd[$_fid],
+ 'exactTagMatch' => true
);
$_search = $_fv;
$TemplateData['pagination']['currentGetParameters']['fid'] = $_fid;