Mentions are now displayed much faster. Attention: The related database update can last more than one minute.
bbcode: The generated HTML is now cleaned up every time (using the DOM) since it happened that bad html broke the network page.
This commit is contained in:
parent
c26cf428a6
commit
8cef0fa80d
2
boot.php
2
boot.php
|
@ -14,7 +14,7 @@ require_once('include/features.php');
|
||||||
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||||
define ( 'FRIENDICA_VERSION', '3.1.1572' );
|
define ( 'FRIENDICA_VERSION', '3.1.1572' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1158 );
|
define ( 'DB_UPDATE_VERSION', 1159 );
|
||||||
|
|
||||||
define ( 'EOL', "<br />\r\n" );
|
define ( 'EOL', "<br />\r\n" );
|
||||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||||
|
|
|
@ -546,6 +546,7 @@ CREATE TABLE IF NOT EXISTS `item` (
|
||||||
`deleted` tinyint(1) NOT NULL DEFAULT '0',
|
`deleted` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
`origin` tinyint(1) NOT NULL DEFAULT '0',
|
`origin` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
`forum_mode` tinyint(1) NOT NULL DEFAULT '0',
|
`forum_mode` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
`mention` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
`last-child` tinyint(1) unsigned NOT NULL DEFAULT '1',
|
`last-child` tinyint(1) unsigned NOT NULL DEFAULT '1',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `uri` (`uri`),
|
KEY `uri` (`uri`),
|
||||||
|
@ -575,6 +576,7 @@ CREATE TABLE IF NOT EXISTS `item` (
|
||||||
KEY `uid_commented` (`uid`, `commented`),
|
KEY `uid_commented` (`uid`, `commented`),
|
||||||
KEY `uid_created` (`uid`, `created`),
|
KEY `uid_created` (`uid`, `created`),
|
||||||
KEY `uid_unseen` (`uid`, `unseen`),
|
KEY `uid_unseen` (`uid`, `unseen`),
|
||||||
|
KEY `mention` (`mention`),
|
||||||
FULLTEXT KEY `title` (`title`),
|
FULLTEXT KEY `title` (`title`),
|
||||||
FULLTEXT KEY `body` (`body`),
|
FULLTEXT KEY `body` (`body`),
|
||||||
FULLTEXT KEY `allow_cid` (`allow_cid`),
|
FULLTEXT KEY `allow_cid` (`allow_cid`),
|
||||||
|
|
|
@ -1040,7 +1040,7 @@
|
||||||
$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
|
$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
|
||||||
$diasp_url = str_replace('/profile/','/u/',$myurl);
|
$diasp_url = str_replace('/profile/','/u/',$myurl);
|
||||||
|
|
||||||
if (get_config('system','use_fulltext_engine'))
|
/*if (get_config('system','use_fulltext_engine'))
|
||||||
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
|
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
|
||||||
dbesc(protect_sprintf($myurl)),
|
dbesc(protect_sprintf($myurl)),
|
||||||
dbesc(protect_sprintf($myurl)),
|
dbesc(protect_sprintf($myurl)),
|
||||||
|
@ -1051,6 +1051,11 @@
|
||||||
dbesc(protect_sprintf('%' . $myurl)),
|
dbesc(protect_sprintf('%' . $myurl)),
|
||||||
dbesc(protect_sprintf('%' . $myurl . ']%')),
|
dbesc(protect_sprintf('%' . $myurl . ']%')),
|
||||||
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
|
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
|
||||||
|
);*/
|
||||||
|
|
||||||
|
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where `author-link` IN ('https://%s', 'http://%s') OR `mention`)",
|
||||||
|
dbesc(protect_sprintf($myurl)),
|
||||||
|
dbesc(protect_sprintf($myurl))
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($max_id > 0)
|
if ($max_id > 0)
|
||||||
|
|
|
@ -603,7 +603,8 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
|
||||||
|
|
||||||
// Clean up the HTML by loading and saving the HTML with the DOM
|
// Clean up the HTML by loading and saving the HTML with the DOM
|
||||||
// Only do it when it has to be done - for performance reasons
|
// Only do it when it has to be done - for performance reasons
|
||||||
if (!$tryoembed) {
|
// Update: Now it is done every time - since bad structured html can break a whole page
|
||||||
|
//if (!$tryoembed) {
|
||||||
$doc = new DOMDocument();
|
$doc = new DOMDocument();
|
||||||
$doc->preserveWhiteSpace = false;
|
$doc->preserveWhiteSpace = false;
|
||||||
|
|
||||||
|
@ -618,7 +619,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
|
||||||
$Text = str_replace('<br></li>','</li>', $Text);
|
$Text = str_replace('<br></li>','</li>', $Text);
|
||||||
|
|
||||||
$Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
|
$Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
|
||||||
}
|
//}
|
||||||
|
|
||||||
call_hooks('bbcode',$Text);
|
call_hooks('bbcode',$Text);
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ function create_tags_from_item($itemid) {
|
||||||
|
|
||||||
$searchpath = $a->get_baseurl()."/search?tag=";
|
$searchpath = $a->get_baseurl()."/search?tag=";
|
||||||
|
|
||||||
$messages = q("SELECT `uri`, `uid`, `id`, `deleted`, `title`, `body`, `tag` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
|
$messages = q("SELECT `uri`, `uid`, `id`, `created`, `edited`, `commented`, `received`, `changed`, `deleted`, `title`, `body`, `tag` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
|
||||||
|
|
||||||
if (!$messages)
|
if (!$messages)
|
||||||
return;
|
return;
|
||||||
|
@ -58,8 +58,9 @@ function create_tags_from_item($itemid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($tags as $tag=>$link)
|
foreach ($tags as $tag=>$link)
|
||||||
$r = q("INSERT INTO `tag` (`iid`, `tag`, `link`) VALUES (%d, '%s', '%s')",
|
$r = q("INSERT INTO `tag` (`iid`, `tag`, `link`, `created`, `edited`, `commented`, `received`, `changed`) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
|
||||||
intval($itemid), dbesc($tag), dbesc($link));
|
intval($itemid), dbesc($tag), dbesc($link), dbesc($message["created"]),
|
||||||
|
dbesc($message["edited"]), dbesc($message["commented"]), dbesc($message["received"]), dbesc($message["changed"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_tags_from_itemuri($itemuri, $uid) {
|
function create_tags_from_itemuri($itemuri, $uid) {
|
||||||
|
|
|
@ -19,6 +19,7 @@ require_once('include/crypto.php');
|
||||||
require_once('include/enotify.php');
|
require_once('include/enotify.php');
|
||||||
require_once('include/email.php');
|
require_once('include/email.php');
|
||||||
require_once('library/langdet/Text/LanguageDetect.php');
|
require_once('library/langdet/Text/LanguageDetect.php');
|
||||||
|
require_once('include/tags.php');
|
||||||
|
|
||||||
function item_post(&$a) {
|
function item_post(&$a) {
|
||||||
|
|
||||||
|
@ -685,6 +686,7 @@ function item_post(&$a) {
|
||||||
intval($post_id),
|
intval($post_id),
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
|
create_tags_from_itemuri($post_id, $profile_uid);
|
||||||
|
|
||||||
// update filetags in pconfig
|
// update filetags in pconfig
|
||||||
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
||||||
|
@ -750,6 +752,7 @@ function item_post(&$a) {
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
$post_id = $r[0]['id'];
|
$post_id = $r[0]['id'];
|
||||||
logger('mod_item: saved item ' . $post_id);
|
logger('mod_item: saved item ' . $post_id);
|
||||||
|
create_tags_from_item($post_id);
|
||||||
|
|
||||||
// update filetags in pconfig
|
// update filetags in pconfig
|
||||||
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
||||||
|
|
|
@ -674,8 +674,10 @@ function network_content(&$a, $update = 0) {
|
||||||
$myurl = substr($myurl,strpos($myurl,'://')+3);
|
$myurl = substr($myurl,strpos($myurl,'://')+3);
|
||||||
$myurl = str_replace('www.','',$myurl);
|
$myurl = str_replace('www.','',$myurl);
|
||||||
$diasp_url = str_replace('/profile/','/u/',$myurl);
|
$diasp_url = str_replace('/profile/','/u/',$myurl);
|
||||||
if (get_config('system','use_fulltext_engine'))
|
/*if (get_config('system','use_fulltext_engine'))
|
||||||
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
|
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
|
||||||
|
//$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (`author-link` IN ('https://%s', 'http://%s') OR MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
|
||||||
|
//$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where `author-link` IN ('https://%s', 'http://%s') OR `mention`)",
|
||||||
dbesc(protect_sprintf($myurl)),
|
dbesc(protect_sprintf($myurl)),
|
||||||
dbesc(protect_sprintf($myurl)),
|
dbesc(protect_sprintf($myurl)),
|
||||||
dbesc(protect_sprintf($diasp_url))
|
dbesc(protect_sprintf($diasp_url))
|
||||||
|
@ -685,8 +687,12 @@ function network_content(&$a, $update = 0) {
|
||||||
dbesc(protect_sprintf('%' . $myurl)),
|
dbesc(protect_sprintf('%' . $myurl)),
|
||||||
dbesc(protect_sprintf('%' . $myurl . ']%')),
|
dbesc(protect_sprintf('%' . $myurl . ']%')),
|
||||||
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
|
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
|
||||||
);
|
);*/
|
||||||
|
|
||||||
|
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where `author-link` IN ('https://%s', 'http://%s') OR `mention`)",
|
||||||
|
dbesc(protect_sprintf($myurl)),
|
||||||
|
dbesc(protect_sprintf($myurl))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($update) {
|
if($update) {
|
||||||
|
|
|
@ -124,6 +124,9 @@ function search_content(&$a) {
|
||||||
if(! $search)
|
if(! $search)
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
|
if (get_config('system','only_tag_search'))
|
||||||
|
$tag = true;
|
||||||
|
|
||||||
if (get_config('system','use_fulltext_engine')) {
|
if (get_config('system','use_fulltext_engine')) {
|
||||||
if($tag)
|
if($tag)
|
||||||
$sql_extra = sprintf(" AND MATCH (`item`.`tag`) AGAINST ('".'"%s"'."' in boolean mode) ", '#'.dbesc(protect_sprintf($search)));
|
$sql_extra = sprintf(" AND MATCH (`item`.`tag`) AGAINST ('".'"%s"'."' in boolean mode) ", '#'.dbesc(protect_sprintf($search)));
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
define( 'UPDATE_VERSION' , 1158 );
|
define( 'UPDATE_VERSION' , 1159 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -1382,3 +1382,9 @@ function update_1157() {
|
||||||
if(!$r) return UPDATE_FAILED;
|
if(!$r) return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
function update_1158() {
|
||||||
|
$r = q("ALTER TABLE `item` ADD `mention` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX (`mention`)");
|
||||||
|
// KEY `mention` (`mention`)
|
||||||
|
if(!$r) return UPDATE_FAILED;
|
||||||
|
return UPDATE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue