function bat_highlight(\$message, \$words, \$color = '#ff0000') {
if(!empty(\$words)) {
\$highlightarray = explode(' ', \$words);
\$sppos = strrpos(\$message, chr(0).chr(0).chr(0));
if(\$sppos !== FALSE) {
\$specialextra = substr(\$message, \$sppos + 3);
\$message = substr(\$message, 0, \$sppos);
}
bat_highlight_callback_highlight_21(\$highlightarray, 1);
\$message = preg_replace_callback("/(^|>)([^<]+)(?=<|\$)/sU", 'bat_highlight_callback_highlight_21', \$message);
\$message = preg_replace("/<highlight>(.*)<\/highlight>/siU", "<strong><font color=\"\$color\">\\1</font></strong>", \$message);
if(\$sppos !== FALSE) {
\$message = \$message.chr(0).chr(0).chr(0).\$specialextra;
}
}
return \$message;
} | foreach(C::t('forum_thread')->fetch_all_by_tid_fid_displayorder(explode(',',\$index['ids']), null, 0, \$orderby, \$start_limit, \$_G['tpp'], '>=', \$ascdesc) as \$thread) {
\$thread['subject'] = bat_highlight(\$thread['subject'], \$keyword);
\$thread['realtid'] = \$thread['isgroup'] == 1 ? \$thread['closed'] : \$thread['tid'];
\$threadlist[\$thread['tid']] = procthread(\$thread, 'dt');
\$posttables[\$thread['posttableid']][] = \$thread['tid'];
}
if(\$threadlist) {
foreach(\$posttables as \$tableid => \$tids) {
foreach(C::t('forum_post')->fetch_all_by_tid(\$tableid, \$tids, true, '', 0, 0, 1) as \$post) {
\$threadlist[\$post['tid']]['message'] = bat_highlight(messagecutstr(\$post['message'], 200), \$keyword);
}
}
} |