100 lines
3.8 KiB
PHP
100 lines
3.8 KiB
PHP
<?php if (!defined('BASEPATH')) {
|
|
exit('No direct script access allowed');
|
|
}
|
|
|
|
class screen_cards_model extends CI_Model
|
|
{
|
|
private $read_replica;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->read_replica = $this->load->database('savvy_replica', TRUE);
|
|
parent::__construct();
|
|
}
|
|
|
|
public function getQueryAll()
|
|
{
|
|
$query = "SELECT id, screen_name, trigger_id,
|
|
'<div class=\"onoffswitch\">
|
|
<input type=\"checkbox\" name=\"onoffswitch_'||id||'\" class=\"onoffswitch-checkbox\"
|
|
onchange=\"fnToggle('||id||', '||status||');\"
|
|
id=\"myonoffswitch_'||id||'\"'|| CASE WHEN status = 1 THEN 'checked' ELSE '' END || '>
|
|
<label class=\"onoffswitch-label\" for=\"myonoffswitch_'||id||'\">
|
|
<span class=\"onoffswitch-inner\"></span>
|
|
<span class=\"onoffswitch-switch\"></span>
|
|
</label>
|
|
</div>'
|
|
as status,
|
|
'<a class=\"btn btn-primary\" href=\"javascript:void(0);\" onclick=\"fnShowEdit('||id||')\">Edit</a>' ||
|
|
'<a class=\"btn btn-danger\" href=\"javascript:void(0);\" onclick=\"fnDelete('||id||')\">Delete</a>'
|
|
as action
|
|
FROM screen_cards ORDER By id asc";
|
|
|
|
return $query;
|
|
}
|
|
|
|
public function getById($id)
|
|
{
|
|
$this->read_replica->select('id, screen_name, trigger_id, status');
|
|
$this->read_replica->from('screen_cards');
|
|
$this->read_replica->where('id', $id);
|
|
$this->read_replica->order_by('id', 'asc');
|
|
return $this->read_replica->get()->row();
|
|
}
|
|
|
|
public function toggle($id, $cur_status)
|
|
{
|
|
//1. check
|
|
$this->read_replica->select('status');
|
|
$this->read_replica->from('screen_cards');
|
|
$this->read_replica->where('id', $id);
|
|
$db_status = $this->read_replica->get()->row('status');
|
|
$this->read_replica->reset_query();
|
|
//2. update
|
|
$new_status = $db_status == 1 ? 0 : 1;
|
|
$data = array(
|
|
'status' => $new_status,
|
|
);
|
|
$this->db->where('id', $id);
|
|
$rs = $this->db->update('screen_cards', $data);
|
|
return $rs;
|
|
}
|
|
|
|
public function create_or_update($data)
|
|
{
|
|
$is_exists = $this->is_exists($data['id'], $data['screen_name'], $data['trigger_id']);
|
|
if($is_exists){
|
|
return false;
|
|
}
|
|
if (empty($data['id'])) {
|
|
$data = array(
|
|
'screen_name' => $data['screen_name'],
|
|
'trigger_id' => $data['trigger_id'],
|
|
'status' => isset($data['status']) && $data['status'] == 1 ? 1 : 0,
|
|
);
|
|
$rs = $this->db->insert('screen_cards', $data);
|
|
} else {
|
|
$this->db->set('screen_name', $data['screen_name']);
|
|
$this->db->set('trigger_id', $data['trigger_id']);
|
|
$this->db->set('status', isset($data['status']) && $data['status'] == 1 ? 1 : 0);
|
|
$this->db->where('id', $data['id']);
|
|
$rs = $this->db->update('screen_cards');
|
|
}
|
|
return $rs;
|
|
}
|
|
|
|
public function delete($id)
|
|
{
|
|
$rs = $this->db->delete('screen_cards', array('id' => $id));
|
|
return $rs;
|
|
}
|
|
public function is_exists($id, $screen_name, $trigger_id){
|
|
if(!empty($id)){
|
|
$query = $this->read_replica->query('SELECT EXISTS(SELECT * FROM screen_cards WHERE id != ? AND screen_name = ? AND trigger_id = ?) AS check;', [$id, $screen_name, $trigger_id]);
|
|
}else{
|
|
$query = $this->read_replica->query('SELECT EXISTS(SELECT * FROM screen_cards WHERE screen_name = ? AND trigger_id = ?) AS check;', [$screen_name, $trigger_id]);
|
|
}
|
|
$rs = (array)$query->row();
|
|
return $rs['check'] == 't';
|
|
}
|
|
} |