Browse Source

Fix speed issues with the network page

pull/8856/head
Michael Vogel 12 months ago
parent
commit
af6f6d4957
3 changed files with 22 additions and 10 deletions
  1. +18
    -5
      src/Content/Item.php
  2. +2
    -4
      src/Model/Item.php
  3. +2
    -1
      static/dbstructure.config.php

+ 18
- 5
src/Content/Item.php View File

@ -168,10 +168,17 @@ class Item
$contact = DBA::selectFirst('contact', $fields, ['id' => $tagcid, 'uid' => $profile_uid]);
}
// select someone by nick or attag in the current network
// select someone by nick in the current network
if (!DBA::isResult($contact) && ($network != '')) {
$condition = ["(`nick` = ? OR `attag` = ?) AND `network` = ? AND `uid` = ?",
$name, $name, $network, $profile_uid];
$condition = ["`nick` = ? AND `network` = ? AND `uid` = ?",
$name, $network, $profile_uid];
$contact = DBA::selectFirst('contact', $fields, $condition);
}
// select someone by attag in the current network
if (!DBA::isResult($contact) && ($network != '')) {
$condition = ["`attag` = ? AND `network` = ? AND `uid` = ?",
$name, $network, $profile_uid];
$contact = DBA::selectFirst('contact', $fields, $condition);
}
@ -181,9 +188,15 @@ class Item
$contact = DBA::selectFirst('contact', $fields, $condition);
}
// select someone by nick or attag in any network
// select someone by nick in any network
if (!DBA::isResult($contact)) {
$condition = ["`nick` = ? AND `uid` = ?", $name, $profile_uid];
$contact = DBA::selectFirst('contact', $fields, $condition);
}
// select someone by attag in any network
if (!DBA::isResult($contact)) {
$condition = ["(`nick` = ? OR `attag` = ?) AND `uid` = ?", $name, $name, $profile_uid];
$condition = ["`attag` = ? AND `uid` = ?", $name, $profile_uid];
$contact = DBA::selectFirst('contact', $fields, $condition);
}


+ 2
- 4
src/Model/Item.php View File

@ -1838,7 +1838,7 @@ class Item
if (!Tag::existsForPost($item['uri-id'])) {
Tag::storeFromBody($item['uri-id'], $body);
}
$ret = DBA::insert('item', $item);
// When the item was successfully stored we fetch the ID of the item.
@ -2022,9 +2022,7 @@ class Item
}
if (empty($fields)) {
// when there are no fields at all, just use the condition
// This is to ensure that we always store content.
$fields = $condition;
return;
}
DBA::update('item-content', $fields, $condition, true);


+ 2
- 1
static/dbstructure.config.php View File

@ -54,7 +54,7 @@
use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) {
define('DB_UPDATE_VERSION', 1354);
define('DB_UPDATE_VERSION', 1355);
}
return [
@ -195,6 +195,7 @@ return [
"addr_uid" => ["addr(32)", "uid"],
"nurl_uid" => ["nurl(32)", "uid"],
"nick_uid" => ["nick(32)", "uid"],
"attag_uid" => ["attag(32)", "uid"],
"dfrn-id" => ["dfrn-id(64)"],
"issued-id" => ["issued-id(64)"],
"gsid" => ["gsid"]


Loading…
Cancel
Save