126 lines
3.6 KiB
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;
|
|
}
|
|
}
|