zoneminder/web/app/Controller/AppController.php

90 lines
2.8 KiB
PHP

<?php
/**
* Application level Controller
*
* This file is application-wide controller file. You can put all
* application-wide controller-related methods here.
*
* PHP 5
*
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @package app.Controller
* @since CakePHP(tm) v 0.2.9
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
App::uses('Controller', 'Controller');
/**
* Application Controller
*
* Add your application-wide methods in the class below, your controllers
* will inherit them.
*
* @package app.Controller
* @link http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
*/
class AppController extends Controller {
public $helpers = array(
'Session',
'Js',
'Html' => array('className' => 'BoostCake.BoostCakeHtml'),
'Form' => array('className' => 'BoostCake.BoostCakeForm'),
'Paginator' => array('className' => 'BoostCake.BoostCakePaginator'),
);
public $components = array('Session', 'RequestHandler');
public function beforeFilter() {
parent::beforeFilter();
$this->loadModel('Config');
$this->loadModel('AppModel');
$this->Config->writeConfig();
if ($this->AppModel->daemonStatus()) {
$this->set('daemonStatusHtml', ('<span class="alert alert-success">Running</span>'));
} else {
$this->set('daemonStatusHtml', ('<span class="alert alert-danger">Stopped</span>'));
}
$this->set('daemonStatus', $this->AppModel->daemonStatus());
if (Configure::read('ZM_DYN_LAST_VERSION') > Configure::read('ZM_VERSION')) {
$zmVersion = '<span class="label label-info">' . Configure::read('ZM_VERSION') . '</span>';
} else {
$zmVersion = '<span class="label label-success">' . Configure::read('ZM_VERSION') . '</span>';
}
$this->set('systemLoad', $this->AppModel->getSystemLoad());
$this->set('diskSpace', $this->AppModel->getDiskSpace());
$this->set('zmVersion', $zmVersion);
}
function extractNamedParams($mandatory, $optional = array()) {
$params = $this->params['named'];
if(empty($params)) {
return false;
}
$mandatory = array_flip($mandatory);
$all_named_keys = array_merge($mandatory, $optional);
$valid = array_intersect_key($params, $all_named_keys);
$output = array_merge($optional, $valid);
$diff = array_diff_key($all_named_keys, $output);
if (empty($diff)) {
return $output;
} else {
return false;
}
}
}