<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
 * MaxSite CMS
 * (c) https://max-3000.com/
 */

if (!is_login()) return;

if (mso_check_post(array('session', 'm'))) {

    if (getinfo('session_id') !== $_POST['session']) return;

    $bdir = @base64_decode($_POST['m']);

    if (!$bdir) return;

    $dirStore = getinfo('template_dir') . 'store/' . $bdir;

    if (file_exists($dirStore . '/index.php')) {

        $dirModules = getinfo('template_dir') . 'modules/' . $bdir;

        if (file_exists($dirModules . '/index.php')) {
            echo '<span class="t-red">Нельзя переписать существующий модуль</span>';
            return;
        }

        recurse_copy($dirStore, $dirModules);

        if (file_exists($dirModules)) {
            $adminUrl = getinfo('site_admin_url') . 'editor_files/' . base64_encode('type/home/units.php');

            echo 'Модуль скопирован. Для его использования в добавьте строчку <code>@module ' . $bdir . '</code>';
        } else
            echo 'Ошибка копирования';
    } else {
        return;
    }
}

/**
 * https://www.php.net/manual/ru/function.copy.php#91010
 */
function recurse_copy($src, $dst)
{
    $dir = opendir($src);
    mkdir($dst, 0700, true);
    while (false !== ($file = readdir($dir))) {
        if (($file != '.') && ($file != '..')) {
            if (is_dir($src . '/' . $file)) {
                recurse_copy($src . '/' . $file, $dst . '/' . $file);
            } else {
                copy($src . '/' . $file, $dst . '/' . $file);
            }
        }
    }
    closedir($dir);
} 

# end of file
