aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/hubloc.php11
-rw-r--r--include/text.php39
2 files changed, 49 insertions, 1 deletions
diff --git a/include/hubloc.php b/include/hubloc.php
index 2cce7a725..6401d1f0d 100644
--- a/include/hubloc.php
+++ b/include/hubloc.php
@@ -16,6 +16,8 @@ use Zotlabs\Daemon\Master;
*/
function hubloc_store_lowlevel($arr) {
+ $update = ((array_key_exists('hubloc_id',$arr) && $arr['hubloc_id']) ? 'hubloc_id = ' . intval($arr['hubloc_id']) : false);
+
$store = [
'hubloc_guid' => ((array_key_exists('hubloc_guid',$arr)) ? $arr['hubloc_guid'] : ''),
'hubloc_guid_sig' => ((array_key_exists('hubloc_guid_sig',$arr)) ? $arr['hubloc_guid_sig'] : ''),
@@ -40,7 +42,7 @@ function hubloc_store_lowlevel($arr) {
'hubloc_deleted' => ((array_key_exists('hubloc_deleted',$arr)) ? $arr['hubloc_deleted'] : 0)
];
- return create_table_from_array('hubloc', $store);
+ return (($update) ? update_table_from_array('hubloc', $store, $update) : create_table_from_array('hubloc', $store));
}
function site_store_lowlevel($arr) {
@@ -283,6 +285,13 @@ function hubloc_change_primary($hubloc) {
return true;
}
+function hubloc_delete($hubloc) {
+ if (is_array($hubloc) && array_key_exists('hubloc_id', $hubloc)) {
+ q("UPDATE hubloc SET hubloc_deleted = 1 WHERE hubloc_id = %d",
+ intval($hubloc['hubloc_id'])
+ );
+ }
+}
/**
* @brief Mark a hubloc as down.
diff --git a/include/text.php b/include/text.php
index b76175a06..3b6039c31 100644
--- a/include/text.php
+++ b/include/text.php
@@ -3592,6 +3592,45 @@ function create_table_from_array($table, $arr, $binary_fields = []) {
return $r;
}
+
+function update_table_from_array($table, $arr, $where, $binary_fields = []) {
+
+ if (! ($arr && $table)) {
+ return false;
+ }
+
+ $columns = db_columns($table);
+
+ $clean = [];
+ foreach ($arr as $k => $v) {
+ if (! in_array($k, $columns)) {
+ continue;
+ }
+
+ $matches = false;
+ if (preg_match('/([^a-zA-Z0-9\-\_\.])/', $k, $matches)) {
+ return false;
+ }
+ if (in_array($k, $binary_fields)) {
+ $clean[$k] = dbescbin($v);
+ } else {
+ $clean[$k] = dbesc($v);
+ }
+ }
+
+ $sql = "UPDATE " . TQUOT . $table . TQUOT . " SET ";
+
+ foreach ($clean as $k => $v) {
+ $sql .= TQUOT . $k . TQUOT . ' = "' . $v . '",';
+ }
+
+ $sql = rtrim($sql,',');
+
+ $r = dbq($sql . " WHERE " . $where);
+
+ return $r;
+}
+
function share_shield($m) {
return str_replace($m[1],'!=+=+=!' . base64url_encode($m[1]) . '=+!=+!=',$m[0]);
}