use Friendica\Util\XML;
use Friendica\Worker\Delivery;
use Text_LanguageDetect;
+use Friendica\Repository\PermissionSet as RepPermissionSet;
class Item
{
}
}
+ if ($row['internal-psid'] == RepPermissionSet::PUBLIC) {
+ if (array_key_exists('allow_cid', $row)) {
+ $row['allow_cid'] = '';
+ }
+ if (array_key_exists('allow_gid', $row)) {
+ $row['allow_gid'] = '';
+ }
+ if (array_key_exists('deny_cid', $row)) {
+ $row['deny_cid'] = '';
+ }
+ if (array_key_exists('deny_gid', $row)) {
+ $row['deny_gid'] = '';
+ }
+ }
+
if (array_key_exists('signed_text', $row) && array_key_exists('interaction', $row) && !is_null($row['interaction'])) {
$row['signed_text'] = $row['interaction'];
}
unset($row['internal-activity']);
unset($row['internal-network']);
unset($row['internal-iid']);
+ unset($row['internal-psid']);
unset($row['internal-iaid']);
- unset($row['internal-icid']);
unset($row['internal-user-ignored']);
unset($row['interaction']);
'private', 'pubmail', 'moderated', 'visible', 'starred', 'bookmark',
'unseen', 'deleted', 'origin', 'forum_mode', 'mention', 'global',
'id' => 'item_id', 'network', 'icid', 'iaid', 'id' => 'internal-iid',
- 'network' => 'internal-network', 'icid' => 'internal-icid',
- 'iaid' => 'internal-iaid'];
+ 'network' => 'internal-network', 'iaid' => 'internal-iaid', 'psid' => 'internal-psid'];
if ($usermode) {
$fields['user-item'] = ['pinned', 'notification-type', 'ignored' => 'internal-user-ignored'];
*
* @return string The field list
*/
- private static function constructSelectFields($fields, $selected)
+ private static function constructSelectFields(array $fields, array $selected)
{
- if (!empty($selected)) {
- $selected[] = 'internal-iid';
- $selected[] = 'internal-iaid';
- $selected[] = 'internal-icid';
- $selected[] = 'internal-network';
- }
+ $selected = array_merge($selected, ['internal-iid', 'internal-psid', 'internal-iaid', 'internal-network']);
if (in_array('verb', $selected)) {
$selected[] = 'internal-activity';
}
$item['guid'] = self::guid($item, $notify);
- $item['uri'] = Strings::escapeTags(trim(($item['uri'] ?? '') ?: self::newURI($item['uid'], $item['guid'])));
+ $item['uri'] = substr(Strings::escapeTags(trim(($item['uri'] ?? '') ?: self::newURI($item['uid'], $item['guid']))), 0, 255);
// Store URI data
$item['uri-id'] = ItemURI::insert(['uri' => $item['uri'], 'guid' => $item['guid']]);
$item['edited'] = (isset($item['edited']) ? DateTimeFormat::utc($item['edited']) : $item['created']);
$item['changed'] = (isset($item['changed']) ? DateTimeFormat::utc($item['changed']) : $item['created']);
$item['commented'] = (isset($item['commented']) ? DateTimeFormat::utc($item['commented']) : $item['created']);
- $item['title'] = trim($item['title'] ?? '');
+ $item['title'] = substr(trim($item['title'] ?? ''), 0, 255);
$item['location'] = trim($item['location'] ?? '');
$item['coord'] = trim($item['coord'] ?? '');
$item['visible'] = (isset($item['visible']) ? intval($item['visible']) : 1);
$item['object'] = trim($item['object'] ?? '');
$item['target-type'] = trim($item['target-type'] ?? '');
$item['target'] = trim($item['target'] ?? '');
- $item['plink'] = trim($item['plink'] ?? '');
+ $item['plink'] = substr(trim($item['plink'] ?? ''), 0, 255);
$item['allow_cid'] = trim($item['allow_cid'] ?? '');
$item['allow_gid'] = trim($item['allow_gid'] ?? '');
$item['deny_cid'] = trim($item['deny_cid'] ?? '');
// Update the contact relations
if ($item['author-id'] != $parent['author-id']) {
- $fields = ['cid' => $parent['author-id'], 'relation-cid' => $item['author-id']];
- if (!DBA::exists('contact-relation', $fields)) {
- DBA::insert('contact-relation', $fields, true);
- }
+ DBA::update('contact-relation', ['last-interaction' => $item['created']], ['cid' => $parent['author-id'], 'relation-cid' => $item['author-id']], true);
}
} else {
/*