Add folders containing matching files to the contents list when searching

This commit is contained in:
Junior 2024-11-12 09:36:38 -05:00
parent 8e8df39ec5
commit 2e85705a20

View File

@ -30,6 +30,7 @@ if ( $row = $sth->fetch() ) {
}
$data['contents'] = array();
$foldermatch = array();
if ( !$searching ) {
$contents = glob(BOOKDIR . $_SESSION['bookdir'] . "/*");
@ -72,6 +73,7 @@ if ( !$searching ) {
$item['folder'] = true;
$item['fullpath'] = $row['path'];
$item['displayname'] = htmlspecialchars(basename($row['path']));
if ( !in_array($row['path'], $foldermatch) ) $foldermatch[] = $row['path'];
$data['contents'][] = $item;
}
$query = "SELECT id, path, filename FROM books WHERE LOWER(filename) LIKE :searchfor ORDER BY path, filename";
@ -80,6 +82,14 @@ if ( !$searching ) {
$sth->execute();
while ( $row = $sth->fetch(PDO::FETCH_ASSOC) ) {
if ( $row['path'] == "/" ) continue;
if ( !in_array($row['path'], $foldermatch) ) {
$foldermatch[] = $row['path'];
$item = array();
$item['folder'] = true;
$item['fullpath'] = $row['path'];
$item['displayname'] = htmlspecialchars(basename($row['path']));
$data['contents'][] = $item;
}
$item = array();
$item['folder'] = false;
$item['fullpath'] = $row['path'] . "/" . $row['filename'];