forked from GNUsocial/gnu-social
Merge commit 'br3nda/0.8.x-hashtags' into 0.8.x
This commit is contained in:
commit
e70a79d6ab
@ -97,13 +97,21 @@ class Notice extends Memcached_DataObject
|
|||||||
function saveTags()
|
function saveTags()
|
||||||
{
|
{
|
||||||
/* extract all #hastags */
|
/* extract all #hastags */
|
||||||
$count = preg_match_all('/(?:^|\s)#([A-Za-z0-9_\-\.]{1,64})/', strtolower($this->content), $match);
|
$count = preg_match_all('/(?:^|\s)#([\pL\pN_\-\.]{1,64})/', strtolower($this->content), $match);
|
||||||
if (!$count) {
|
if (!$count) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//turn each into their canonical tag
|
||||||
|
//this is needed to remove dupes before saving e.g. #hash.tag = #hashtag
|
||||||
|
$hashtags = array();
|
||||||
|
for($i=0; $i<count($match[1]); $i++) {
|
||||||
|
$hashtags[] = common_canonical_tag($match[1][$i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Add them to the database */
|
/* Add them to the database */
|
||||||
foreach(array_unique($match[1]) as $hashtag) {
|
foreach(array_unique($hashtags) as $hashtag) {
|
||||||
/* elide characters we don't want in the tag */
|
/* elide characters we don't want in the tag */
|
||||||
$this->saveTag($hashtag);
|
$this->saveTag($hashtag);
|
||||||
}
|
}
|
||||||
@ -112,8 +120,6 @@ class Notice extends Memcached_DataObject
|
|||||||
|
|
||||||
function saveTag($hashtag)
|
function saveTag($hashtag)
|
||||||
{
|
{
|
||||||
$hashtag = common_canonical_tag($hashtag);
|
|
||||||
|
|
||||||
$tag = new Notice_tag();
|
$tag = new Notice_tag();
|
||||||
$tag->notice_id = $this->id;
|
$tag->notice_id = $this->id;
|
||||||
$tag->tag = $hashtag;
|
$tag->tag = $hashtag;
|
||||||
|
@ -211,7 +211,7 @@ class Router
|
|||||||
array('tag' => '[a-zA-Z0-9]+'));
|
array('tag' => '[a-zA-Z0-9]+'));
|
||||||
$m->connect('tag/:tag',
|
$m->connect('tag/:tag',
|
||||||
array('action' => 'tag'),
|
array('action' => 'tag'),
|
||||||
array('tag' => '[a-zA-Z0-9]+'));
|
array('tag' => '[\pL\pN_\-\.]{1,64}'));
|
||||||
|
|
||||||
$m->connect('peopletag/:tag',
|
$m->connect('peopletag/:tag',
|
||||||
array('action' => 'peopletag'),
|
array('action' => 'peopletag'),
|
||||||
|
@ -404,7 +404,7 @@ function common_render_text($text)
|
|||||||
|
|
||||||
$r = preg_replace('/[\x{0}-\x{8}\x{b}-\x{c}\x{e}-\x{19}]/', '', $r);
|
$r = preg_replace('/[\x{0}-\x{8}\x{b}-\x{c}\x{e}-\x{19}]/', '', $r);
|
||||||
$r = common_replace_urls_callback($r, 'common_linkify');
|
$r = common_replace_urls_callback($r, 'common_linkify');
|
||||||
$r = preg_replace('/(^|\(|\[|\s+)#([A-Za-z0-9_\-\.]{1,64})/e', "'\\1#'.common_tag_link('\\2')", $r);
|
$r = preg_replace('/(^|\(|\[|\s+)#([\pL\pN_\-\.]{1,64})/e', "'\\1#'.common_tag_link('\\2')", $r);
|
||||||
// XXX: machine tags
|
// XXX: machine tags
|
||||||
return $r;
|
return $r;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user