public
function
ajaxLists() {
extract(
$_GET
);
$page
=
intval
(
$_GET
['p']);
$prefix
= C('DB_PREFIX');
$collect
=
$prefix
. 'collect';
$resource
=
$prefix
. 'resource';
if
(
$keyword
) {
$arr
= preg_split('/ /',
$keyword
);
foreach
(
$arr
as
$value
) {
$id
= A('Home/Papers')->trunWordToId(
array
(
$value
));
if
(
$id
) {
$where
['resource.rta_id'][] =
array
('LIKE', '%,' .
$id
. ',%');
}
$where
['resource.re_title'][] =
array
('LIKE', '%' .
$value
. '%');
}
if
(
$where
['resource.rta_id']) {
$where
['resource.rta_id'][] = 'AND';
}
if
(
$where
['resource.re_title']) {
$where
['resource.re_title'][] = 'OR';
}
if
(
$where
['resource.re_title'] &&
$where
['resource.rta_id']) {
$where
['_logic'] = 'OR';
}
}
if
(
$where
) {
$map
['_complex'] =
$where
;
}
$map
['collect.a_id'] =
$this
->authInfo['a_id'];
$map
['_string'] = 'collect.col_object_id = resource.re_id';
$count
= M()->table(
"$collect collect, $resource resource"
)->where(
$map
)->
count
();
$regNum
=
ceil
(
$count
/6);
$page
=
$page
>
$regNum
?
$regNum
:
$page
;
import(
"@.ORG.Util.AjaxPage"
);
$Page
=
new
AjaxPage(
$count
, 6);
$list
['page'] = trim(
$Page
->show());
$list
['list'] = M()->table(
"$collect collect, $resource resource"
)->where(
$map
)->order('col_id DESC')->limit(
$Page
->firstRow . ',' .
$Page
->listRows)->field('collect.col_id,collect.col_object_id,resource.re_id,resource.re_title,resource.re_created,resource.re_collect_count,resource.re_score_count,resource.re_score_num,resource.rta_id')->select();
$wheree
['rta_id'] =
array
('IN', trim(
str_replace
(',,', ',', implode('', getValueByField(
$list
['list'], 'rta_id'))), ','));
$tag
= setArrayByField(M('ResourceTag')->where(
$wheree
)->field('rta_id,rta_title')->select(), 'rta_id');
foreach
(
$list
['list']
as
$key
=> &
$value
) {
$str
= '';
foreach
(
$tag
as
$k
=>
$v
) {
if
(
strpos
(
$value
['rta_id'], ',' .
$k
. ',') !== FALSE) {
$str
.= ' | ' .
$v
['rta_title'];
}
$value
['rta_title'] = trim(
$str
, ' |');
}
if
(
$keyword
) {
foreach
(
$arr
as
$vv
) {
if
(
strpos
(
$value
['re_title'],
$vv
) !== FALSE) {
$value
['re_title'] =
str_replace
(
$vv
, '<font color=\'red\'>' .
$vv
. '</font>',
$value
['re_title']);
}
if
(
strpos
(
$value
['rta_title'],
$vv
) !== FALSE) {
$value
['rta_title'] =
str_replace
(
$vv
, '<font color=\'red\'>' .
$vv
. '</font>',
$value
['rta_title']);
}
}
}
$value
['re_created'] =
date
('Y-m-d',
$value
['re_created']);
}
echo
json_encode(
$list
);
}