Move "isType" to Tag.php
This commit is contained in:
parent
ac2957c4dd
commit
029a379060
3 changed files with 24 additions and 25 deletions
|
@ -906,7 +906,7 @@ function handle_tag(&$body, &$inform, &$str_tags, $profile_uid, $tag, $network =
|
||||||
$r = null;
|
$r = null;
|
||||||
|
|
||||||
//is it a person tag?
|
//is it a person tag?
|
||||||
if (Term::isType($tag, Tag::MENTION, Tag::IMPLICIT_MENTION, Tag::EXCLUSIVE_MENTION)) {
|
if (Tag::isType($tag, Tag::MENTION, Tag::IMPLICIT_MENTION, Tag::EXCLUSIVE_MENTION)) {
|
||||||
$tag_type = substr($tag, 0, 1);
|
$tag_type = substr($tag, 0, 1);
|
||||||
//is it already replaced?
|
//is it already replaced?
|
||||||
if (strpos($tag, '[url=')) {
|
if (strpos($tag, '[url=')) {
|
||||||
|
|
|
@ -471,4 +471,23 @@ class Tag
|
||||||
|
|
||||||
return $tags ?: [];
|
return $tags ?: [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the provided tag is of one of the provided term types.
|
||||||
|
*
|
||||||
|
* @param string $tag
|
||||||
|
* @param int ...$types
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function isType($tag, ...$types)
|
||||||
|
{
|
||||||
|
$tag_chars = [];
|
||||||
|
foreach ($types as $type) {
|
||||||
|
if (array_key_exists($type, self::TAG_CHARACTER)) {
|
||||||
|
$tag_chars[] = self::TAG_CHARACTER[$type];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Strings::startsWith($tag, $tag_chars);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
namespace Friendica\Model;
|
namespace Friendica\Model;
|
||||||
|
|
||||||
use Friendica\Core\Cache\Duration;
|
|
||||||
use Friendica\Core\Logger;
|
use Friendica\Core\Logger;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
|
@ -202,7 +201,7 @@ class Term
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($tags as $link => $tag) {
|
foreach ($tags as $link => $tag) {
|
||||||
if (self::isType($tag, self::HASHTAG)) {
|
if (Tag::isType($tag, self::HASHTAG)) {
|
||||||
// try to ignore #039 or #1 or anything like that
|
// try to ignore #039 or #1 or anything like that
|
||||||
if (ctype_digit(substr(trim($tag), 1))) {
|
if (ctype_digit(substr(trim($tag), 1))) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -216,8 +215,8 @@ class Term
|
||||||
$type = self::HASHTAG;
|
$type = self::HASHTAG;
|
||||||
$term = substr($tag, 1);
|
$term = substr($tag, 1);
|
||||||
$link = '';
|
$link = '';
|
||||||
} elseif (self::isType($tag, self::MENTION, self::EXCLUSIVE_MENTION, self::IMPLICIT_MENTION)) {
|
} elseif (Tag::isType($tag, self::MENTION, self::EXCLUSIVE_MENTION, self::IMPLICIT_MENTION)) {
|
||||||
if (self::isType($tag, self::MENTION, self::EXCLUSIVE_MENTION)) {
|
if (Tag::isType($tag, self::MENTION, self::EXCLUSIVE_MENTION)) {
|
||||||
$type = self::MENTION;
|
$type = self::MENTION;
|
||||||
} else {
|
} else {
|
||||||
$type = self::IMPLICIT_MENTION;
|
$type = self::IMPLICIT_MENTION;
|
||||||
|
@ -266,7 +265,7 @@ class Term
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Search for mentions
|
// Search for mentions
|
||||||
if (self::isType($tag, self::MENTION, self::EXCLUSIVE_MENTION)
|
if (Tag::isType($tag, self::MENTION, self::EXCLUSIVE_MENTION)
|
||||||
&& (
|
&& (
|
||||||
strpos($link, $profile_base_friendica) !== false
|
strpos($link, $profile_base_friendica) !== false
|
||||||
|| strpos($link, $profile_base_diaspora) !== false
|
|| strpos($link, $profile_base_diaspora) !== false
|
||||||
|
@ -351,23 +350,4 @@ class Term
|
||||||
// Clean up all tags
|
// Clean up all tags
|
||||||
DBA::delete('term', ['otype' => self::OBJECT_TYPE_POST, 'oid' => $item_id, 'type' => $type]);
|
DBA::delete('term', ['otype' => self::OBJECT_TYPE_POST, 'oid' => $item_id, 'type' => $type]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if the provided tag is of one of the provided term types.
|
|
||||||
*
|
|
||||||
* @param string $tag
|
|
||||||
* @param int ...$types
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public static function isType($tag, ...$types)
|
|
||||||
{
|
|
||||||
$tag_chars = [];
|
|
||||||
foreach ($types as $type) {
|
|
||||||
if (array_key_exists($type, self::TAG_CHARACTER)) {
|
|
||||||
$tag_chars[] = self::TAG_CHARACTER[$type];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return Strings::startsWith($tag, $tag_chars);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue