X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FItem.php;h=3086a869be8dfaefb3a5df454dc2b4eabc555253;hb=75aa831b32ec55b635fdbb3631b10f3cd0248aca;hp=87ea80005eedb72bdaf6a9184664ee20d0d45a20;hpb=d6af9515ba13bf6350fd3a2714e44e0d2765a121;p=friendica.git diff --git a/src/Model/Item.php b/src/Model/Item.php index 87ea80005e..3086a869be 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -107,7 +107,7 @@ class Item extends BaseObject */ private static function indexToActivity($index) { - if (!isset(self::ACTIVITIES[$index])) { + if (is_null($index) || !array_key_exists($index, self::ACTIVITIES)) { return ''; } @@ -192,12 +192,12 @@ class Item extends BaseObject $row['target'] = ''; } // Build the tag string out of the term entries - if (array_key_exists('tag', $row)) { + if (array_key_exists('tag', $row) && empty($row['tag'])) { $row['tag'] = Term::tagTextFromItemId($row['internal-iid']); } // Build the file string out of the term entries - if (array_key_exists('file', $row)) { + if (array_key_exists('file', $row) && empty($row['file'])) { $row['file'] = Term::fileTextFromItemId($row['internal-iid']); } } @@ -711,13 +711,24 @@ class Item extends BaseObject // We cannot simply expand the condition to check for origin entries // The condition needn't to be a simple array but could be a complex condition. // And we have to execute this query before the update to ensure to fetch the same data. - $items = dba::select('item', ['id', 'origin', 'uri', 'plink', 'iaid', 'icid'], $condition); + $items = dba::select('item', ['id', 'origin', 'uri', 'plink', 'iaid', 'icid', 'tag', 'file'], $condition); $content_fields = []; foreach (array_merge(self::CONTENT_FIELDLIST, self::MIXED_CONTENT_FIELDLIST) as $field) { if (isset($fields[$field])) { $content_fields[$field] = $fields[$field]; - unset($fields[$field]); + if (in_array($field, self::CONTENT_FIELDLIST)) { + unset($fields[$field]); + } else { + $fields[$field] = null; + } + } + } + + $author_owner_fields = ['author-name', 'author-avatar', 'author-link', 'owner-name', 'owner-avatar', 'owner-link']; + foreach ($author_owner_fields as $field) { + if (isset($fields[$field])) { + $fields[$field] = null; } } @@ -752,7 +763,7 @@ class Item extends BaseObject if (!empty($item['plink'])) { $content_fields['plink'] = $item['plink']; } - if ((self::activityToIndex($item['verb']) >= 0) || !empty($item['iaid'])) { + if (!empty($item['iaid']) || (!empty($content_fields['verb']) && (self::activityToIndex($content_fields['verb']) >= 0))) { self::updateActivity($content_fields, ['uri' => $item['uri']]); if (empty($item['iaid'])) { @@ -768,6 +779,12 @@ class Item extends BaseObject dba::delete('item-content', ['id' => $item['icid']]); } } + } elseif (!empty($item['icid'])) { + dba::update('item', ['icid' => null], ['id' => $item['id']]); + + if (!dba::exists('item', ['icid' => $item['icid']])) { + dba::delete('item-content', ['id' => $item['icid']]); + } } } else { self::updateContent($content_fields, ['uri' => $item['uri']]); @@ -789,10 +806,16 @@ class Item extends BaseObject if (!empty($tags)) { Term::insertFromTagFieldByItemId($item['id'], $tags); + if (!empty($item['tag'])) { + dba::update('item', ['tag' => ''], ['id' => $item['id']]); + } } if (!empty($files)) { Term::insertFromFileFieldByItemId($item['id'], $files); + if (!empty($item['file'])) { + dba::update('item', ['file' => ''], ['id' => $item['id']]); + } } self::updateThread($item['id']);