diff --git a/application/default/controllers/ServiceController.php b/application/default/controllers/ServiceController.php index 2de371fb..020d1368 100644 --- a/application/default/controllers/ServiceController.php +++ b/application/default/controllers/ServiceController.php @@ -255,6 +255,95 @@ class ServiceController extends Zend_Controller_Action } + /* + * 转换元数据为WORD DOC格式 + */ + public function docAction() + { + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + $uuid=$this->_request->getParam('uuid'); + $review=$this->_request->getParam('review'); + if (!empty($uuid)) + { + $sql="select x.data,m.title,m.description,g.id,m.projection from xml x left join metadata m on m.id=x.id left join geonetworkmetadata g on g.uuid=m.uuid where m.uuid=".$this->db->quote($uuid); + $row=$this->db->fetchRow($sql); + $sql="select r.* from reference r left join mdref m on m.refid=r.id where m.uuid=?"; + $sql=$this->db->quoteInto($sql,$uuid); + $ref=$this->db->fetchAll($sql); + $reference='
',$abs); + $abs=str_replace("'","'",$abs);//not needed? + $id = $row['id']; + $thumburl=sprintf('%05d',floor(($id+0.1)/100)*100).'-'.sprintf('%05d',ceil(($id+0.1)/100)*100-1)."/".$id; + $xslt = new XSLTProcessor(); + $xslt->registerPHPFunctions(); + $xslt->setParameter('', 'thumburl', $thumburl); + $xslt->setParameter('', 'abstract', $abs); + $xslt->setParameter('','projection',$projection); + $xslt->setParameter('','reference',$reference); + $XSL = new DOMDocument(); + $XSL->load( '../data/doc.xsl', LIBXML_NOCDATA); + $xslt->importStylesheet($XSL); + $content=' +
'; + $content.='