ElixirVault/www/system-brs-core/cms/cmsDelivery/inc/cmsDeliveryModule.php

126 lines
3.6 KiB
PHP

<?php
namespace BRSystems\Core\Cms\cmsDelivery\inc;
use BRSystems\Core\Library\cDb\cDb;
class cmsDeliveryModule
{
public cDb $db;
public function __construct()
{
$this->db = cDb::getInstance();
}
/**
* Function to get module records
*
* @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
* @category cmsDelivery Module
* @author Mareks Keišs <keiss.mareks@gmail.com>
* @version 1.1
*/
public function getModuleRecords($where, $sort, $offset = 0, $limitPerPage = 20)
{
$sSql = "
SELECT SQL_CALC_FOUND_ROWS
dc.*
FROM
mod_delivery dc
WHERE
1 {$where}
ORDER BY
{$sort}
LIMIT
{$offset}, {$limitPerPage}
";
$this->db->query($sSql);
return $this->db->getArray();
}
/**
* Function to add or save record data
*
* @param int $id - record id for update
* @param array $data - record data
* @return bool|int record new/old id
* @category cmsDelivery Module
* @author Mareks Keišs <keiss.mareks@gmail.com>
* @version 1.1
*/
public function saveRecordDataById($id, $data)
{
if ($id) {
if (!$this->db->_queryUpdate('mod_delivery', $data, ['id' => $id])) {
return false;
}
} else {
if (!($id = $this->db->_queryInsert('mod_delivery', $data))) {
return false;
}
}
return $id;
}
/**
* Function to get record data by id
*
* @param int $id - record id
* @return null|array - record data
* @author Mareks Keišs <keiss.mareks@gmail.com>
* @category cmsDelivery Module
* @version 1.1
*/
public function getRecordDataById($id)
{
return $this->db->_querySelectRow('mod_delivery', false, ['id' => $id]);
}
/**
* Function to delete table records form db
*
* @param array $ids - record ids to delete
* @return bool true / false
* @author Mareks Keišs <keiss.mareks@gmail.com>
* @category cmsDelivery Module
* @version 1.1
*/
public function deleteRecords($ids)
{
$this->db->execute("DELETE FROM `mod_delivery` WHERE `id` IN (" . implode(',', $ids) . ")");
return $this->db->execute("DELETE FROM `mod_delivery` WHERE `id` IN (" . implode(',', $ids) . ")");
}
/**
* Function to change record status in db table
*
* @param array $ids - record ids to affect
* @param string $field - field to update for status ENUM
* @return bool true / false
* @category cmsDelivery Module
* @author Mareks Keišs <keiss.mareks@gmail.com>
* @version 1.1
*/
public function changeRecordsStatus($ids, $field)
{
$time = time();
$ids = implode(',', $ids);
$status = $this->db->query(
"UPDATE mod_delivery dc SET {$field} = '1', dc.t_modified = '{$time}' WHERE {$field} = '0' AND id IN ({$ids})",
);
if (!$status) {
return $status;
}
$status = $this->db->query(
"UPDATE mod_delivery dc SET {$field} = '0', dc.t_modified = '{$time}' WHERE {$field} = '1' AND id IN ({$ids}) AND dc.t_modified <> '{$time}'",
);
return $status;
}
}