增加了通用的google ajax搜索接口

This commit is contained in:
Li Jianxuan 2011-11-14 02:30:23 +00:00
parent 60e1444c9e
commit 4b5afe8ed9
1 changed files with 38 additions and 10 deletions

View File

@ -741,21 +741,49 @@ class ServiceController extends Zend_Controller_Action
throw new Exception('发生严重意外!您确认链接正确?');
}
}
}
function mdjsonAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$num=(int)$this->_request->getParam('num');
$source=$this->_request->getParam('source');
if (empty($num)) $num=3;
$sql="select m.uuid,m.title,m.id,substring(m.description from 0 for 200) as description from normalmetadata m left join thumbnail t on m.id=t.id where ";
if (!empty($source))
$sql.=$this->db->quoteInto(" m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code=?) and ",$source);
$num=(int)$this->_request->getParam('num');
$source=$this->_request->getParam('source');
if (empty($num)) $num=3;
$sql="select m.uuid,m.title,m.id,substring(m.description from 0 for 200) as description from normalmetadata m left join thumbnail t on m.id=t.id where ";
if (!empty($source))
$sql.=$this->db->quoteInto(" m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code=?) and ",$source);
$sql.=" length(t.data)>2 order by random() limit $num";
$rows=$this->db->fetchAll($sql);
$rows=$this->db->fetchAll($sql);
echo Zend_Json::encode($rows);
}
}
function googlesearchAction(){
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$q = $this->_request->getParam('q');
$rez = $this->google_search_api(array(
'q' => $q, // 查询内容
'key' => $this->config->google->maps->api,
'userip' => $_SERVER['REMOTE_ADDR'],
));
print_r($rez);
exit();
}
function google_search_api($args, $referer = 'http://westdc.westgis.ac.cn/', $endpoint = 'web'){
$url = "http://ajax.googleapis.com/ajax/services/search/".$endpoint;
if ( !array_key_exists('v', $args) )
$args['v'] = '1.0';
$url .= '?'.http_build_query($args, '', '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $referer);
$body = curl_exec($ch);
curl_close($ch);
return $body;
}
}