File: /www/wwwroot/oa.sanjiangapp.com/app/oa/block/control.php
<?php
/**
* The control file for block module of ZDOO.
*
* @copyright Copyright 2009-2018 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @version $Id$
* @link http://www.zdoo.com
*/
class block extends control
{
/**
* Block Index Page.
*
* @access public
* @return void
*/
public function index()
{
$lang = $this->get->lang;
$this->app->setClientLang($lang);
$this->app->loadLang('block');
$mode = strtolower($this->get->mode);
if($mode == 'getblocklist')
{
echo $this->block->getAvailableBlocks();
}
elseif($mode == 'getblockform')
{
$code = strtolower($this->get->blockid);
$func = 'get' . ucfirst($code) . 'Params';
echo $this->block->$func();
}
elseif($mode == 'getblockdata')
{
$code = strtolower($this->get->blockid);
$func = 'print' . ucfirst($code) . 'Block';
$this->$func();
}
}
/**
* Block Admin Page.
*
* @param int $id
* @param string $type == block field in mysql
* @access public
* @return void
*/
public function admin($id = 0, $type = '')
{
$this->app->loadLang('block', 'sys');
if($_POST)
{
$this->block->save($id, 'system', 'oa');
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::geterror()));
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->server->http_referer));
}
$block = $this->block->getByID($id, 'oa');
$type = $type ? $type : ($block ? $block->block : '');
$blocks = json_decode($this->block->getAvailableBlocks(), true);
$this->view->blocks = array_merge(array(''), $blocks);
$title = $id == 0 ? $this->lang->block->createBlock : $this->lang->block->editBlock;
$this->view->title = $title;
$this->view->params = $type ? json_decode($this->block->{'get' . ucfirst($type) . 'Params'}(), true) : array();
$this->view->type = $type;
$this->view->block = $block;
$this->view->id = $id;
$this->view->modalWidth = 384;
$this->display();
}
/**
* Sort block.
*
* @param string $orders
* @access public
* @return void
*/
public function sort($orders)
{
$this->locate($this->createLink('sys.block', 'sort', "orders=$orders&app=oa"));
}
/**
* Resize block
*
* @param int $id
* @param string $type
* @param string $data
* @access public
* @return void
*/
public function resize($id, $type, $data)
{
$this->locate($this->createLink('sys.block', 'resize', "id=$id&type=$type&data=$data"));
}
/**
* Delete block.
*
* @param int $id
* @access public
* @return void
*/
public function delete($id)
{
$this->locate($this->createLink('sys.block', 'delete', "id=$id"));
}
/**
* Print announce block.
*
* @access public
* @return void
*/
public function printAnnounceBlock()
{
$this->lang->announce = new stdclass();
$this->app->loadLang('announce', 'oa');
$this->app->loadLang('article');
$this->processParams();
$this->view->announces = $this->dao->select('*')->from(TABLE_ARTICLE)
->where('type')->eq('announce')
->orderBy('createdDate desc')
->limit($this->params->num)
->fetchAll('id');
$this->view->users = $this->loadModel('user')->getPairs();
$this->display();
}
/**
* Print attend block.
*
* @access public
* @return void
*/
public function printAttendBlock()
{
$this->loadModel('attend', 'oa');
$date = date('Y-m-d');
$dateTime = strtotime($date);
if($this->config->attend->workingDays > 7)
{
$startDate = date('w', $dateTime) == 0 ? date('Y-m-d', $dateTime) : date('Y-m-d', strtotime("last Sunday $date"));
$endDate = date('Y-m-d', strtotime("next Saturday $startDate"));
}
else
{
$startDate = date('w', $dateTime) == 1 ? date('Y-m-d', $dateTime) : date('Y-m-d', strtotime("last Monday $date"));
$endDate = date('Y-m-d', strtotime("next Sunday $startDate"));
}
$attends = $this->attend->getByAccount($this->app->user->account, $startDate, $endDate);
if(is_array($attends))
{
/* Check reason is lieu . Task#3934 */
foreach($attends as $attend)
{
if($attend->reason == 'lieu') $attend->status = 'lieu';
}
}
$dateLimit = array();
$dateLimit['begin'] = $startDate;
$dateLimit['end'] = $endDate;
$todos = $this->loadModel('todo')->getList('self', $this->app->user->account, $dateLimit, $status = 'undone');
$this->processParams();
$this->view->attends = $attends;
$this->view->todos = $todos;
$this->view->date = $date;
$this->view->startDate = $startDate;
$this->view->endDate = $endDate;
$this->display();
}
/**
* Process params.
*
* @access public
* @return void
*/
public function processParams()
{
$params = $this->get->param;
$this->params = json_decode(base64_decode($params));
$this->view->sso = base64_decode($this->get->sso);
$this->view->code = $this->get->blockid;
}
}