/**
* Store tag/mention elements
*
- * @param integer $uriId URI id
+ * @param integer $uriId
* @param integer $type Tag type
* @param string $name Tag name
* @param string $url Contact URL (optional)
DBA::insert('post-tag', $fields, Database::INSERT_IGNORE);
- Logger::info('Stored tag/mention', ['uri-id' => $uriId, 'tag-id' => $tagid, 'contact-id' => $cid, 'name' => $name, 'type' => $type, 'callstack' => System::callstack(8)]);
+ Logger::debug('Stored tag/mention', ['uri-id' => $uriId, 'tag-id' => $tagid, 'contact-id' => $cid, 'name' => $name, 'type' => $type, 'callstack' => System::callstack(8)]);
}
/**
* Get a tag id for a given tag name and URL
*
* @param string $name Name of tag
- * @param string $url URL
+ * @param string $url
* @param int $type Type of tag
* @return int Tag id
*/
return $tid;
}
- // Also log type and tag id
+ // Also log type
$fields['type'] = $type;
- $fields['tid'] = $tid;
Logger::error('No tag id created', $fields);
return 0;
/**
* Store tag/mention elements
*
- * @param integer $uriId URI id
- * @param string $hash Hash
- * @param string $name Name
- * @param string $url URL
+ * @param integer $uriId
+ * @param string $hash
+ * @param string $name
+ * @param string $url
* @param boolean $probing Whether probing is active
* @return void
*/
/**
* Remove tag/mention
*
- * @param integer $uriId URI id
+ * @param integer $uriId
* @param integer $type Type
* @param string $name Name
* @param string $url URL
return;
}
- Logger::info('Removing tag/mention', ['uri-id' => $uriId, 'tid' => $tag['tid'], 'name' => $name, 'url' => $url, 'callstack' => System::callstack(8)]);
+ Logger::debug('Removing tag/mention', ['uri-id' => $uriId, 'tid' => $tag['tid'], 'name' => $name, 'url' => $url, 'callstack' => System::callstack(8)]);
DBA::delete('post-tag', ['uri-id' => $uriId, 'type' => $type, 'tid' => $tag['tid'], 'cid' => $tag['cid']]);
}
/**
* Remove tag/mention
*
- * @param integer $uriId URI id
- * @param string $hash Hash
- * @param string $name Name
- * @param string $url URL
+ * @param integer $uriId
+ * @param string $hash
+ * @param string $name
+ * @param string $url
* @return void
*/
public static function removeByHash(int $uriId, string $hash, string $name, string $url = '')
/**
* Get the type for the given hash
*
- * @param string $hash Hash
+ * @param string $hash
* @return integer Tag type
*/
private static function getTypeForHash(string $hash): int
/**
* Create implicit mentions for a given post
*
- * @param integer $uriId URI Id
- * @param integer $parentUriId Parent URI id
+ * @param integer $uriId
+ * @param integer $parentUriId
* @return void
*/
public static function createImplicitMentions(int $uriId, int $parentUriId)
/**
* Retrieves the terms from the provided type(s) associated with the provided item ID.
*
- * @param int $uriId URI id
+ * @param int $uriId
* @param array $type Tag type(s)
* @return array|bool Array on success, false on error
* @throws \Exception
return DBA::selectToArray('tag-view', ['type', 'name', 'url', 'tag-type'], $condition);
}
+ /**
+ * Checks if the given url is mentioned in the post
+ *
+ * @param integer $uriId
+ * @param string $url
+ * @param array $type
+ *
+ * @return boolean
+ */
+ public static function isMentioned(int $uriId, string $url, array $type = [self::MENTION, self::EXCLUSIVE_MENTION]): bool
+ {
+ $tags = self::getByURIId($uriId, $type);
+ foreach ($tags as $tag) {
+ if (Strings::compareLink($url, $tag['url'])) {
+ return true;
+ }
+ }
+ return false;
+ }
+
/**
* Return a string with all tags and mentions
*
- * @param integer $uriId URI id
+ * @param integer $uriId
* @param array $type Tag type(s)
* @return string tags and mentions
* @throws \Exception
break;
default:
- Logger:warning('Unknown tag type found', $tag);
+ Logger::warning('Unknown tag type found', $tag);
}
}
DBA::close($taglist);
{
$condition = ["`name` = ? AND (`uid` = ? OR (`uid` = ? AND NOT `global`))
AND (`network` IN (?, ?, ?, ?) OR (`uid` = ? AND `uid` != ?))",
- $search,
- 0,
- $uid,
- Protocol::ACTIVITYPUB,
- Protocol::DFRN,
- Protocol::DIASPORA,
- Protocol::OSTATUS,
- $uid,
- 0,
+ $search, 0, $uid,
+ Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS, $uid, 0,
];
return DBA::count('tag-search-view', $condition);
{
$condition = ["`name` = ? AND (`uid` = ? OR (`uid` = ? AND NOT `global`))
AND (`network` IN (?, ?, ?, ?) OR (`uid` = ? AND `uid` != ?))",
- $search,
- 0,
- $uid,
- Protocol::ACTIVITYPUB,
- Protocol::DFRN,
- Protocol::DIASPORA,
- Protocol::OSTATUS,
- $uid,
- 0,
+ $search, 0, $uid,
+ Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS, $uid, 0,
];
if (!empty($last_uriid)) {
FROM `tag-search-view`
WHERE `private` = ? AND `uid` = ? AND `uri-id` > ? $block_sql
GROUP BY `term` ORDER BY `authors` DESC, `score` DESC LIMIT ?",
- Item::PUBLIC,
- 0,
- $post['uri-id'],
+ Item::PUBLIC, 0, $post['uri-id'],
$limit
);
FROM `tag-search-view`
WHERE `private` = ? AND `wall` AND `origin` AND `uri-id` > ? $block_sql
GROUP BY `term` ORDER BY `authors` DESC, `score` DESC LIMIT ?",
- Item::PUBLIC,
- $post['uri-id'],
+ Item::PUBLIC, $post['uri-id'],
$limit
);
/**
* Fetch user who subscribed to the tags of the given item
*
- * @param integer $uriId URI Id
+ * @param integer $uriId
* @return array User list
*/
public static function getUIDListByURIId(int $uriId): array