ElixirVault/www/system-brs-core/sys/sysSiteModules/samples/cmsSampleModule.php

140 lines
3.8 KiB
PHP

<?php
namespace BRSystems\Core\Cms\MODULE_NAME_SAMPLE\inc;
use BRSystems\Core\Library\cDb\cDb;
/**
* MODULE_NAME_SAMPLE Module
*
* @category MODULE_NAME_SAMPLE Module
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
* @since Version 2.0
*/
class MODULE_NAME_SAMPLEModule
{
public $db;
/**
* Class constructor
*/
public function __construct() {
$this->db = cDb::getInstance();
}
/**
* Function to get module records
*
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
* @category MODULE_NAME_SAMPLE Module
* @param string $where - sql query
* @param string $sort - sql query
* @param int $offset - db table offset
* @param int $limitPerPage - limit per page
* @return array of data
* @version 1.1
*/
public function getModuleRecords($where, $sort, $offset = 0, $limitPerPage = 20){
$sSql = "
SELECT SQL_CALC_FOUND_ROWS
mb.*,
CONCAT(mu.user_name, ' ', mu.user_surname) as created_by,
CONCAT(mu2.user_name, ' ', mu2.user_surname) as modified_by
FROM
DB_SAMPLE_TABLE_NAME mb
LEFT JOIN site_users mu ON
mu.id = mb.a_created_by
LEFT JOIN site_users mu2 ON
mu2.id = mb.a_created_by
WHERE
1 {$where}
ORDER BY
{$sort}
LIMIT
{$offset}, {$limitPerPage}
";
$this->db->query($sSql);
return $this->db->getArray();
}
/**
* Function to add or save record data
*
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
* @category MODULE_NAME_SAMPLE Module
* @param int $id - record id for update
* @param array $data - record data
* @return bool record new/old id
* @version 1.1
*/
public function saveRecordDataById($id, $data){
if($id){
if(!$this->db->_queryUpdate('DB_SAMPLE_TABLE_NAME', $data, array('id' => $id)))
return false;
}else{
if(!($id = $this->db->_queryInsert('DB_SAMPLE_TABLE_NAME', $data)))
return false;
}
return $id;
}
/**
* Function to get record data by id
*
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
* @category MODULE_NAME_SAMPLE Module
* @param int $id - record id
* @return array - record data
* @version 1.1
*/
public function getRecordDataById($id){
return $this->db->_querySelectRow('DB_SAMPLE_TABLE_NAME', false, array('id' => $id));
}
/**
* Function to delete table records form db
*
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
* @category MODULE_NAME_SAMPLE Module
* @param array $ids - record ids to delete
* @return bool true / false
* @version 1.1
*/
public function deleteRecords($ids){
return $this->db->_queryDelete('DB_SAMPLE_TABLE_NAME', array('id' => $ids));
}
/**
* Function to change record status in db table
*
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
* @category MODULE_NAME_SAMPLE Module
* @param array $ids - record ids to affect
* @param string $field - field to update for status ENUM
* @return bool true / false
* @version 1.1
*/
public function changeRecordsStatus($ids, $field){
$time = time();
$ids = implode(',', $ids);
$status = $this->db->query("UPDATE DB_SAMPLE_TABLE_NAME mb SET {$field} = '1', a_modified = '{$time}' WHERE {$field} = '0' AND id IN ({$ids})");
if(!$status)
return $status;
$status = $this->db->query("UPDATE DB_SAMPLE_TABLE_NAME mb SET {$field} = '0', a_modified = '{$time}' WHERE {$field} = '1' AND id IN ({$ids}) AND a_modified <> '{$time}'");
return $status;
}
}