Skip to content
This repository was archived by the owner on Aug 27, 2022. It is now read-only.

Commit 57d46fe

Browse files
committed
general: make database optional, read images from images folder if disabled
Change-Id: I7dea6d8ea35eff98f7919aa0010db7432b43fc65
1 parent cb07a00 commit 57d46fe

File tree

11 files changed

+94
-11
lines changed

11 files changed

+94
-11
lines changed

api/applyEffects.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,10 @@
213213
imagedestroy($imageResource);
214214

215215
// insert into database
216-
if ($_POST['style'] !== 'chroma' || ($_POST['style'] === 'chroma' && $config['live_keying']['show_all'] === true)) {
217-
appendImageToDB($file);
216+
if ($config['database']['enabled']) {
217+
if ($_POST['style'] !== 'chroma' || ($_POST['style'] === 'chroma' && $config['live_keying']['show_all'] === true)) {
218+
appendImageToDB($file);
219+
}
218220
}
219221

220222
// Change permissions

api/chromakeying/save.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,18 @@
66
require_once '../../lib/resize.php';
77

88
if ($config['picture']['naming'] === 'numbered') {
9-
$images = getImagesFromDB();
9+
if ($config['database']['enabled']) {
10+
$images = getImagesFromDB();
11+
} else {
12+
$directory = $config['foldersAbs']['images'];
13+
$dh = opendir($directory);
14+
15+
while (false !== ($filename = readdir($dh))) {
16+
$files[] = $filename;
17+
}
18+
closedir($dh);
19+
$images = preg_grep('/\.(jpg|jpeg|JPG|JPEG)$/i', $files);
20+
}
1021
$img_number = count($images);
1122
$files = str_pad(++$img_number, 4, '0', STR_PAD_LEFT);
1223
$name = $files . '.jpg';
@@ -44,7 +55,9 @@
4455
imagedestroy($imageResource);
4556

4657
// insert into database
47-
appendImageToDB($file);
58+
if ($config['database']['enabled']) {
59+
appendImageToDB($file);
60+
}
4861

4962
// Change permissions
5063
chmod($filename_photo, octdec($picture_permissions));

api/deletePhoto.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@
5959
}
6060
}
6161

62-
deleteImageFromDB($file);
62+
if ($config['database']['enabled']) {
63+
deleteImageFromDB($file);
64+
}
6365

