129 lines
3.2 KiB
PHP
129 lines
3.2 KiB
PHP
<?php
|
|
if (!defined('_GNUBOARD_'))
|
|
exit;
|
|
|
|
function autolink($str, $bo_table, $stx = '')
|
|
{
|
|
global $g5, $config;
|
|
|
|
$str = ' ' . $str;
|
|
|
|
$str = str_replace("'", "'", $str);
|
|
$str = str_replace(""", """, $str);
|
|
|
|
$str = preg_replace(
|
|
'`<a href="([^" ]*)"[^.]*>\S*<\/a>`i',
|
|
'<a href="$1" target="_blank" class="other-site-link">Link URL</a>',
|
|
$str
|
|
);
|
|
$str = substr($str, 1);
|
|
|
|
$hash_pattern = "/\\#([0-9a-zA-Z가-힣_])([0-9a-zA-Z가-힣_]*)/";
|
|
$str = preg_replace($hash_pattern, '<a href="?bo_table=' . $bo_table . '&sfl=hash&stx=%23$1$2" class="link_hash_tag">#$1$2</a>', $str);
|
|
|
|
$log_pattern = "/\\@([0-9])([0-9]*)/";
|
|
$str = preg_replace($log_pattern, '<a href="?bo_table=' . $bo_table . '&sfl=log&stx=$1$2&single=Y" target="_blank" class="log_link_tag">$1$2</a>', $str);
|
|
|
|
$str = str_replace("[[", "<span class='member_call'>", $str);
|
|
$str = str_replace("]]", "</span>", $str);
|
|
|
|
return $str;
|
|
}
|
|
|
|
function get_sql_search_mmb($search_ca_name, $search_field, $search_text, $search_operator = 'and', $single_use = '')
|
|
{
|
|
global $g5;
|
|
|
|
$str = "";
|
|
if ($search_ca_name)
|
|
$str = " ca_name = '$search_ca_name' ";
|
|
|
|
$search_text = strip_tags(($search_text));
|
|
$search_text = trim(stripslashes($search_text));
|
|
|
|
if (!$search_text) {
|
|
if ($search_ca_name) {
|
|
return $str;
|
|
} else {
|
|
return '0';
|
|
}
|
|
}
|
|
|
|
if ($str)
|
|
$str .= " and ";
|
|
|
|
$op1 = "";
|
|
|
|
$s = [];
|
|
$s = explode(" ", $search_text);
|
|
|
|
$tmp = [];
|
|
$tmp = explode(",", trim($search_field));
|
|
$field = explode("||", $tmp[0]);
|
|
$not_comment = "";
|
|
if (!empty($tmp[1]))
|
|
$not_comment = $tmp[1];
|
|
|
|
$str .= "(";
|
|
for ($i = 0; $i < count($s); $i++) {
|
|
$search_str = trim($s[$i]);
|
|
if ($search_str == "")
|
|
continue;
|
|
|
|
insert_popular($field, $search_str);
|
|
|
|
$str .= $op1;
|
|
$str .= "(";
|
|
|
|
$op2 = "";
|
|
for ($k = 0; $k < count($field); $k++) {
|
|
$field[$k] = preg_match("/^[\w\,\|]+$/", $field[$k]) ? $field[$k] : "wr_subject";
|
|
|
|
$str .= $op2;
|
|
switch ($field[$k]) {
|
|
case "mb_id":
|
|
case "wr_name":
|
|
$str .= " $field[$k] = '$s[$i]' ";
|
|
break;
|
|
case "wr_hit":
|
|
case "wr_good":
|
|
case "wr_nogood":
|
|
$str .= " $field[$k] >= '$s[$i]' ";
|
|
break;
|
|
case "wr_num":
|
|
$str .= "$field[$k] = " . ((-1) * $s[$i]);
|
|
break;
|
|
case "wr_ip":
|
|
case "wr_password":
|
|
$str .= "1=0";
|
|
break;
|
|
case "hash":
|
|
$str .= "wr_content like '%{$search_str}%' ";
|
|
break;
|
|
case "log":
|
|
$str .= "wr_num >= " . ($search_str * -1) . " ";
|
|
if ($single_use) {
|
|
if ($str)
|
|
$str .= " and ";
|
|
$str .= "wr_num < " . (($search_str * -1) + 1) . " ";
|
|
}
|
|
break;
|
|
default:
|
|
if (preg_match("/[a-zA-Z]/", $search_str))
|
|
$str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
|
|
else
|
|
$str .= "INSTR($field[$k], '$search_str')";
|
|
break;
|
|
}
|
|
$op2 = " or ";
|
|
}
|
|
$str .= ")";
|
|
|
|
$op1 = " $search_operator ";
|
|
}
|
|
$str .= " ) ";
|
|
if ($not_comment)
|
|
$str .= " and wr_is_comment = '0' ";
|
|
|
|
return $str;
|
|
}
|