Seditio Source
Root |
./othercms/dle15_0/upload/cron.php
<?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
 http://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004-2021 SoftNews Media Group
=====================================================
 This code is protected by copyright
=====================================================
 File: cron.php
-----------------------------------------------------
 Use: Cron operations
=====================================================
*/

error_reporting ( E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );
ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To support the launch operations for the cron you need set a value 1 for the variable $allow_cron
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

$allow_cron = 0;

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Specify the number of backup files database for save on the server
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

$max_count_files = 5;

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Don't edit the code which follows below.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

if ($allow_cron) {

   
define('DATALIFEENGINE', true);
   
define('AUTOMODE', true);
   
define('LOGGED_IN', true);

   
define('ROOT_DIR', dirname(__FILE__));
   
define('ENGINE_DIR', ROOT_DIR.'/engine');

    require_once(
ENGINE_DIR . '/classes/plugins.class.php');
    require_once(
DLEPlugins::Check(ENGINE_DIR.'/inc/include/functions.inc.php'));

   
date_default_timezone_set($config['date_adjust']);

   
$cronmode = false;

    if (
$_REQUEST['cronmode']) {
       
$cronmode = $_REQUEST['cronmode'];
    } elseif (!empty(
$argc) && $argc > 1) {
       
$cronmode = $argv[1];
    }

   
$_REQUEST = array();
   
$_POST = array();
   
$_GET = array();
   
$_REQUEST['user_hash'] = 1;
   
$dle_login_hash = 1;

    if (
$cronmode == "sitemap") {

       
$_POST['action'] = "create";
       
$_POST['priority'] = "0.5";
       
$_POST['stat_priority'] = "0.6";
       
$_POST['cat_priority'] = "0.7";
       
$_POST['limit'] = 0;
       
$member_id = array();
       
$user_group = array();
       
$member_id['user_group'] = 1;
       
$user_group[$member_id['user_group']]['admin_googlemap'] = 1;

       
$cat_info = get_vars("category");

        if ( !
is_array($cat_info) ) {

           
$cat_info = array();

           
$db->query("SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC");

            while (
$row = $db->get_row()) {
                if (!
$row['active']) {
                    continue;
                }

               
$cat_info[$row['id']] = array();

                foreach (
$row as $key => $value) {
                   
$cat_info[$row['id']][$key] = stripslashes($value);
                }
            }
           
set_vars("category", $cat_info);
           
$db->free();
        }

        include_once(
DLEPlugins::Check(ROOT_DIR.'/engine/inc/googlemap.php'));

        die(
"done");

    } elseif (
$cronmode == "optimize") {

       
$arr = array();
       
$tables = "";

       
$db->query("SHOW TABLES");
        while (
$row = $db->get_array()) {
            if (
substr($row[0], 0, strlen(PREFIX)) == PREFIX) {
               
$tables .= ", `" . $db->safesql($row[0]) . "`";
            }
        }
       
$db->free();

       
$tables = substr($tables, 1);
       
$query = "OPTIMIZE TABLE ";
       
$query .= $tables;

       
$db->query($query);
        die(
"done");

    } elseif (
$cronmode == "antivirus") {

        @include_once(
DLEPlugins::Check(ROOT_DIR . '/language/' . $config['langs'] . '/website.lng'));
        include_once(
DLEPlugins::Check(ENGINE_DIR.'/classes/antivirus.class.php'));

       
$antivirus = new antivirus();
       
$antivirus->scan_files(ROOT_DIR, false, true);

        if (
count($antivirus->bad_files)) {
           
$found_files = "";

            foreach (
$antivirus->bad_files as $idx => $data) {
                if (
$data['type']) {
                   
$type = $lang['anti_modified'];
                } else {
                   
$type = $lang['anti_not'];
                }
               
$found_files .= "\n{$data['file_path']} {$type}\n";
            }

           
$mail = new dle_mail($config);

           
$message = $lang['anti_message_1']."\n{$found_files}\n{$lang['anti_message_2']}\n\n{$lang['lost_mfg']} ".$config['http_home_url'];
           
$mail->send($config['admin_mail'], $lang['anti_subj'], $message);
        }

        die(
"done");

    } else {

       
$files = array();

        if (
is_dir(ROOT_DIR.'/backup/') && $handle = opendir(ROOT_DIR.'/backup/')) {
            while (
false !== ($file = readdir($handle))) {
                if (
preg_match("/^.+?\.sql(\.(gz|bz2))?$/", $file)) {

                   
$prefix = explode("_", $file);
                   
$prefix = end($prefix);
                   
$prefix = explode(".", $prefix);
                   
$prefix = reset($prefix);

                    if (
strlen($prefix) == 32) {
                       
$files[] = $file;
                    }

                }
            }

           
closedir($handle);
        }

       
sort($files);
       
reset($files);

        if (
count($files) >= $max_count_files) {
            @
unlink(ROOT_DIR.'/backup/'.$files[0]);
        }

       
$member_id = array();
       
$member_id['user_group'] = 1;
       
$member_id['name'] = "cron_auto_backup";
       
$_REQUEST['action'] = "backup";
       
$_POST['comp_method'] = 1;
       
$_TIME = time();
       
$_IP = "127.0.0.1";

        include_once(
DLEPlugins::Check(ROOT_DIR.'/engine/inc/dumper.php'));

        die(
"done");
    }
}

die(
"Cron not allowed");