summaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2014-10-05 21:04:59 +0100
committerGreg Roach <fisharebest@gmail.com>2014-10-05 21:04:59 +0100
commitc5fa1f3610d9462cdd328f1cf9283598f001687c (patch)
tree82599c50874586258848e26a39cabb8012311360 /library
parentb7428a5d5c2c0fe00cde3229caba1a0e741925d8 (diff)
downloadwebtrees-c5fa1f3610d9462cdd328f1cf9283598f001687c.tar.gz
webtrees-c5fa1f3610d9462cdd328f1cf9283598f001687c.tar.bz2
webtrees-c5fa1f3610d9462cdd328f1cf9283598f001687c.zip
Tree settings cannot be null
Diffstat (limited to 'library')
-rw-r--r--library/WT/Tree.php12
1 files changed, 9 insertions, 3 deletions
diff --git a/library/WT/Tree.php b/library/WT/Tree.php
index ae4e71b811..382393382a 100644
--- a/library/WT/Tree.php
+++ b/library/WT/Tree.php
@@ -90,9 +90,15 @@ class WT_Tree {
public function setPreference($setting_name, $setting_value) {
if ($setting_value !== $this->getPreference($setting_name)) {
// Update the database
- WT_DB::prepare(
- "REPLACE INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value) VALUES (?, ?, LEFT(?, 255))"
- )->execute(array($this->tree_id, $setting_name, $setting_value));
+ if ($setting_value === null) {
+ WT_DB::prepare(
+ "DELETE FROM `##gedcom_setting` WHERE gedcom_id = ? AND setting_name = ?"
+ )->execute(array($this->tree_id, $setting_name));
+ } else {
+ WT_DB::prepare(
+ "REPLACE INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value) VALUES (?, ?, LEFT(?, 255))"
+ )->execute(array($this->tree_id, $setting_name, $setting_value));
+ }
// Update our cache
$this->preferences[$setting_name] = $setting_value;
// Audit log of changes