Файл: severus/application/models/services_model.php
Строк: 90
<?php
/**
* Severus Server Monitor
*
* Monitor all your server from one location
*
* @package Severus Server Monitor
* @author Coderior
* @copyright Copyright (c) 2014 coderior.com
* @link http://coderior.com
* @since Version 1.0
*/
// --------------------------------------------------------------------
/**
* services_model class
*
* Model for the services controller
*
* @package Severus Server Monitor
* @subpackage Models
* @author Coderior
*/
class services_model extends CI_Model
{
public function __construct()
{
parent::__construct();
}
// --------------------------------------------------------------------
/**
* Get all services that are active
*
* @access public
* @return string returns object if there are results and false if there aren't
*/
public function get_all_services()
{
$query = $this->db->query("SELECT * FROM services WHERE service_active = '1'");
if ($query->num_rows() > 0) {
$result = $query->result();
return $result;
} else return false;
}
// --------------------------------------------------------------------
/**
* Link services to a specific server
*
* @access public
* @param int server_id for the specific server
*/
public function set_services($server_id)
{
$this->empty_services($server_id);
$this->add_services($server_id);
$this->session->set_flashdata('message', 'Services updated');
}
// --------------------------------------------------------------------
/**
* Remove all services from a server (probably as part of updating the services)
*
* @access private
* @param int server_id for the specific server
*/
private function empty_services($server_id)
{
$this->db->where('lnk_server_id', $server_id);
$this->db->delete('servers_services');
}
// --------------------------------------------------------------------
/**
* Add services to specific server
*
* @access private
* @param int server_id for the specific server
* @post post post data containing an array of services for a server
*/
private function add_services($server_id)
{
$active = $this->input->post('active');
$service = $this->input->post('lnk_service_port');
$script = $this->input->post('lnk_service_script');
foreach ($active as $a => $v) {
if(isset($script[$a]) && !empty($script[$a])) {
$p = NULL;
$s = $script[$a];
} else {
$p = $service[$a];
$s = NULL;
}
$data[] = array("lnk_server_id" => $server_id, "lnk_service_id" => $a, "lnk_service_script" => $s, "lnk_service_port" => $p);
}
//die(print_r($data));
$this->db->insert_batch('servers_services', $data);
}
public function remove_server_service($server_id, $service_id)
{
$data = array("lnk_server_id" => $server_id, "lnk_service_id" => $service_id);
$this->db->where($data);
$this->db->delete('servers_services');
}
public function get_services($server_id)
{
$query = $this->db->query("SELECT * FROM servers_services LEFT JOIN services ON lnk_service_id = service_id WHERE lnk_server_id = '".$server_id."' AND service_active = '1'");
if ($query->num_rows() > 0) {
$result = $query->result();
foreach ($result as $res) {
if($res->service_advanced === "1") $array["services"][$res->service_name] = $res->lnk_service_script;
else $array["services"][$res->service_name] = $res->lnk_service_port;
}
return $array;
} else return false;
}
public function add_service()
{
$data = array("service_name" => $this->input->post("service_name"), "service_advanced" => "0", "service_default_port" => $this->input->post("service_default_port"), "service_active" => "1");
$this->db->insert('services', $data);
}
public function add_advanced_service()
{
$data = array("service_name" => $this->input->post("service_name"), "service_advanced" => "1", "service_script" => $this->input->post("service_script"), "service_active" => "1");
$this->db->insert('services', $data);
}
public function delete_service($id)
{
$this->db->where('service_id', $id);
$this->db->delete('services');
}
}