6466
echo json_encode([
6567
'success' => true,

api/takePic.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,18 @@ function takePicture($filename) {
5757
if (!empty($_POST['file']) && preg_match('/^[a-z0-9_]+\.jpg$/', $_POST['file'])) {
5858
$name = $_POST['file'];
5959
} elseif ($config['picture']['naming'] === 'numbered') {
60-
$images = getImagesFromDB();
60+
if ($config['database']['enabled']) {
61+
$images = getImagesFromDB();
62+
} else {
63+
$directory = $config['foldersAbs']['images'];
64+
$dh = opendir($directory);
65+
66+
while (false !== ($filename = readdir($dh))) {
67+
$files[] = $filename;
68+
}
69+
closedir($dh);
70+
$images = preg_grep('/\.(jpg|jpeg|JPG|JPEG)$/i', $files);
71+
}
6172
$img_number = count($images);
6273
$files = str_pad(++$img_number, 4, '0', STR_PAD_LEFT);
6374
$name = $files . '.jpg';

config/config.inc.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
// control time in milliseconds until Photobooth reloads automatically
2828
$config['picture']['time_to_live'] = '90000';
2929
$config['picture']['preview_before_processing'] = true;
30+
$config['database']['enabled'] = true;
3031
$config['database']['file'] = 'db';
3132

3233

gallery.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,19 @@
1212
exit(json_encode($resp));
1313
}
1414

15-
$images = getImagesFromDB();
15+
if ($config['database']['enabled']) {
16+
$images = getImagesFromDB();
17+
} else {
18+
$directory = $config['foldersAbs']['images'];
19+
$dh = opendir($directory);
20+
21+
while (false !== ($filename = readdir($dh))) {
22+
$files[] = $filename;
23+
}
24+
closedir($dh);
25+
$images = preg_grep('/\.(jpg|jpeg|JPG|JPEG)$/i', $files);
26+
}
27+
1628
$imagelist = ($config['gallery']['newest_first'] === true) ? array_reverse($images) : $images;
1729
?>
1830
<!DOCTYPE html>
@@ -101,4 +113,4 @@
101113
<script src="node_modules/@andreasremdt/simple-translator/dist/umd/translator.min.js"></script>
102114
<script type="text/javascript" src="resources/js/i18n.js"></script>
103115
</body>
104-
</html>
116+
</html>

index.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,19 @@
55
require_once('lib/db.php');
66
require_once('lib/filter.php');
77

8-
$images = getImagesFromDB();
8+
if ($config['database']['enabled']) {
9+
$images = getImagesFromDB();
10+
} else {
11+
$directory = $config['foldersAbs']['images'];
12+
$dh = opendir($directory);
13+
14+
while (false !== ($filename = readdir($dh))) {
15+
$files[] = $filename;
16+
}
17+
closedir($dh);
18+
$images = preg_grep('/\.(jpg|jpeg|JPG|JPEG)$/i', $files);
19+
}
20+
921
$imagelist = ($config['gallery']['newest_first'] === true) ? array_reverse($images) : $images;
1022

1123
if ($config['ui']['style'] === 'modern') {

lib/configsetup.inc.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,12 @@
208208
'name' => 'picture[preview_before_processing]',
209209
'value' => $config['picture']['preview_before_processing'],
210210
],
211+
'database_enabled' => [
212+
'view' => 'expert',
213+
'type' => 'checkbox',
214+
'name' => 'database[enabled]',
215+
'value' => $config['database']['enabled'],
216+
],
211217
'database_file' => [
212218
'view' => 'expert',
213219
'type' => 'input',

livechroma.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,18 @@
44
require_once('lib/config.php');
55
require_once('lib/db.php');
66

7-
$images = getImagesFromDB();
7+
if ($config['database']['enabled']) {
8+
$images = getImagesFromDB();
9+
} else {
10+
$directory = $config['foldersAbs']['images'];
11+
$dh = opendir($directory);
12+
13+
while (false !== ($filename = readdir($dh))) {
14+
$files[] = $filename;
15+
}
16+
closedir($dh);
17+
$images = preg_grep('/\.(jpg|jpeg|JPG|JPEG)$/i', $files);
18+
}
819
$imagelist = ($config['gallery']['newest_first'] === true) ? array_reverse($images) : $images;
920

1021
if ($config['ui']['style'] === 'modern') {

resources/lang/en.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
"gallery_no_image": "The gallery is still empty. Take some pictures!",
9797
"general": "General",
9898
"general:adminpanel_view": "Admin Options",
99+
"general:database_enabled": "Use database for images",
99100
"general:database_file": "Database file name",
100101
"general:dev_enabled": "Dev-Mode",
101102
"general:dev_error_messages": "Show error messages",
@@ -212,6 +213,7 @@
212213
"manual:gallery:pswp_tapToToggleControls": "If enabled, the visibility of controls / buttons is switched by tapping.",
213214
"manual:gallery:pswp_zoomEl": "If enabled, PhotoSwipe zoom button is visible inside gallery.",
214215
"manual:general:adminpanel_view": "Allows to set different views in the admin panel with more (Expert View) or less (Basic View) options accessible",
216+
"manual:general:database_enabled": "If enabled, images will be added to a database which is used by the gallery. If disabled, gallery will read the images folder for images - this could reduce the performance.",
215217
"manual:general:database_file": "Name of the database file.",
216218
"manual:general:dev_enabled": "Enables development mode. Sample pictures will be used instead taking a picture.",
217219
"manual:general:dev_error_messages": "If enabled real error messages are shown on error.",

0 commit comments

Comments
 (0)