Separate $parent_item and $toplevel_item in mod/item
This commit is contained in:
parent
355cd401ae
commit
eebcf1ae86
27
mod/item.php
27
mod/item.php
|
@ -100,29 +100,32 @@ function item_post(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is this a reply to something?
|
// Is this a reply to something?
|
||||||
$toplevel_item_id = intval($_REQUEST['parent'] ?? 0);
|
$parent_item_id = intval($_REQUEST['parent'] ?? 0);
|
||||||
$thr_parent_uri = trim($_REQUEST['parent_uri'] ?? '');
|
$thr_parent_uri = trim($_REQUEST['parent_uri'] ?? '');
|
||||||
|
|
||||||
|
$parent_item = null;
|
||||||
$toplevel_item = null;
|
$toplevel_item = null;
|
||||||
$parent_user = null;
|
$toplevel_item_id = null;
|
||||||
|
$toplevel_user_id = null;
|
||||||
|
|
||||||
$objecttype = null;
|
$objecttype = null;
|
||||||
$profile_uid = ($_REQUEST['profile_uid'] ?? 0) ?: local_user();
|
$profile_uid = ($_REQUEST['profile_uid'] ?? 0) ?: local_user();
|
||||||
$posttype = ($_REQUEST['post_type'] ?? '') ?: Item::PT_ARTICLE;
|
$posttype = ($_REQUEST['post_type'] ?? '') ?: Item::PT_ARTICLE;
|
||||||
|
|
||||||
if ($toplevel_item_id || $thr_parent_uri) {
|
if ($parent_item_id || $thr_parent_uri) {
|
||||||
if ($toplevel_item_id) {
|
if ($parent_item_id) {
|
||||||
$toplevel_item = Item::selectFirst([], ['id' => $toplevel_item_id]);
|
$parent_item = Item::selectFirst([], ['id' => $parent_item_id]);
|
||||||
} elseif ($thr_parent_uri) {
|
} elseif ($thr_parent_uri) {
|
||||||
$toplevel_item = Item::selectFirst([], ['uri' => $thr_parent_uri, 'uid' => $profile_uid]);
|
$parent_item = Item::selectFirst([], ['uri' => $thr_parent_uri, 'uid' => $profile_uid]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if this isn't the top-level parent of the conversation, find it
|
// if this isn't the top-level parent of the conversation, find it
|
||||||
if (DBA::isResult($toplevel_item)) {
|
if (DBA::isResult($parent_item)) {
|
||||||
// The URI and the contact is taken from the direct parent which needn't to be the top parent
|
// The URI and the contact is taken from the direct parent which needn't to be the top parent
|
||||||
$thr_parent_uri = $toplevel_item['uri'];
|
$thr_parent_uri = $parent_item['uri'];
|
||||||
|
$toplevel_item = $parent_item;
|
||||||
|
|
||||||
if ($toplevel_item['gravity'] != GRAVITY_PARENT) {
|
if ($parent_item['gravity'] != GRAVITY_PARENT) {
|
||||||
$toplevel_item = Item::selectFirst([], ['id' => $toplevel_item['parent']]);
|
$toplevel_item = Item::selectFirst([], ['id' => $toplevel_item['parent']]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,7 +149,7 @@ function item_post(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$toplevel_item_id = $toplevel_item['id'];
|
$toplevel_item_id = $toplevel_item['id'];
|
||||||
$parent_user = $toplevel_item['uid'];
|
$toplevel_user_id = $toplevel_item['uid'];
|
||||||
|
|
||||||
$objecttype = Activity\ObjectType::COMMENT;
|
$objecttype = Activity\ObjectType::COMMENT;
|
||||||
}
|
}
|
||||||
|
@ -168,8 +171,8 @@ function item_post(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure that the user id in a thread always stay the same
|
// Ensure that the user id in a thread always stay the same
|
||||||
if (!is_null($parent_user) && in_array($parent_user, [local_user(), 0])) {
|
if (!is_null($toplevel_user_id) && in_array($toplevel_user_id, [local_user(), 0])) {
|
||||||
$profile_uid = $parent_user;
|
$profile_uid = $toplevel_user_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for multiple posts with the same message id (when the post was created via API)
|
// Check for multiple posts with the same message id (when the post was created via API)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user