heihe view 中相关文献的调用修改为ajax分页方式

This commit is contained in:
Li Jianxuan 2011-11-24 03:27:25 +00:00
parent aaeb52e720
commit c1c799b9a1
2 changed files with 72 additions and 33 deletions

View File

@ -593,17 +593,6 @@ class DataController extends Zend_Controller_Action
$sql="select distinct(md.uuid),md.title from keyword kw left join normalmetadata md on kw.id=md.id where kw.keyword in (select k.keyword from keyword k left join metadata m on k.id=m.id where m.id=? and k.keytype='theme') and kw.id<>? limit 10";
//$sql="select distinct(md.uuid),md.title from keyword kw left join metadata md on kw.id=md.id where kw.keyword in (select k.keyword from keyword k left join metadata m on k.id=m.id where m.id=?) and kw.id<>? limit 10";
$this->view->related=$this->db->fetchAll($sql,array($id,$id));
//相关文献
$sql="select a.*,array_to_string(array(select author from knl_author t where t.item_id=a.item_id order by place asc),'; ') as author from knl_article a where (";
foreach($this->view->keys as $k)
{
if ($k->keytype=='theme')
{
$sql.=" a.title like '%".$k->keyword."%' or ";
}
}
$sql.=" 1<>1) order by a.ts_created desc limit 10";
$this->view->literature=$this->db->fetchAll($sql);
//数据附件
$sql = $this->db->quoteInto("select m.id,a.realname from mdattach m left join attachments a on m.id=a.id where m.uuid=?",$uuid);
$this->view->attachments = $this->db->fetchAll($sql);
@ -619,13 +608,65 @@ class DataController extends Zend_Controller_Action
}
}
function literatureAction(){
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$keyword=$this->_request->getParam("q");
$id = (int)$this->_request->getParam('id');
$sql="select m.id from normalmetadata m left join mdstatus s on m.uuid=s.uuid
left join thumbnail t on t.id=m.id left join geonetworkmetadata g on m.uuid=g.uuid where ";
if (empty($id)) {
$uuid = $this->_request->getParam('uuid');
if (empty($uuid)) exit("读取信息错误");
$where=$this->db->quoteInto('m.uuid = ?',$uuid);
} else {
$where=$this->db->quoteInto('m.id = ?',$id);
}
$sql.=$where;
$row=$this->db->fetchRow($sql);
if (!$row) exit("读取信息错误");
$id=$row['id'];
$keys=$this->db->fetchAll("select * from keyword where id=? order by keytype,ts_created",array($id));
$wheresql = array();
foreach ($keys as $k=>$v)
{
if($v['keytype']=="theme")
$wheresql[] = " a.title like '%".$v['keyword']."%' ";
}
$wheresql[] = " 1<>1 ";
$wheresql = join(" or ",$wheresql);
$sql="select a.*,array_to_string(array(select author from knl_author t where t.item_id=a.item_id order by place asc),'; ') as author from knl_article a where ($wheresql) order by a.ts_created desc";
$rows = $this->db->fetchAll($sql);
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(5);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('data/pagination_ajax.phtml');
$this->config = Zend_Registry::get('config');
if ($paginator)
{
foreach($paginator as $c)
{
$u=parse_url($c['url']);
if (@$u['host']=='hdl.handle.net') $c['url'] = $this->config->seekspace->handleurl.$u['path'];
print '<li><a target="_blank" href="'.$c['url'].'">'.$c['title'].'</a>【'.$c['author'].' '.$c['publisher'].' '.$c['ts_issued']."】</li>";
}
echo '<div class="paginator">'.$paginator.'</div>';
}
}//相关文献
function replace($string){
$patterns = array("/\"/i","/\'/i");
$replacements = array("","");
ksort($patterns);
ksort($replacements);
return preg_replace($patterns, $replacements, $string);
}
}//引号替换
function postcommentAction(){
$this->_helper->layout->disableLayout();
@ -708,7 +749,9 @@ class DataController extends Zend_Controller_Action
echo "出错了,请稍后再试";
exit();
}
}
}//ajax评论
/*
* 数据评论根据UUID读取
*/
@ -739,7 +782,7 @@ class DataController extends Zend_Controller_Action
}
echo '<div class="paginator">'.$paginator.'</div>';
}//else echo "<li>No comments.</li>";
}
}//评论列表
function creatform($datas) {
return '
@ -768,6 +811,7 @@ class DataController extends Zend_Controller_Action
<input type="hidden" name="submited" value="1" />
</form>';
}
/**
* 判断用户是否填写了申请信息
* @param string $uuid

View File

@ -254,25 +254,8 @@ endforeach;
</ul>
</div>
<?php endif; ?>
<?php if ($this->literature) : ?>
<div id="literature">
<ul>
<?php foreach ($this->literature as $r) :
$u=parse_url($r->url);
if (@$u['host']=='hdl.handle.net')
$url=$this->config->seekspace->handleurl.$u['path'];
else
$url=$r->url;
echo '<li>';
if ($url) echo '<a href="'.$url.'" target="_blank">';
echo $r->title;
if ($url) echo '</a>';
echo '【'.$r->author.'. '.$r->publisher.' '.$r->ts_issued.'】</li>';
?>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<div id="gsearch">
<ul id="searchctrl">
<li><a href="javascript:;" class="googlesearch">Google搜索</a></li>
@ -354,10 +337,22 @@ function ajaxpage(page){
url:url,
data:data,
success:function(html){$('#allcomments').html(html);},
beforeSend:function(){$('#allcomments').html('<img src="/images/loading.gif" />评论加载中');}
beforeSend:function(){$('#allcomments').html('<img src="/images/loading.gif" />加载中');}
});
};
ajaxpage(0);
//ajax literature
function literature(page){
$.ajax({
type:"GET",
url:"/data/literature/uuid/<?= $md->uuid; ?>",
data:'page='+page,
success:function(html){$('#literature').html('<ul>'+html+'</ul>');$('#literature .paginationControl a').attr('onclick',$('#literature .paginationControl a').attr('onclick').replace(/ajaxpage/i,"literature"));},
beforeSend:function(){$('#literature').html('<img src="/images/loading.gif" />加载中');}
});
};
literature(0);
function getFileList(){
var tw = ($(window).width() - $('#window-outter').width())/2;
$('#window-outter').css({'right':tw});