DiscuzX/upload/source/plugin/cloudsearch/forumdisplay.inc.php

83 lines
3.0 KiB
PHP

<?php
/**
* [Discuz! X] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: forumdisplay.inc.php 29449 2012-04-12 08:31:54Z chenmengshu $
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
$page = $_G['page'];
if($_GET['cloudop'] == 'relatedthread') {
list($threadlist, $cloudData) = getCloudRelateThreads('tao', $_GET['keyword'], $page, $_G['tpp'], '', false);
include_once template('cloudsearch:forumdisplay');
$enKeyword = urlencode($_GET['keyword']);
$threaddiv = str_replace(array("\r", "\n"), "", tpl_cloudsearch_forumdisplay_relatedlist($threadlist, $enKeyword));
$multipage = str_replace(array("\r", "\n"), "", multi($cloudData['result']['total'], $_G['tpp'], $page, 'switchPage(', 0, 10, false, false, ');'));
$_GET['handlekey'] = 'getRelatedData';
showmessage('get_data_succ', dreferer(), array('threaddiv' => $threaddiv, 'page'=> $multipage), array('closetime' => '2', 'showmsg' => '1'));
} elseif($_GET['cloudop'] == 'relatelist') {
list($threadlist, $cloudData) = getCloudRelateThreads(($_GET['fid'] ? 'forum' : 'tao'), $_GET['keyword'], $_G['page'], ($_GET['fid'] ? $_G['tpp'] : 5), ($_GET['fid'] ? $_GET['fid'] : ''), false);
if ($_GET['fid']) {
loadcache('forums');
}
$searchHelper = Cloud::loadClass('Service_SearchHelper');
$searchparams = $searchHelper->makeSearchSignUrl();
$srchotquery = '';
if(!empty($searchparams['params'])) {
foreach($searchparams['params'] as $key => $value) {
$srchotquery .= '&' . $key . '=' . $value;
}
}
include template('common/header');
echo tpl_cloudsearch_relate_threadlist_js_output($threadlist, $_GET['fid'] ? urlencode(strip_tags($_G['cache']['forums'][$_GET['fid']]['name'])) : urlencode(strip_tags($_GET['keyword'])), $searchparams, $srchotquery);
include template('common/footer');
}
dexit();
function getCloudRelateThreads($api = 'tao', $keyword, $page, $tpp = 20, $excludeForumIds = '', $cache = false) {
global $_G;
$threadlist = array();
$searchHelper = Cloud::loadClass('Service_SearchHelper');
if($api != 'tao') {
$cloudData = $searchHelper->getRelatedThreads($excludeForumIds);
} else {
$cloudData = $searchHelper->getRelatedThreadsTao($keyword, $page, $tpp, $disAd, $of, $ot, $cache, $excludeForumIds);
}
if($cloudData['result']['data']) {
foreach ($cloudData['result']['ad']['content'] as $sAdv) {
$threadlist[] = array('icon' => (string)$cloudData['result']['ad']['icon']) + $sAdv;
}
foreach ($cloudData['result']['data'] as $sPost) {
$threadlist[] = $sPost;
}
} else {
return null;
}
loadcache('forums');
foreach($threadlist as $curtid=>&$curvalue) {
$curvalue['pForumName'] = $_G['cache']['forums'][$curvalue['pForumId']]['name'];
$curvalue['istoday'] = strtotime($curvalue['pPosted']) > $todaytime ? 1 : 0;
$curvalue['dateline'] = $curvalue['pPosted'];
}
return array($threadlist, $cloudData);
}
?>