ppypp伦理天堂,91手机在线视频,免费在线观看黄色毛片,夜夜穞天天穞狠狠穞AV美女按摩

聯系官方銷售客服

1835022288

028-61286886

投訴 分享 分享內容《如何在linkage中實現自定義字段的搜索》實現功 5 0
迅睿CMS版本:4.3.2

分享內容:《如何在linkage中實現自定義字段的搜索》

實現功能:多個條件匹配,目前只能匹配等于

代碼 如下:

case 'linkage': // 聯動菜單


$linkage = \Phpcmf\Service::L('cache')->get('linkage-' . $system['site'] . '-' . $param['code']);
if (!$linkage) {
return $this->_return($system['return'], "聯動菜單{$param['code']}不存在,請在后臺更新緩存");
}

// 通過別名找id
$ids = @array_flip(\Phpcmf\Service::C()->get_cache('linkage-' . $system['site'] . '-' . $param['code'] . '-id'));

if (isset($param['pid'])) {
if (is_numeric($param['pid'])) {
$pid = intval($param['pid']);
} elseif (!$param['pid']) {
$pid = 0;
} else {
$pid = isset($ids[$param['pid']]) ? $ids[$param['pid']] : 0;
!$pid && is_numeric($param['pid']) && \Phpcmf\Service::C()->get_cache('linkage-' . $system['site'] . '-' . $param['code'] . '-id', $param['pid']) && $pid = intval($param['pid']);
}
}


$i = 0;
$return = array();
foreach ($linkage as $t) {
if ($system['num'] && $i >= $system['num']) {
break;
} elseif (isset($param['pid']) && $t['pid'] != $pid) {
continue;
} elseif (isset($param['id']) && !in_array($t['id'], explode(',', $param['id']))) {
continue;
}
$return[] = $t;
$i++;
}


if (!$return && isset($param['pid'])) {

$rpid = isset($param['fid']) ? (int)$ids[$param['fid']] : (int)$linkage[$param['pid']]['pid'];
foreach ($linkage as $t) {
if ($t['pid'] == $rpid) {
if ($system['num'] && $i >= $system['num']) {
break;
}
if (isset($param['id']) && !in_array($t['id'], explode(',', $param['id']))) {
continue;
}
$return[] = $t;
$i++;
}
}
if (!$return) {
return $this->_return($system['return'], '沒有匹配到內容');
}
}

/**
* 其他自定義參數實現開始
*/
//獲取當前linkage的所有字段
$db_field_sources = $return[0];
$linkage_db_field = [];
foreach ($db_field_sources as $field => $val) {
array_push($linkage_db_field, $field);
}
$customer_params = array();
if (count($param) > 0) {
foreach ($param as $key => $val) {
if ($key == 'code' || $key == 'pid' || $key == 'id') {
continue;
}
if (!in_array($key, $linkage_db_field)) {
continue;
}
$customer_params[$key] = $val;
}
}
if (!empty($customer_params) && count($customer_params) > 0) {
foreach ($return as $key => $item) {
foreach ($customer_params as $filter_field => $filter_value) {
if($item[$filter_field]!=$filter_value){
unset($return[$key]);
}
}
}
}
/**
* 其他自定義參數實現結束
*/
return $this->_return($system['return'], isset($param['call']) && $param['call'] ? @array_reverse($return) : $return, '');
break;
解決方案