} } } } if ($chid) { $filterstr .= ($filterstr ? '&' : '') . "chid={$chid}"; $customtable = "archives_{$chid}"; $fromstr .= ' LEFT JOIN {$tblprefix}' . $customtable . ' AS c ON (a.aid=c.aid)'; $wherestr .= ($wherestr ? ' AND ' : '') . "a.chid='{$chid}'"; $a_field = new cls_field(); $fields = read_cache('fields', $chid); foreach ($fields as $k => $field) { if ($field['available'] && $field['issearch']) { $a_field->init(); $a_field->field = read_cache('field', $chid, $k); $a_field->deal_search($a_field->field['tbl'] == 'main' ? "a." : "c."); $wherestr .= ($wherestr && $a_field->searchstr ? ' AND ' : '') . $a_field->searchstr; $a_field->filterstr && ($filterstr .= ($filterstr ? '&' : '') . $a_field->filterstr); } } unset($a_field); } if (!empty($indays)) { $filterstr .= ($filterstr ? '&' : '') . "indays={$indays}"; //$wherestr .= ($wherestr ? ' AND ' : '')."a.createdate>'".($timestamp - 86400 * $indays)."'"; $wherestr .= ($wherestr ? ' AND ' : '') . "a.createdate>UNIX_TIMESTAMP()-86400*{$indays}"; } if (!empty($outdays)) { $filterstr .= ($filterstr ? '&' : '') . "outdays={$outdays}"; //$wherestr .= ($wherestr ? ' AND ' : '')."a.createdate<'".($timestamp - 86400 * $outdays)."'"; $wherestr .= ($wherestr ? ' AND ' : '') . "a.createdate<UNIX_TIMESTAMP()-86400*{$outdays}";
$_da['outdays'] = $outdays; if ($outdays) { $wherestr .= " AND ma.createdate<'" . ($timestamp - 86400 * $outdays) . "'"; $filterstr .= ($filterstr ? '&' : '') . "outdays={$outdays}"; } //处理mchid信息 $_da['mchid'] = 0; $_da['mchannel'] = ''; $a_field = new cls_field(); $fields = read_cache('mafields', $matid); foreach ($fields as $k => $field) { $field = read_cache('mafield', $matid, $k); if ($field['available'] && $field['issearch']) { $a_field->init(); $a_field->field = $field; $a_field->deal_search('ma.'); $wherestr .= $a_field->searchstr ? ' AND ' . $a_field->searchstr : ''; $a_field->filterstr && ($filterstr .= ($filterstr ? '&' : '') . $a_field->filterstr); if ($field['datatype'] == 'map') { foreach (array('_0', '_1', 'diff') as $var) { $_da[$k . $var] = ${$k . $var}; } } elseif ($field['issearch'] == 1 || $field['datatype'] == 'text') { $_da[$k] = stripslashes(${$k}); } elseif (in_array($field['datatype'], array('select', 'mselect'))) { $_da[$k . 'str'] = ${$k . 'str'}; } else { foreach (array('from', 'to') as $var) { $_da[$k . $var] = ${$k . $var}; } }
} else { //处理mchid信息 $mchannel = $mchannels[$mchid]; $item['mchid'] = $mchid; $item['mchannel'] = $mchannel['cname']; $wherestr .= " AND m.mchid='{$mchid}'"; $filterstr .= ($filterstr ? '&' : '') . "mchid=" . $mchid; $fromstr .= " LEFT JOIN {$tblprefix}members_{$mchid} AS c ON (c.mid=m.mid)"; $a_field = new cls_field(); $fields = read_cache('mfields', $mchid); foreach ($fields as $k => $field) { $field = read_cache('mfield', $mchid, $k); if ($field['available'] && !$field['issystem'] && $field['issearch']) { $a_field->init(1); $a_field->field = $field; $a_field->deal_search($a_field->field['tbl'] == 'sub' ? 's.' : 'c.'); $wherestr .= $a_field->searchstr ? ' AND ' . $a_field->searchstr : ''; $a_field->filterstr && ($filterstr .= ($filterstr ? '&' : '') . $a_field->filterstr); if ($field['issearch'] == 1 || $field['datatype'] == 'text') { $item[$k] = stripslashes(${$k}); } elseif (in_array($field['datatype'], array('select', 'mselect'))) { $item[$k . 'str'] = ${$k . 'str'}; } else { $item[$k . 'from'] = ${$k . 'from'}; $item[$k . 'to'] = ${$k . 'to'}; } } } unset($a_field); } //处理排序项