westdc-zf1/application/default/controllers/VisualController.php

112 lines
2.5 KiB
PHP
Raw Normal View History

<?php
use Westdc\Visual;
use Westdc\Metadata;
use Helpers\View as view;
class VisualController extends Zend_Controller_Action
{
function preDispatch()
{
$this->view->config = Zend_Registry::get('config');
$this->db=Zend_Registry::get('db');
$this->view->nav = array(
array('link'=>'/','title'=>'<i class="icon-home"></i>'),
array('link'=>'/data','title'=>$this->view->config->title->data),
);
if(view::User() === false)
{
view::Post($this,"请先登陆",'/account/login?href='.urlencode($_SERVER['REQUEST_URI']));
}
$this->uid = view::User('id');
}
function indexAction()
{
$record_type = $this->_getParam("dataset");
if(empty($record_type))
return true;
$sc = Factory::Bootstrap($record_type);
}
//********************************************************
/*
* dataAction() ajax获取数据
*
* param string $ac //请求的数据类型
* param string $dt //请求的数据来源(气象,水文)
*
* return view
*/
function dataAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
$uuid = $this->_getParam("uuid");
2014-12-22 06:36:23 +00:00
//$record_type = $this->_getParam("dataset");
$record_subset = $this->_getParam("subdataset");
$record = new Visual\Record($uuid,$record_subset);
//$record = Visual\Factory::Bootstrap($record_type);
if(!empty($record_subset))
{
$record->subset = $record_subset;
}
$data = $record();
$this->jsonexit($data);
return true;
}//dataAction() Ajax获取数据
//viewAction
public function viewAction()
{
$uuid = $this->_getParam('uuid');
if(empty($uuid) || \Helpers\Uuid::test($uuid) == false)
{
view::Post($this,"参数错误",-1);
return;
}
$visual = new Visual\Visual;
$this->view->data = $visual->getVisualVars($uuid);
if ($this->view->data['chartjs']=='highcharts') $this->_helper->viewRenderer('view-highcharts');
if(empty($this->view->data))
{
view::Post($this,"此数据不支持可视化",-1);
return;
}
$metadata = new Metadata\Metadata;
$this->view->info = $metadata->view($uuid);
}
/*
* jsonexit() 退出并返回json数据
*
* param array $data 要返回的JSON数据可以是任意数组
*
* return application/JSON
*/
public function jsonexit($data){
$this->getResponse()->setHeader('Content-Type', 'application/json')->appendBody(json_encode($data,JSON_NUMERIC_CHECK));
return true;
}//jsonexit() 退出并返回json数据
2014-05-21 09:26:15 +00:00
}