aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Lib/NativeWiki.php
diff options
context:
space:
mode:
authorMax Kostikov <max@kostikov.co>2021-04-22 17:53:47 +0000
committerMario <mario@mariovavti.com>2021-04-22 17:53:47 +0000
commit8394d4857c3f7a4fcfdd983348fa7bf81ae76347 (patch)
tree2881be916b5cb8460c0d2c579c1ae1c4eb1eaed9 /Zotlabs/Lib/NativeWiki.php
parent597f24ca492ee27cf6312759292a4ede24f89d96 (diff)
downloadvolse-hubzilla-8394d4857c3f7a4fcfdd983348fa7bf81ae76347.tar.gz
volse-hubzilla-8394d4857c3f7a4fcfdd983348fa7bf81ae76347.tar.bz2
volse-hubzilla-8394d4857c3f7a4fcfdd983348fa7bf81ae76347.zip
Fix clones sync when wiki or single wiki page deletion
Diffstat (limited to 'Zotlabs/Lib/NativeWiki.php')
-rw-r--r--Zotlabs/Lib/NativeWiki.php35
1 files changed, 23 insertions, 12 deletions
diff --git a/Zotlabs/Lib/NativeWiki.php b/Zotlabs/Lib/NativeWiki.php
index c3032d02c..9e6a3ac85 100644
--- a/Zotlabs/Lib/NativeWiki.php
+++ b/Zotlabs/Lib/NativeWiki.php
@@ -101,6 +101,7 @@ class NativeWiki {
}
}
+
public static function update_wiki($channel_id, $observer_hash, $arr, $acl) {
$w = self::get_wiki($channel_id, $observer_hash, $arr['resource_id']);
@@ -156,8 +157,8 @@ class NativeWiki {
}
}
- public static function sync_a_wiki_item($uid,$id,$resource_id) {
+ public static function sync_a_wiki_item($uid,$id,$resource_id) {
$r = q("SELECT * from item WHERE uid = %d AND ( id = %d OR ( resource_type = '%s' and resource_id = '%s' )) ",
intval($uid),
@@ -165,8 +166,8 @@ class NativeWiki {
dbesc(NWIKI_ITEM_RESOURCE_TYPE),
dbesc($resource_id)
);
-
if($r) {
+
$q = q("select * from item where resource_type = 'nwikipage' and resource_id = '%s'",
dbesc($r[0]['resource_id'])
);
@@ -185,20 +186,27 @@ class NativeWiki {
}
}
+
public static function delete_wiki($channel_id,$observer_hash,$resource_id) {
$w = self::get_wiki($channel_id,$observer_hash,$resource_id);
- $item = $w['wiki'];
- if(! $item) {
- return array('item' => null, 'success' => false);
- }
- else {
- $drop = drop_item($item['id'], false, DROPITEM_NORMAL);
+ if(! $w['wiki']) {
+ return [ 'success' => false ];
}
+ else {
+
+ $r = q("SELECT id FROM item WHERE uid = %s AND resource_id = '%s'",
+ intval($channel_id),
+ dbesc($resource_id)
+ );
+
+ $ids = array_column($r, 'id');
+ drop_items($ids, true, DROPITEM_PHASE1);
- info( t('Wiki files deleted successfully'));
+ info(t('Wiki files deleted successfully'));
- return array('item' => $item, 'item_id' => $item['id'], 'success' => (($drop === 1) ? true : false));
+ return [ 'success' => true ];
+ }
}
@@ -207,13 +215,13 @@ class NativeWiki {
$sql_extra = item_permissions_sql($channel_id,$observer_hash);
$item = q("SELECT * FROM item WHERE uid = %d AND resource_type = '%s' AND resource_id = '%s' AND item_deleted = 0
- $sql_extra limit 1",
+ $sql_extra ORDER BY id LIMIT 1",
intval($channel_id),
dbesc(NWIKI_ITEM_RESOURCE_TYPE),
dbesc($resource_id)
);
if(! $item) {
- return array('wiki' => null);
+ return [ 'wiki' => null ];
}
else {
@@ -259,6 +267,7 @@ class NativeWiki {
public static function get_permissions($resource_id, $owner_id, $observer_hash) {
+
// TODO: For now, only the owner can edit
$sql_extra = item_permissions_sql($owner_id, $observer_hash);
@@ -283,6 +292,7 @@ class NativeWiki {
}
}
+
public static function name_encode ($string) {
$string = html_entity_decode($string);
@@ -298,6 +308,7 @@ class NativeWiki {
return $ret;
}
+
public static function name_decode ($string) {
$encoding = mb_internal_encoding();