<?php require dirname(dirname(__FILE__)) . '/general.config.php'; bff::sessionStart('u'); require PATH_CORE . 'init.php'; $oBff = bff::i()->init(true); error_reporting(E_ALL & ~E_DEPRICATED); ini_set('display_errors', 1); set_time_limit(0); ignore_user_abort(true); /* * Период выполнения: каждые 15 минут */ $log = new CFileLogger(PATH_BASE . 'files/logs/', 'cron.log'); $log->log('bbs.items.comments.enotify: started...'); $oBff->GetModule('bbs'); //echo "start\r\n"; $oDb->execute('START TRANSACTION'); $aNotify = $oDb->select('SELECT EN.* FROM ' . TABLE_BBS_ITEMS_COMMENTS_ENOTIFY . ' EN WHERE EN.sended = 0 ORDER BY EN.created LIMIT 100 FOR UPDATE'); // <- lock пока не разошлём письма (100) if (!empty($aNotify)) { $mail = new CMail(); $tpl = $oBff->Sendmail_getMailTemplate('bbs_comments_notify'); foreach ($aNotify as $v) { try { $mail->From = BFF_EMAIL_NOREPLY;
<?php require dirname(dirname(__FILE__)) . '/general.config.php'; bff::sessionStart('u'); require PATH_CORE . 'init.php'; $oBff = bff::i()->init(true); error_reporting(E_ALL & ~E_DEPRICATED); ini_set('display_errors', 1); set_time_limit(0); ignore_user_abort(true); /* * Период выполнения: ежедневно, 2 раза в сутки */ $log = new CFileLogger(PATH_BASE . 'files/logs/', 'cron.log'); $log->log('bbs.items.counters: started...'); $oBff->GetModule('bbs'); $oDb->execute('START TRANSACTION'); # Выполняем пересчет счетчиков: // Категории первого уровня $oDb->execute('UPDATE ' . TABLE_BBS_CATEGORIES . ' C LEFT JOIN (SELECT I.cat1_id as id, COUNT(I.id) as items FROM ' . TABLE_BBS_ITEMS . ' I LEFT JOIN ' . TABLE_USERS . ' U ON I.user_id = U.user_id WHERE I.status = ' . BBS_STATUS_PUBLICATED . ' AND (U.user_id IS NULL OR U.blocked = 0) AND I.cat1_id!=0 GROUP BY I.cat1_id) as X ON C.id = X.id SET C.items = IF(X.id IS NOT NULL, X.items, 0) WHERE C.numlevel = 1 '); // Категории второго уровня $oDb->execute('UPDATE ' . TABLE_BBS_CATEGORIES . ' C LEFT JOIN (SELECT I.cat2_id as id, COUNT(I.id) as items
<?php require dirname(dirname(__FILE__)) . '/general.config.php'; bff::sessionStart('u'); require PATH_CORE . 'init.php'; $oBff = bff::i()->init(true); error_reporting(E_ALL & ~E_DEPRICATED); ini_set('display_errors', 1); set_time_limit(0); ignore_user_abort(true); /* * Период выполнения: ежедневно, каждые 3 часа */ $log = new CFileLogger(PATH_BASE . 'files/logs/', 'cron.log'); $log->log('bbs.items.status: started...'); $oBff->GetModule('bbs', false); $oBff->GetModule('services'); $oDb->execute('START TRANSACTION'); $sqlNOW = $oDb->getNOW(); $sqlEmptyDate = $oDb->str2sql('0000-00-00 00:00:00'); //снимаем с публикации ОБ, у которых закончился срок публикации $oDb->execute('UPDATE ' . TABLE_BBS_ITEMS . ' SET status_prev = status, status = ' . BBS_STATUS_PUBLICATED_OUT . ', svc = 0, premium_to = ' . $sqlEmptyDate . ', marked_to = ' . $sqlEmptyDate . ' WHERE status = ' . BBS_STATUS_PUBLICATED . ' AND publicated_to<=' . $sqlNOW); // снимаем статус "Премиум", и изменяем на "Выделенные" (+ изменяем порядок публикации, чтобы не упали вниз) $oDb->execute('UPDATE ' . TABLE_BBS_ITEMS . ' SET svc = ' . Services::typeMark . ', publicated_order = ' . $sqlNOW . ', premium_to = ' . $sqlEmptyDate . ' WHERE svc = ' . Services::typePremium . ' AND premium_to<=' . $sqlNOW); // снимаем статус "Выделенных" // выполняем после снятия "Премиум" ^, т.к. "Выделенные", получившиеся из "Премиум", также возможно необходимо снять с публикации
<?php require '..' . DIRECTORY_SEPARATOR . 'func.php'; require '..' . DIRECTORY_SEPARATOR . 'input.php'; require 'file.logs.php'; $aParams = CInputCleaner::i()->postm(array('e' => TYPE_STR, 'f' => TYPE_STR, 'l' => TYPE_STR)); $logger = new CFileLogger('..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'files' . DIRECTORY_SEPARATOR . 'logs', 'js.log'); $logger->log(join('; ', array_values($aParams))); echo 1; exit;