ElixirVault/www/system-brs-core/library/cCron/cCron.php

113 lines
3.6 KiB
PHP

<?php
namespace BRSystems\Core\Library\cCron;
use BRSystems\Core\Library\cMail\cMail;
/**
* Cron controller class
*
* @category Cron
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
* @since Version 2.0
*/
class cCron
{
private $module;
// Init base varibles
public function __construct()
{
$dir = (__DIR__ ? __DIR__ : dirname(__FILE__));
$this->module = new cCronModule();
}
/**
* Function to exec cron business day end scripts
*
* @category Cron
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
* @returns bool
*/
public function execBDEndCronScripts() {
// CMS msg links
$this->module->deleteCmsMsgLinks();
// PUB msg links
$this->module->deletePubMsgLinks();
// PUB old access tokens
//$this->module->deleteOldAccessTokens();
// CMS old user online tokens
$this->module->deleteOldUserOnlineTokens();
// Site cleanup
$this->module->sysSiteCleanup();
return true;
}
/**
* Function to send email with system news
*
* @author Aivars Žukovskis <info@brsystems.lv>
* @category pubSystemDashboard Controller
* @param array $vDates - array('s' => start, 'e' => end) ( In unix )
* @param bool $bReturnData to return array data
* @return array of data
*/
public function sendEmailWithSystemNews($vDates = array(), $bReturnData = false){
if(empty($vDates)) $vDates = array('s' => strtotime("00:00:00"), 'e' => strtotime("23:59:59"));
$vData = array(
'nCreatedAccounts' => $this->module->getAccountsCreatedByDate($vDates),
'nActivatedAccounts' => $this->module->getAccountsActivatedByDate($vDates),
'nReceivedInquiries' => $this->module->getReceivedInquiriesByDate($vDates),
'usersOnline' => $this->module->getUsersOnlineByDate($vDates),
);
// accounts to bill map id 785
// accounts manager map id 681
// Get host for activation link
//$oCfg = new cINI(__CFG__ . 'init.cfg.ini');
//$vLocalHosts = $oCfg->getV('domain_cfg_json', 'localhost_domains', true);
//$sHost = "http://" . (in_array($_SERVER['HTTP_HOST'], $vLocalHosts) ? cMail::EHLO_SERVER : $_SERVER['HTTP_HOST']);
//$sLink = $sHost . $this->getLinkForID(681, $update['user_lang_id'], false, $sEndParam);
if($bReturnData){
return $vData;
}else{
foreach($vData as $k => $v){
if($v && $k != 'usersOnline'){
$mm = new cMail();
$mm->addMail(
cMail::$SERVER_CFG[cMail::MAIL_SERVER_LORETA_LV][cMail::LOGIN],
false,
cMail::MAIL_SERVER_LORETA_LV,
cMail::MAIL_16_SYSTEM_NEW_MAILS,
$this->module->getDefaultAppLang(),
array(
'[%ACC_CREATED%]' => $vData['nCreatedAccounts'],
'[%ACC_CREATE_LINK%]' => '',
'[%ACC_ACTIVATED%]' => $vData['nActivatedAccounts'],
'[%ACC_LINK%]' => '',
'[%RECEIVED_INQUIRIES%]' => $vData['nReceivedInquiries'],
'[%RECEIVED_INQUIRIES_LINK%]' => '',
'[%USERS%]' => $vData['usersOnline'],
'[%USERS_LINK%]' => ''
),
false
);
break;
}
}
return true;
}
}
}