|
@@ -527,7 +527,7 @@ function GetUpdateSQL() |
|
|
fclose($fp); |
|
|
fclose($fp); |
|
|
return $result; |
|
|
return $result; |
|
|
} |
|
|
} |
|
|
/*会员中心调用默认主题模板<?php obtaintheme('head.htm');?>*/ |
|
|
|
|
|
|
|
|
/*会员中心调用主题模板<?php obtaintheme('head.htm');?>*/ |
|
|
if (!function_exists('obtaintheme')) { |
|
|
if (!function_exists('obtaintheme')) { |
|
|
require_once DEDEINC."/archive/partview.class.php"; |
|
|
require_once DEDEINC."/archive/partview.class.php"; |
|
|
function obtaintheme($path) |
|
|
function obtaintheme($path) |
|
@@ -554,7 +554,7 @@ if (!function_exists('obtaintags')) { |
|
|
return $tags; |
|
|
return $tags; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
//提取文档多图片[field:body function='obtainimgs(@me,3)'/]3表示调用文档3张图片,body则列表附加字段需添加body字段 |
|
|
|
|
|
|
|
|
//提取文档多图片[field:body function='obtainimgs(@me,3)'/]3表示调用文档3张图片,则附加字段需添加body字段调用 |
|
|
if (!function_exists('obtainimgs')) { |
|
|
if (!function_exists('obtainimgs')) { |
|
|
function obtainimgs($string, $num) |
|
|
function obtainimgs($string, $num) |
|
|
{ |
|
|
{ |
|
@@ -571,39 +571,7 @@ if (!function_exists('obtainimgs')) { |
|
|
return $result; |
|
|
return $result; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
//联动单筛选{dede:php}obtainfilter(模型id,类型,'字段1,字段2');{/dede:php}类型有三种,对应以下case值 |
|
|
|
|
|
function litimgurls($imgid = 0) |
|
|
|
|
|
{ |
|
|
|
|
|
global $dsql, $lit_imglist; |
|
|
|
|
|
$row = $dsql->GetOne("SELECT c.addtable FROM `#@__archives` AS a LEFT JOIN `#@__channeltype` AS c ON a.channel=c.id WHERE a.id='$imgid'"); |
|
|
|
|
|
$addtable = trim($row['addtable']); |
|
|
|
|
|
$row = $dsql->GetOne("SELECT imgurls FROM `$addtable` WHERE aid='$imgid'"); |
|
|
|
|
|
$ChannelUnit = new ChannelUnit(2, $imgid); |
|
|
|
|
|
$lit_imglist = $ChannelUnit->GetlitImgLinks($row['imgurls']); |
|
|
|
|
|
return $lit_imglist; |
|
|
|
|
|
} |
|
|
|
|
|
//联动单筛选字符过滤函数 |
|
|
|
|
|
function string_filter($str, $stype = "inject") |
|
|
|
|
|
{ |
|
|
|
|
|
if ($stype == "inject") { |
|
|
|
|
|
$str = str_replace( |
|
|
|
|
|
array("select", "insert", "update", "delete", "alter", "cas", "union", "into", "load_file", "outfile", "create", "join", "where", "like", "drop", "modify", "rename", "'", "/*", "*", "../", "./"), |
|
|
|
|
|
array("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""), |
|
|
|
|
|
$str |
|
|
|
|
|
); |
|
|
|
|
|
} else if ($stype == "xss") { |
|
|
|
|
|
$farr = array("/\s+/", "/<(\/?)(script|META|STYLE|HTML|HEAD|BODY|STYLE |i?frame|b|strong|style|html|img|P|o:p|iframe|u|em|strike|BR|div|a|TABLE|TBODY|object|tr|td|st1:chsdate|FONT|span|MARQUEE|body|title|\r\n|link|meta|\?|\%)([^>]*?)>/isU", "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",); |
|
|
|
|
|
$tarr = array(" ", "", "\\1\\2",); |
|
|
|
|
|
$str = preg_replace($farr, $tarr, $str); |
|
|
|
|
|
$str = str_replace( |
|
|
|
|
|
array("<", ">", "'", "\"", ";", "/*", "*", "../", "./"), |
|
|
|
|
|
array("<", ">", "", "", "", "", "", "", ""), |
|
|
|
|
|
$str |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
return $str; |
|
|
|
|
|
} |
|
|
|
|
|
//联动单筛选三种类型显示 |
|
|
|
|
|
|
|
|
//联动单筛选{dede:php}obtainfilter(模型id,类型,'字段1,字段2');{/dede:php}类型表示前台展现方式对应case值 |
|
|
function obtainfilter($channelid, $type = 1, $fieldsnamef = '', $defaulttid = 0, $toptid = 0, $loadtype = 'autofield') |
|
|
function obtainfilter($channelid, $type = 1, $fieldsnamef = '', $defaulttid = 0, $toptid = 0, $loadtype = 'autofield') |
|
|
{ |
|
|
{ |
|
|
global $tid, $dsql, $id, $aid; |
|
|
global $tid, $dsql, $id, $aid; |
|
@@ -631,6 +599,7 @@ function obtainfilter($channelid, $type = 1, $fieldsnamef = '', $defaulttid = 0, |
|
|
$fields_value = $href2[0]; |
|
|
$fields_value = $href2[0]; |
|
|
switch ($type) { |
|
|
switch ($type) { |
|
|
case 1: |
|
|
case 1: |
|
|
|
|
|
$dede_addonfields .= '<div class="mb-3">'; |
|
|
$dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'" class="btn btn-outline-success btn-sm">全部</a>' : '<a href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'" class="btn btn-success btn-sm">全部</a>'); |
|
|
$dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'" class="btn btn-outline-success btn-sm">全部</a>' : '<a href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'" class="btn btn-success btn-sm">全部</a>'); |
|
|
$addonfields_items = explode(",",$ctag->GetAtt('default')); |
|
|
$addonfields_items = explode(",",$ctag->GetAtt('default')); |
|
|
for ($i=0; $i<count($addonfields_items); $i++) |
|
|
for ($i=0; $i<count($addonfields_items); $i++) |
|
@@ -638,9 +607,10 @@ function obtainfilter($channelid, $type = 1, $fieldsnamef = '', $defaulttid = 0, |
|
|
$href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]); |
|
|
$href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]); |
|
|
$dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? '<a title="'.$addonfields_items[$i].'" href="'.$href.'" class="btn btn-outline-success btn-sm">'.$addonfields_items[$i].'</a>' : '<a href="'.$href.'" class="btn btn-success btn-sm">'.$addonfields_items[$i].'</a>'); |
|
|
$dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? '<a title="'.$addonfields_items[$i].'" href="'.$href.'" class="btn btn-outline-success btn-sm">'.$addonfields_items[$i].'</a>' : '<a href="'.$href.'" class="btn btn-success btn-sm">'.$addonfields_items[$i].'</a>'); |
|
|
} |
|
|
} |
|
|
|
|
|
$dede_addonfields .= '</div>'; |
|
|
break; |
|
|
break; |
|
|
case 2: |
|
|
case 2: |
|
|
$dede_addonfields .= '<select name="filter'.$ctag->GetName().'" onchange="window.location=this.options[this.selectedIndex].value"> |
|
|
|
|
|
|
|
|
$dede_addonfields .= '<select name="filter'.$ctag->GetName().'" onchange="window.location=this.options[this.selectedIndex].value" class="form-control w-25 mr-3"> |
|
|
'.'<option value="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'">全部</option>'; |
|
|
'.'<option value="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'">全部</option>'; |
|
|
$addonfields_items = explode(",",$ctag->GetAtt('default')); |
|
|
$addonfields_items = explode(",",$ctag->GetAtt('default')); |
|
|
for ($i=0; $i<count($addonfields_items); $i++) |
|
|
for ($i=0; $i<count($addonfields_items); $i++) |
|
@@ -649,10 +619,10 @@ function obtainfilter($channelid, $type = 1, $fieldsnamef = '', $defaulttid = 0, |
|
|
$dede_addonfields .= '<option value="'.$href.'"'.($fields_value==urlencode($addonfields_items[$i]) ? ' selected="selected"' : '').'>'.$addonfields_items[$i].'</option> |
|
|
$dede_addonfields .= '<option value="'.$href.'"'.($fields_value==urlencode($addonfields_items[$i]) ? ' selected="selected"' : '').'>'.$addonfields_items[$i].'</option> |
|
|
'; |
|
|
'; |
|
|
} |
|
|
} |
|
|
$dede_addonfields .= '</select> |
|
|
|
|
|
'; |
|
|
|
|
|
|
|
|
$dede_addonfields .= '</select>'; |
|
|
break; |
|
|
break; |
|
|
case 3: |
|
|
case 3: |
|
|
|
|
|
$dede_addonfields .= '<div class="mb-3">'; |
|
|
$dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'"><input type="radio" name="filter'.$ctag->GetName().'" value="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'" onclick="window.location=this.value">全部</a>' : '<span><input type="radio" name="filter'.$ctag->GetName().'" checked="checked">全部</span>'); |
|
|
$dede_addonfields .= (preg_match("/&".$ctag->GetName()."=/is",$filterarr,$regm) ? '<a href="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'"><input type="radio" name="filter'.$ctag->GetName().'" value="'.str_replace("&".$ctag->GetName()."=".$fields_value,"",$filterarr).'" onclick="window.location=this.value">全部</a>' : '<span><input type="radio" name="filter'.$ctag->GetName().'" checked="checked">全部</span>'); |
|
|
$addonfields_items = explode(",",$ctag->GetAtt('default')); |
|
|
$addonfields_items = explode(",",$ctag->GetAtt('default')); |
|
|
for ($i=0; $i<count($addonfields_items); $i++) |
|
|
for ($i=0; $i<count($addonfields_items); $i++) |
|
@@ -660,6 +630,7 @@ function obtainfilter($channelid, $type = 1, $fieldsnamef = '', $defaulttid = 0, |
|
|
$href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]); |
|
|
$href = stripos($filterarr,$ctag->GetName().'=') ? str_replace("=".$fields_value,"=".urlencode($addonfields_items[$i]),$filterarr) : $filterarr.'&'.$ctag->GetName().'='.urlencode($addonfields_items[$i]); |
|
|
$dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? '<a title="'.$addonfields_items[$i].'" href="'.$href.'"><input type="radio" name="filter'.$ctag->GetName().'" value="'.$href.'" onclick="window.location=this.value">'.$addonfields_items[$i].'</a>' : '<span><input type="radio" name="filter'.$ctag->GetName().'" checked="checked">'.$addonfields_items[$i].'</span>'); |
|
|
$dede_addonfields .= ($fields_value!=urlencode($addonfields_items[$i]) ? '<a title="'.$addonfields_items[$i].'" href="'.$href.'"><input type="radio" name="filter'.$ctag->GetName().'" value="'.$href.'" onclick="window.location=this.value">'.$addonfields_items[$i].'</a>' : '<span><input type="radio" name="filter'.$ctag->GetName().'" checked="checked">'.$addonfields_items[$i].'</span>'); |
|
|
} |
|
|
} |
|
|
|
|
|
$dede_addonfields .= '</div>'; |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@@ -667,6 +638,38 @@ function obtainfilter($channelid, $type = 1, $fieldsnamef = '', $defaulttid = 0, |
|
|
} |
|
|
} |
|
|
echo $dede_addonfields; |
|
|
echo $dede_addonfields; |
|
|
} |
|
|
} |
|
|
|
|
|
//联动单筛选获取附加表 |
|
|
|
|
|
function litimgurls($imgid = 0) |
|
|
|
|
|
{ |
|
|
|
|
|
global $dsql, $lit_imglist; |
|
|
|
|
|
$row = $dsql->GetOne("SELECT c.addtable FROM `#@__archives` AS a LEFT JOIN `#@__channeltype` AS c ON a.channel=c.id WHERE a.id='$imgid'"); |
|
|
|
|
|
$addtable = trim($row['addtable']); |
|
|
|
|
|
$row = $dsql->GetOne("SELECT imgurls FROM `$addtable` WHERE aid='$imgid'"); |
|
|
|
|
|
$ChannelUnit = new ChannelUnit(2, $imgid); |
|
|
|
|
|
$lit_imglist = $ChannelUnit->GetlitImgLinks($row['imgurls']); |
|
|
|
|
|
return $lit_imglist; |
|
|
|
|
|
} |
|
|
|
|
|
//联动单筛选字符过滤函数 |
|
|
|
|
|
function string_filter($str, $stype = "inject") |
|
|
|
|
|
{ |
|
|
|
|
|
if ($stype == "inject") { |
|
|
|
|
|
$str = str_replace( |
|
|
|
|
|
array("select", "insert", "update", "delete", "alter", "cas", "union", "into", "load_file", "outfile", "create", "join", "where", "like", "drop", "modify", "rename", "'", "/*", "*", "../", "./"), |
|
|
|
|
|
array("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""), |
|
|
|
|
|
$str |
|
|
|
|
|
); |
|
|
|
|
|
} else if ($stype == "xss") { |
|
|
|
|
|
$farr = array("/\s+/", "/<(\/?)(script|META|STYLE|HTML|HEAD|BODY|STYLE |i?frame|b|strong|style|html|img|P|o:p|iframe|u|em|strike|BR|div|a|TABLE|TBODY|object|tr|td|st1:chsdate|FONT|span|MARQUEE|body|title|\r\n|link|meta|\?|\%)([^>]*?)>/isU", "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",); |
|
|
|
|
|
$tarr = array(" ", "", "\\1\\2",); |
|
|
|
|
|
$str = preg_replace($farr, $tarr, $str); |
|
|
|
|
|
$str = str_replace( |
|
|
|
|
|
array("<", ">", "'", "\"", ";", "/*", "*", "../", "./"), |
|
|
|
|
|
array("<", ">", "", "", "", "", "", "", ""), |
|
|
|
|
|
$str |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
return $str; |
|
|
|
|
|
} |
|
|
/** |
|
|
/** |
|
|
* GetMimeTypeOrExtension |
|
|
* GetMimeTypeOrExtension |
|
|
* |
|
|
* |
|
|