372 lines
13 KiB
PHP
372 lines
13 KiB
PHP
<?php
|
|
|
|
use Gelf\Transport;
|
|
use Monolog\Level;
|
|
use Monolog\Logger;
|
|
use Monolog\Handler\GelfHandler;
|
|
|
|
class WRB_Controller extends CI_Controller {
|
|
|
|
var $template = array(
|
|
'table_open' => "<table class='table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3'>",
|
|
'thead_open' => '<thead class=\'bg-indigo\'>',
|
|
'thead_close' => '</thead>',
|
|
'heading_row_start' => '<tr>',
|
|
'heading_row_end' => '</tr>',
|
|
'heading_cell_start' => '<th>',
|
|
'heading_cell_end' => '</th>',
|
|
'tbody_open' => '<tbody>',
|
|
'tbody_close' => '</tbody>',
|
|
'row_start' => '<tr>',
|
|
'row_end' => '</tr>',
|
|
'cell_start' => '<td>',
|
|
'cell_end' => '</td>',
|
|
'row_alt_start' => '<tr>',
|
|
'row_alt_end' => '</tr>',
|
|
'cell_alt_start' => '<td>',
|
|
'cell_alt_end' => '</td>',
|
|
'table_close' => '</table>'
|
|
);
|
|
|
|
var $template_nohead = array(
|
|
'table_open' => "<table class='table table-striped table-hover table-bordered table-condensed'>",
|
|
'thead_open' => '<thead>',
|
|
'thead_close' => '</thead>',
|
|
'heading_row_start' => '<tr>',
|
|
'heading_row_end' => '</tr>',
|
|
'heading_cell_start' => '<th>',
|
|
'heading_cell_end' => '</th>',
|
|
'tbody_open' => '<tbody>',
|
|
'tbody_close' => '</tbody>',
|
|
'row_start' => '<tr>',
|
|
'row_end' => '</tr>',
|
|
'cell_start' => '<td>',
|
|
'cell_end' => '</td>',
|
|
'row_alt_start' => '<tr>',
|
|
'row_alt_end' => '</tr>',
|
|
'cell_alt_start' => '<td>',
|
|
'cell_alt_end' => '</td>',
|
|
'table_close' => '</table>'
|
|
);
|
|
|
|
public $data = array();
|
|
|
|
var $logger;
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
|
|
$this->load->library(array('session', 'lib_login'));
|
|
|
|
// Create the logger
|
|
$this->logger = new Logger($_SERVER['SERVER_ADDR']);
|
|
|
|
// Create Graylog GELF TCP transport
|
|
$transport = new Gelf\Transport\TcpTransport("10.0.0.112",12201);
|
|
|
|
// Create GELF handler
|
|
$handler = new GelfHandler(new Gelf\Publisher($transport));
|
|
|
|
// Now add GELF handler to logger
|
|
$this->logger->pushHandler($handler);
|
|
}
|
|
|
|
public function paginationConfig($urlSeg,$perPage,$numRows,$linkPath,$numLnk){
|
|
$config = array();
|
|
$config["total_rows"] =$numRows;
|
|
$config["base_url"] = base_url() . $linkPath;
|
|
$config["per_page"] = $perPage;
|
|
$config["uri_segment"] = $urlSeg;
|
|
$config["num_links"] = $numLnk;
|
|
|
|
$config['full_tag_open'] = "<ul class='pagination'>";
|
|
$config['full_tag_close'] = "</ul>";
|
|
$config['num_tag_open'] = '<li class="page-item">';
|
|
$config['num_tag_close'] = '</li>';
|
|
$config['cur_tag_open'] = "<li class='page-item active'><a href='#'>";
|
|
$config['cur_tag_close'] = "<span class='sr-only'></span></a></li>";
|
|
$config['next_tag_open'] = '<li class="page-item">';
|
|
$config['next_tagl_close'] = "</li>";
|
|
$config['prev_tag_open'] = '<li class="page-item">';
|
|
$config['prev_tagl_close'] = "</li>";
|
|
$config['first_tag_open'] = '<li class="page-item">';
|
|
$config['first_tagl_close'] = "</li>";
|
|
$config['last_tag_open'] = '<li class="page-item">';
|
|
$config['last_tagl_close'] = "</li>";
|
|
return $config;
|
|
}
|
|
|
|
public function wrenchboard_api($in, $out) {
|
|
$this->load->model('backend_model');
|
|
// $out = array();
|
|
return $this->backend_model->wrenchboard_api($in, $out);
|
|
}
|
|
|
|
protected function smart_htmlspecialchars($str) {
|
|
if (substr($str, 0, 1) == '<')
|
|
return $str;
|
|
return htmlspecialchars($str);
|
|
}
|
|
|
|
protected function getSessionArray() {
|
|
$data['username'] = $_SESSION['username']; // = $this->input->post('username');
|
|
$data['name'] = $_SESSION['name']; // = $this->input->post('username');
|
|
$data['firstname'] = $_SESSION['firstname']; // = $ret->firstname;
|
|
$data['lastname'] = $_SESSION['lastname']; // = $ret->lastname;
|
|
$data['email'] = $_SESSION['email']; // = $ret->email;
|
|
$data['member_id'] = $_SESSION['member_id'];
|
|
|
|
$this->load->model('dash_model');
|
|
$out = $this->dash_model->getDashData($data);
|
|
$data['active_task'] = $out['active_task'];
|
|
$data['active_pass_due'] = $out['active_pass_due'];
|
|
$data['new_message'] = $out['new_message'];
|
|
$_SESSION["active_offers_count"] = $out['active_offers_count'];
|
|
|
|
$this->load->model('account_model');
|
|
$data['wallet'] = $this->account_model->getUserWallet($_SESSION['member_id'],$currency='NAIRA'); // $out['current_balance'];
|
|
$data['current_balance'] = $data['wallet'][0]['current_balance'];
|
|
|
|
|
|
$data = $_SESSION['secure_data'];
|
|
$data['member_id'] = $_SESSION['member_id']; // = $ret->email;
|
|
|
|
$this->refreshAccountDetail($_SESSION['member_id']);
|
|
return $data;
|
|
}
|
|
|
|
|
|
protected function logUser($mlog) {
|
|
//
|
|
$data['action'] = WRENCHBOARD_LOG_MEMBER;
|
|
$data['mlog'] = $mlog;
|
|
$data['member_id'] = $_SESSION['member_id'];
|
|
$this->load->model('backend_model');
|
|
$out = array();
|
|
$res = $this->backend_model->wrenchboard_api($data, $out);
|
|
|
|
$this->load->model('userlog_model');
|
|
$xy["member_id"] = $_SESSION['member_id'];
|
|
$_SESSION['member_log'] = $this->userlog_model->loadUserLog($xy);
|
|
// print_r($out);
|
|
}
|
|
protected function myMessagesSnapshot() {
|
|
|
|
$str = "<li class='media'>
|
|
<div class='media-left'>
|
|
<img src='/assets/images/placeholder.jpg' class='img-circle img-sm' alt=''>
|
|
</div>
|
|
|
|
<div class='media-body'>
|
|
<a href='#' class='media-heading'>
|
|
<span class='text-semibold'>System</span>
|
|
<span class='media-annotation pull-right'>00:00</span>
|
|
</a>
|
|
|
|
<span class='text-muted'>You have no pending messages</span>
|
|
</div>
|
|
</li>";
|
|
|
|
|
|
return $str;
|
|
/*
|
|
<li class="media">
|
|
<div class="media-left">
|
|
<img src="/assets/images/placeholder.jpg" class="img-circle img-sm" alt="">
|
|
<span class="badge bg-danger-400 media-badge">5</span>
|
|
</div>
|
|
|
|
<div class="media-body">
|
|
<a href="#" class="media-heading">
|
|
<span class="text-semibold">James Alexander</span>
|
|
<span class="media-annotation pull-right">04:58</span>
|
|
</a>
|
|
|
|
<span class="text-muted">who knows, maybe that would be the best thing for me...</span>
|
|
</div>
|
|
</li>
|
|
|
|
<li class="media">
|
|
<div class="media-left">
|
|
<img src="/assets/images/placeholder.jpg" class="img-circle img-sm" alt="">
|
|
<span class="badge bg-danger-400 media-badge">4</span>
|
|
</div>
|
|
|
|
<div class="media-body">
|
|
<a href="#" class="media-heading">
|
|
<span class="text-semibold">Margo Baker</span>
|
|
<span class="media-annotation pull-right">12:16</span>
|
|
</a>
|
|
|
|
<span class="text-muted">That was something he was unable to do because...</span>
|
|
</div>
|
|
</li>
|
|
*
|
|
*/
|
|
}
|
|
|
|
|
|
protected function sql_escape_func($inp) {
|
|
if (is_array($inp)) {
|
|
return array_map(__METHOD__, $inp);
|
|
}
|
|
|
|
|
|
if (!empty($inp) && is_string($inp)) {
|
|
return str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a"), array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'), $inp);
|
|
}
|
|
|
|
return $inp;
|
|
}
|
|
|
|
protected function findOffers($email) {
|
|
$this->load->model('offers_model');
|
|
$this->offers_model->attachOffers($email);
|
|
}
|
|
|
|
protected function home1($pagename='') {
|
|
$data['sitename'] = 'home';
|
|
$res = $this->getExtJobList();
|
|
|
|
$data['market_data'] = $res;
|
|
|
|
$data['why_list'] = $this->getExtWhyList();
|
|
|
|
|
|
//$this->load->view('templates/header_boxed', $data);
|
|
//
|
|
$this->load->view('home/view_index1', $data);
|
|
|
|
|
|
//$this->load->view('users/view_external_footer');
|
|
}
|
|
|
|
protected function home2($pagename = '') {
|
|
$data['sitename'] = 'home';
|
|
$res = $this->getExtJobList();
|
|
|
|
$data['market_data'] = $res;
|
|
|
|
$data['why_list'] = $this->getExtWhyList();
|
|
|
|
$this->load->view('home2/header', $data);
|
|
if ($pagename == '') {
|
|
$this->load->view('home2/view_index2', $data);
|
|
} else {
|
|
$this->load->view($pagename, $data);
|
|
}
|
|
$this->load->view('home2/footer', $data);
|
|
}
|
|
|
|
protected function readFixedText($text_key) {
|
|
|
|
$page_key = trim($text_key);
|
|
$finaltxt = "";
|
|
if ($page_key != '') {
|
|
$mysql = "SELECT * FROM general_text WHERE page_key='$page_key'";
|
|
$query = $this->db->query($mysql);
|
|
if ($query->num_rows() == 0) {
|
|
$finaltxt = "";
|
|
} else {
|
|
$row = $query->row();
|
|
$finaltxt = $row->txt_detail;
|
|
}
|
|
}
|
|
|
|
return $finaltxt;
|
|
}
|
|
|
|
protected function libraryContent($content_id) {
|
|
$out = array();
|
|
|
|
$query = $this->db->query("SELECT * FROM library WHERE id = " . $content_id);
|
|
if ($query->num_rows() > 0) {
|
|
$row = $query->row();
|
|
|
|
$out['title'] = $row->title;
|
|
$out['description'] = $row->description;
|
|
$out['detail'] = $row->detail;
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
protected function getExtJobList() {
|
|
|
|
$mysql = "SELECT j.title,j.description,m.job_id,m.expire "
|
|
. "FROM members_jobs_offer m "
|
|
. "LEFT JOIN members_jobs j ON j.id=m.job_id "
|
|
. "WHERE m.status = 1 AND m.client_id=0 "
|
|
. "AND m.expire IS NOT NULL "
|
|
. "AND m.public_view = 1 "
|
|
. "ORDER BY m.expire DESC LIMIT 6";
|
|
$query = $this->db->query($mysql);
|
|
return $query->result();
|
|
}
|
|
|
|
protected function getExtWhyList() {
|
|
|
|
$mysql = "SELECT * FROM why ORDER BY flags DESC";
|
|
$query = $this->db->query($mysql);
|
|
return $query->result();
|
|
}
|
|
|
|
protected function getClientJobStats($client_id) {
|
|
$out = array();
|
|
$out['total_jobs_completed'] = $out['total_jobs_active'] = $data['total_jobs_uncompleted'] = 0;
|
|
$out['total_pending_offers'] = 0;
|
|
|
|
$mysql = " SELECT count(*) AS total_jobs_completed FROM members_jobs_contract WHERE client_id =$client_id AND status = 5";
|
|
$q = $this->db->query($mysql);
|
|
if ($q->num_rows() > 0) {
|
|
$out['total_jobs_completed'] = $q->row()->total_jobs_completed;
|
|
}
|
|
|
|
|
|
$mysql = " SELECT count(*) AS total_jobs_active FROM members_jobs_contract WHERE client_id =$client_id AND status IN (1,2)";
|
|
$q = $this->db->query($mysql);
|
|
if ($q->num_rows() > 0) {
|
|
$out['total_jobs_active'] = $q->row()->total_jobs_active;
|
|
}
|
|
|
|
|
|
$mysql = " SELECT count(*) AS total_jobs_uncompleted FROM members_jobs_contract WHERE client_id =$client_id AND status NOT IN (1,2,5)";
|
|
$q = $this->db->query($mysql);
|
|
if ($q->num_rows() > 0) {
|
|
$out['total_jobs_uncompleted'] = $q->row()->total_jobs_uncompleted;
|
|
}
|
|
|
|
$mysql = " SELECT count(*) AS total_pending_offers FROM members_jobs_offer WHERE client_id =$client_id AND status=1";
|
|
$q = $this->db->query($mysql);
|
|
if ($q->num_rows() > 0) {
|
|
$out['total_pending_offers'] = $q->row()->total_pending_offers;
|
|
}
|
|
|
|
|
|
|
|
|
|
return $out; //['escrow_c_offer'] + $out['escrow_balance'];
|
|
}
|
|
|
|
protected function renderMobileSecurePage($mobile_page_name, $data) {
|
|
$this->load->view('mobile/secure/mobile_secure_header', $data);
|
|
$this->load->view('mobile/secure/' . $mobile_page_name, $data);
|
|
$this->load->view('mobile/secure/mobile_secure_footer', $data);
|
|
}
|
|
|
|
/*
|
|
* wrenchboard=> \d library
|
|
Table "public.library"
|
|
Column | Type | Modifiers
|
|
-------------+-----------------------------+------------------------------------------------------
|
|
id | integer | not null default nextval('library_id_seq'::regclass)
|
|
title | character varying(150) | not null
|
|
description | character varying(500) | not null
|
|
detail | text |
|
|
updated | timestamp without time zone | default now()
|
|
Indexes:
|
|
"library_id_key" UNIQUE CONSTRAINT, btree (id)
|
|
"library_title_key" UNIQUE CONSTRAINT, btree (title)
|
|
|
|
*/
|
|
}
|