X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Ftags.php;h=a8bcae86dcc3783c13bbbc8ab6466517db431f1e;hb=df312402e46cc3cdc788c73d0c41874b6c71fcb3;hp=72cac1d6399115530df1fda13977abeb7da585e6;hpb=08696acb189bc17c4118de558269149e367b1c8f;p=friendica.git diff --git a/include/tags.php b/include/tags.php index 72cac1d639..a8bcae86dc 100644 --- a/include/tags.php +++ b/include/tags.php @@ -37,6 +37,9 @@ function create_tags_from_item($itemid) { $data = " ".$message["title"]." ".$message["body"]." ".$tags." "; + // ignore anything in a code block + $data = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$data); + $tags = array(); $pattern = "/\W\#([^\[].*?)[\s'\".,:;\?!\[\]\/]/ism"; @@ -69,10 +72,22 @@ function create_tags_from_item($itemid) { $term = $tag; } - $r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `guid`, `created`, `received`) - VALUES (%d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s')", - intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval($type), - dbesc($term), dbesc($link), dbesc($message["guid"]), dbesc($message["created"]), dbesc($message["received"])); + if ($message["uid"] == 0) { + $global = true; + + q("UPDATE `term` SET `global` = 1 WHERE `otype` = %d AND `guid` = '%s'", + intval(TERM_OBJ_POST), dbesc($message["guid"])); + } else { + $isglobal = q("SELECT `global` FROM `term` WHERE `uid` = 0 AND `otype` = %d AND `guid` = '%s'", + intval(TERM_OBJ_POST), dbesc($message["guid"])); + + $global = (count($isglobal) > 0); + } + + $r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `guid`, `created`, `received`, `global`) + VALUES (%d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', %d)", + intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval($type), dbesc($term), + dbesc($link), dbesc($message["guid"]), dbesc($message["created"]), dbesc($message["received"]), intval($global)); // Search for mentions if ((substr($tag, 0, 1) == '@') AND (strpos($link, $profile_base_friendica) OR strpos($link, $profile_base_diaspora))) { @@ -104,11 +119,33 @@ function update_items() { logger("fetched messages: ".count($messages)); while ($message = $db->qfetch()) { - q("UPDATE `term` SET `guid` = '%s', `created` = '%s', `received` = '%s' WHERE `otype` = %d AND `oid` = %d", + + if ($message["uid"] == 0) { + $global = true; + + q("UPDATE `term` SET `global` = 1 WHERE `otype` = %d AND `guid` = '%s'", + intval(TERM_OBJ_POST), dbesc($message["guid"])); + } else { + $isglobal = q("SELECT `global` FROM `term` WHERE `uid` = 0 AND `otype` = %d AND `guid` = '%s'", + intval(TERM_OBJ_POST), dbesc($message["guid"])); + + $global = (count($isglobal) > 0); + } + + q("UPDATE `term` SET `guid` = '%s', `created` = '%s', `received` = '%s', `global` = %d WHERE `otype` = %d AND `oid` = %d", dbesc($message["guid"]), dbesc($message["created"]), dbesc($message["received"]), - intval(TERM_OBJ_POST), intval($message["oid"])); + intval($global), intval(TERM_OBJ_POST), intval($message["oid"])); } $db->qclose(); + + $messages = $db->q("SELECT `guid` FROM `item` WHERE `uid` = 0", true); + + logger("fetched messages: ".count($messages)); + while ($message = $db->qfetch()) { + q("UPDATE `item` SET `global` = 1 WHERE `guid` = '%s'", dbesc($message["guid"])); + } + + $db->qclose(); } ?>