e107inc/e107

View on GitHub
e107_admin/cache.php

Summary

Maintainability
A
0 mins
Test Coverage
F
54%
<?php
/*
 * e107 website system
 *
 * Copyright (C) 2008-2010 e107 Inc (e107.org)
 * Released under the terms and conditions of the
 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
 *
 * Cache Administration Area
 *
*/

if(!empty($_POST) && !isset($_POST['e-token']))
{
    $_POST['e-token'] = '';
}
require_once(__DIR__."/../class2.php");

if (!getperms("C"))
{
    e107::redirect('admin');
    exit;
}

e107::coreLan('cache', true);

$e_sub_cat = 'cache';

require_once("auth.php");
$frm = e107::getForm();
$mes = e107::getMessage();

if (e107::getPref('cachestatus') == '2')
{
    e107::getConfig()->set('cachestatus', 1)
        ->save(false);
}

if(!is_writable(e_CACHE_CONTENT))
{
    $mes->addError(CACLAN_10." (".e_CACHE.")");
    e107::getRender()->tablerender(CACLAN_3, $mes->render());
    require_once("footer.php");
    exit;
}

if (isset($_POST['submit_cache']))
{
    e107::getConfig()->set('cachestatus', intval($_POST['cachestatus']))
        ->set('syscachestatus', intval($_POST['syscachestatus']))
        ->set('jscsscachestatus', intval($_POST['jscsscachestatus']))
        ->save(false);
}

if (isset($_POST['trigger_empty_cache']))
{
    e107::getLog()->addSuccess(CACLAN_6);
    $triggerName = $_POST['option_clear_cache'];
    switch ($_POST['option_clear_cache'])
    {
        case 'empty_contentcache':
            e107::getCache()->clearAll('content');
            e107::getLog()->flushMessages(CACLAN_5);
        break;

        case 'empty_syscache':
            e107::getCache()->clearAll('system');
            e107::getLog()->flushMessages(CACLAN_16);
            e107::getSession()->clear('addons-update-status');
        break;

        case 'empty_dbcache':
            e107::getCache()->clearAll('db');
            e107::getLog()->flushMessages(CACLAN_24);
        break;

        case 'empty_imgcache':
            e107::getCache()->clearAll('image');
            e107::getLog()->flushMessages(CACLAN_25);
        break;
        
        // used in standard page output and internal JS includes
        case 'empty_browsercache':
            e107::getCache()->clearAll('browser');
            e107::getLog()->flushMessages(CACLAN_27);
        break;

        case 'empty_jscss':
            e107::getCache()->clearAll('js');
            e107::getCache()->clearAll('css');
            e107::getLog()->flushMessages(CACLAN_30);
        break;

        // all
        default:
            e107::getCache()->clearAll('content');
            e107::getCache()->clearAll('system');
            e107::getCache()->clearAll('db');
            e107::getCache()->clearAll('image');
            e107::getCache()->clearAll('browser');
            e107::getCache()->clearAll('js');
            e107::getCache()->clearAll('css');
            e107::getSession()->clear('addons-update-status');
            e107::getLog()->flushMessages(CACLAN_26);
            $triggerName = 'default';
        break;
    }

    e107::getEvent()->trigger('admin_after_clear_cache', $triggerName);
}

$syscache_files = glob(e_CACHE_CONTENT.'S_*.*');
$cache_files = glob(e_CACHE_CONTENT.'C_*.*');
$imgcache_files = glob(e_CACHE_IMAGE.'*.cache.bin');
$dbcache_files = glob(e_CACHE_DB.'*.php');
$jscsscache_files = glob(e_WEB.'cache/*.{css,js}',GLOB_BRACE);

$syscache_files_num = count($syscache_files);
$cache_files_num = count($cache_files);
$imgcache_files_num = count($imgcache_files);
$dbcache_files_num = count($dbcache_files);
$jscsscache_files_num    = count($jscsscache_files);

$syscache_label = $syscache_files_num.' '.($syscache_files_num != 1 ? CACLAN_19 : CACLAN_18);
$contentcache_label = $cache_files_num.' '.($cache_files_num != 1 ? CACLAN_19 : CACLAN_18);
$imgcache_label = $imgcache_files_num.' '.($imgcache_files_num != 1 ? CACLAN_19 : CACLAN_18);
$dbcache_label = $dbcache_files_num.' '.($dbcache_files_num != 1 ? CACLAN_19 : CACLAN_18);
$jscsscache_label = $jscsscache_files_num.' '.($jscsscache_files_num != 1 ? CACLAN_19 : CACLAN_18);

$text = "
    <form method='post' action='".e_SELF."'>
        <fieldset id='core-cache-settings'>
            <legend class='e-hideme'>".CACLAN_3."</legend>
            <table class='table adminlist'>
                <colgroup>
                    <col style='width:60%' />
                    <col style='width:20%' />
                    <col style='width:20%' />
                </colgroup>
                <thead>
                    <tr>
                        <th><!-- --></th>
                        <th class='left'>".CACLAN_17."</th>
                        <th class='left last'>".CACLAN_1."</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>
                            <strong class='e-tip'>".CACLAN_11."</strong>
                            ".$frm->help(CACLAN_13)."
                        </td>
                        <td>{$contentcache_label}</td>
                        <td class='left middle'>
                            ".$frm->radio_switch('cachestatus', e107::getPref('cachestatus'))."
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <strong class='e-tip'>".CACLAN_12."</strong>
                            ".$frm->help(CACLAN_14)."
                        </td>
                        <td>{$syscache_label}</td>
                        <td class='left middle'>
                            ".$frm->radio_switch('syscachestatus', e107::getPref('syscachestatus'))."
                        </td>
                    </tr>

                        <tr>
                        <td>
                            <strong class='e-tip'>".CACLAN_28."</strong>".$frm->help(CACLAN_29)."
                            
                        </td>
                        <td>{$jscsscache_label}</td>
                        <td class='left middle'>
                            ".$frm->radio_switch('jscsscachestatus', e107::getPref('jscsscachestatus'))."
                        </td>
                    </tr>


                    <tr>
                        <td>
                            <strong class='e-tip'>".CACLAN_20."</strong>".$frm->help(CACLAN_21)."
                        </td>
                        <td>{$dbcache_label}</td>
                        <td class='left middle'>
                            ".LAN_ENABLED."
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <strong class='e-tip'>".CACLAN_22."</strong>".$frm->help(CACLAN_23)."
                        </td>
                        <td>{$imgcache_label}</td>
                        <td class='left middle'>
                            ".LAN_ENABLED."
                        </td>
                    </tr>



                </tbody>
            </table>
            <div class='buttons-bar form-inline'>
                <div class='f-right'>".$frm->admin_button('submit_cache', CACLAN_2, 'update')."</div>
                ".$frm->select('option_clear_cache', array(
                    'empty_all' => CACLAN_26,
                    'empty_contentcache' => CACLAN_5,
                    'empty_syscache' => CACLAN_16,
                    'empty_jscss' => CACLAN_30,
                    'empty_dbcache' => CACLAN_24,
                    'empty_imgcache' => CACLAN_25,
                    'empty_browsercache' => CACLAN_27,
                ))."
                ".$frm->admin_button('trigger_empty_cache', LAN_DELETE, 'delete')."
                <input type='hidden' name='e-token' value='" . defset('e_TOKEN') . "' />
            </div>
        </fieldset>
    </form>";

e107::getRender()->tablerender(CACLAN_3, $mes->render().$text);

require_once("footer.php");

?>