<?php

/* DCMS Special
 * Дата последнего редактирования 18.01.2016
 * Модифицировал densnet
 */

foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'adm_check', 'user') as $inc) {
    require_once "../sys/inc/$inc.php";
}

access('adm_set_loads', null, 'index.php?' . SID);
adm_check();

$set['title'] = lang('Пересчет дополнительных файлов');
include_once '../sys/inc/thead.php';

if (isset($_POST['goc'])) {
    mysql_query("TRUNCATE TABLE `loads_dop`");
    msg("База успешно очищена");
}

if (isset($_POST['go']) && isset($_POST['path'])) {


    function recount_loads($dir) {
        global $added;
        $opendir = opendir($dir);
        while ($readdir = readdir($opendir)) {
            if (!preg_match("#^\.|\.99.99.name|\.name$|\.txt$|\.opis$|\.db$|\.dat$|\.99.99.jad$#i", $readdir) && !preg_match("#\.1.JPG$|\.1.PNG$|\.1.GIF$|\.2.JPG$|\.2.PNG$|\.2.GIF$|\.3.JPG$|\.3.PNG$|\.3.GIF$#", $readdir)) {
                if (is_dir($dir . '/' . $readdir))
                    recount_loads($dir . '/' . $readdir);
                elseif (is_file($dir . '/' . $readdir)) {
                    $path = str_replace('../sys/loads/files_dop', null, $dir);
                    $path = (function_exists('iconv')) ? iconv('windows-1251', 'utf-8', $path) : $path;
                    $path = '/' . preg_replace('#^/+|/+$#i', null, $path) . '/';
                    $name = (function_exists('iconv')) ? iconv('windows-1251', 'utf-8', $readdir) : $readdir;
                    $size = filesize($dir . '/' . $readdir);
                    $file_time = filectime($dir . '/' . $readdir);
                    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `loads_dop` WHERE `name` = '" . mysql_real_escape_string($name) . "' LIMIT 1"), 0) == 0) {
                        mysql_query("INSERT INTO `loads_dop` (`name`, `size`, `path`) values('" . mysql_real_escape_string($name) . "', '$size', '" . mysql_real_escape_string($path) . "')");

                        $added++;
                    }
                }
            }
        }
        closedir($opendir);
    }

    $added = 0; // Добавлено

    recount_loads(urldecode($_POST['path']));
    admin_log('Загрузки', 'Пересчет файлов', "Добавлено $added записей");
    msg("Добавлено $added записей");
}
err();
aut();

#Навигация
echo "<div class='list-group-item-null list-group-item-grey'><small>";
echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/panel/'>" . lang('Панель управления') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo lang('Пересчет файлов');
echo "</small></div><br />";

echo "<form method='post' class='list-group-item-null' action='?gen=$passgen'>\n";
echo "Директория:*<br />\n";
echo "<select class=\"form-control\" name=\"path\">";
echo "<option value='..%2Fsys%2Floads%2Ffiles_dop'>Корневая папка</option>\n";
echo "</select><br />\n";
$doc->Button('btn btn-primary btn-sm', 'go', '', 'Пересчитать');
echo "</form>\n";

echo "<form method='post' class='list-group-item-null' action='?gen=$passgen'>\n";
$doc->Button('btn btn-primary btn-sm', 'goc', 'trash', 'Очистить таблицу**');
echo "</form>\n";

echo "<div class='list-group-item-null list-group-item-info'>";
echo "* Частый пересчет большого количества файлов может сильно загрузить сервер, поэтому по возможности старайтесь указывать конкретную папку.<br />\n";
echo "** Данная функция дает возможность полностью удалять дополнительные файлы с таблицы з-ц. Если вы считаете что статистика з-ц считает не верно, то перед пересчетом используйте эту функцию.<br />\n";
echo "</div>";

include_once '../sys/inc/tfoot.php';
?>