|
@@ -624,7 +624,7 @@ class Archives |
|
|
if($row[$get]['id']) $this->dtp->Assign($i,$revalue);
|
|
|
if($row[$get]['id']) $this->dtp->Assign($i,$revalue);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else if ($ctag->GetName() == 'fieldlist') {
|
|
|
|
|
|
|
|
|
else if ($ctag->GetName() == 'fieldlist') {
|
|
|
$innertext = trim($ctag->GetInnerText());
|
|
|
$innertext = trim($ctag->GetInnerText());
|
|
|
if ($innertext == '') $innertext = GetSysTemplets('tag_fieldlist.htm');
|
|
|
if ($innertext == '') $innertext = GetSysTemplets('tag_fieldlist.htm');
|
|
|
$dtp2 = new DedeTagParse();
|
|
|
$dtp2 = new DedeTagParse();
|
|
@@ -659,7 +659,6 @@ class Archives |
|
|
$this->dtp->Assign($i, $res);
|
|
|
$this->dtp->Assign($i, $res);
|
|
|
} //end case
|
|
|
} //end case
|
|
|
} //结束模板循环
|
|
|
} //结束模板循环
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
/**
|
|
|
/**
|
|
@@ -1004,51 +1003,29 @@ class Archives |
|
|
* @param string $body
|
|
|
* @param string $body
|
|
|
* @return string
|
|
|
* @return string
|
|
|
*/
|
|
|
*/
|
|
|
function ReplaceKeyword($kw, &$body)
|
|
|
|
|
|
|
|
|
function ReplaceKeyword($kw,&$body)
|
|
|
{
|
|
|
{
|
|
|
global $cfg_cmspath;
|
|
|
global $cfg_cmspath;
|
|
|
$maxkey = 5;
|
|
|
$maxkey = 5;
|
|
|
$kws = explode(",", trim($kw)); //以分好为间隔符
|
|
|
|
|
|
$i = 0;
|
|
|
|
|
|
|
|
|
$kws = explode(",",trim($kw));//以分好为间隔符
|
|
|
|
|
|
$i=0;
|
|
|
$karr = $kaarr = $GLOBALS['replaced'] = array();
|
|
|
$karr = $kaarr = $GLOBALS['replaced'] = array();
|
|
|
//暂时屏蔽超链接
|
|
|
//暂时屏蔽超链接
|
|
|
$body = preg_replace("#(<a(.*))(>)(.*)(<)(\/a>)#isU", '\\1-]-\\4-[-\\6', $body);
|
|
|
$body = preg_replace("#(<a(.*))(>)(.*)(<)(\/a>)#isU", '\\1-]-\\4-[-\\6', $body);
|
|
|
/*
|
|
|
|
|
|
foreach($kws as $k)
|
|
|
|
|
|
{
|
|
|
|
|
|
$k = trim($k);
|
|
|
|
|
|
if($k!="")
|
|
|
|
|
|
{
|
|
|
|
|
|
if($i > $maxkey)
|
|
|
|
|
|
{
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
$myrow = $this->dsql->GetOne("SELECT * FROM #@__keywords WHERE keyword='$k' AND rpurl<>'' ");
|
|
|
|
|
|
if(is_array($myrow))
|
|
|
|
|
|
{
|
|
|
|
|
|
$karr[] = $k;
|
|
|
|
|
|
$GLOBALS['replaced'][$k] = 0;
|
|
|
|
|
|
$kaarr[] = "<a href='{$myrow['rpurl']}'><u>$k</u></a>";
|
|
|
|
|
|
}
|
|
|
|
|
|
$i++;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
*/
|
|
|
|
|
|
$query = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC";
|
|
|
$query = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC";
|
|
|
$this->dsql->SetQuery($query);
|
|
|
$this->dsql->SetQuery($query);
|
|
|
$this->dsql->Execute();
|
|
|
$this->dsql->Execute();
|
|
|
while ($row = $this->dsql->GetArray()) {
|
|
|
|
|
|
|
|
|
while($row = $this->dsql->GetArray())
|
|
|
|
|
|
{
|
|
|
|
|
|
global $cfg_replace_num;
|
|
|
$key = trim($row['keyword']);
|
|
|
$key = trim($row['keyword']);
|
|
|
$key_url = trim($row['rpurl']);
|
|
|
|
|
|
|
|
|
$key_url=trim($row['rpurl']);
|
|
|
$karr[] = $key;
|
|
|
$karr[] = $key;
|
|
|
$kaarr[] = "<a href='$key_url' target='_blank'><u>$key</u></a>";
|
|
|
|
|
|
|
|
|
$kaarr[] = "<a href='$key_url' target='_blank'>$key</a>";
|
|
|
}
|
|
|
}
|
|
|
$GLOBALS['_dd_karr'] = $karr;
|
|
|
|
|
|
$GLOBALS['_dd_kaarr'] = $kaarr;
|
|
|
|
|
|
// 这里可能会有错误
|
|
|
|
|
|
|
|
|
//这里可能会有错误
|
|
|
if (version_compare(PHP_VERSION, '5.5.0', '>='))
|
|
|
if (version_compare(PHP_VERSION, '5.5.0', '>='))
|
|
|
{
|
|
|
{
|
|
|
//$body = @preg_replace_callback("#(^|>)([^<]+)(?=<|$)#sU", "_highlight('\\2', \$karr, \$kaarr, '\\1')", $body);
|
|
|
|
|
|
if($cfg_replace_num > 0)
|
|
|
if($cfg_replace_num > 0)
|
|
|
{
|
|
|
{
|
|
|
$query = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC";
|
|
|
$query = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC";
|
|
@@ -1058,7 +1035,7 @@ class Archives |
|
|
{
|
|
|
{
|
|
|
$key = trim($row['keyword']);
|
|
|
$key = trim($row['keyword']);
|
|
|
$key_url=trim($row['rpurl']);
|
|
|
$key_url=trim($row['rpurl']);
|
|
|
$body = str_replace_limit($key, "<a href='$key_url' target='_blank'><u>$key</u></a>", $body, $cfg_replace_num);
|
|
|
|
|
|
|
|
|
$body = str_replace_limit($key, "<a href='$key_url' target='_blank'>$key</a>", $body, $cfg_replace_num);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
} else {
|
|
|
$query = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC";
|
|
|
$query = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC";
|
|
@@ -1079,25 +1056,38 @@ class Archives |
|
|
return $body;
|
|
|
return $body;
|
|
|
}
|
|
|
}
|
|
|
}//End Archives
|
|
|
}//End Archives
|
|
|
function _highlight8($matches){
|
|
|
|
|
|
return _highlight($matches[2], $GLOBALS['_dd_karr'], $GLOBALS['_dd_kaarr'], $matches[1]);
|
|
|
|
|
|
|
|
|
//指定替换次数功能
|
|
|
|
|
|
function str_replace_limit($search, $replace, $subject, $limit){
|
|
|
|
|
|
if(is_array($search)){
|
|
|
|
|
|
foreach($search as $k=>$v){
|
|
|
|
|
|
$search[$k] = '`'. preg_quote($search[$k], '`'). '`';
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$search = '`'. preg_quote($search, '`'). '`';
|
|
|
|
|
|
}
|
|
|
|
|
|
return preg_replace($search, $replace, $subject, $limit);
|
|
|
}
|
|
|
}
|
|
|
//高亮专用, 替换多次是可能不能达到最多次
|
|
|
|
|
|
|
|
|
//高亮专用, 替换多次时可能不能达到最多次
|
|
|
function _highlight($string, $words, $result, $pre)
|
|
|
function _highlight($string, $words, $result, $pre)
|
|
|
{
|
|
|
{
|
|
|
global $cfg_replace_num;
|
|
|
global $cfg_replace_num;
|
|
|
if (version_compare(PHP_VERSION, '5.5.0', '>=') && version_compare(PHP_VERSION, '8.0.0', '<')) {
|
|
|
|
|
|
|
|
|
if (version_compare(PHP_VERSION, '5.5.0', '>='))
|
|
|
|
|
|
{
|
|
|
$string = $string[0];
|
|
|
$string = $string[0];
|
|
|
$pre = $pre[0];
|
|
|
$pre = $pre[0];
|
|
|
}
|
|
|
}
|
|
|
$string = str_replace('\"', '"', $string);
|
|
|
$string = str_replace('\"', '"', $string);
|
|
|
if ($cfg_replace_num > 0) {
|
|
|
|
|
|
foreach ($words as $key => $word) {
|
|
|
|
|
|
if ($GLOBALS['replaced'][$word] == 1) {
|
|
|
|
|
|
|
|
|
if($cfg_replace_num > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach ($words as $key => $word)
|
|
|
|
|
|
{
|
|
|
|
|
|
if($GLOBALS['replaced'][$word] == 1)
|
|
|
|
|
|
{
|
|
|
continue;
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
$string = preg_replace("#".preg_quote($word)."#", $result[$key], $string, $cfg_replace_num);
|
|
|
$string = preg_replace("#".preg_quote($word)."#", $result[$key], $string, $cfg_replace_num);
|
|
|
if (strpos($string, $word) !== FALSE) {
|
|
|
|
|
|
|
|
|
if(strpos($string, $word) !== FALSE)
|
|
|
|
|
|
{
|
|
|
$GLOBALS['replaced'][$word] = 1;
|
|
|
$GLOBALS['replaced'][$word] = 1;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|