Feature #19674 » 9885_v2.diff
typo3/classes/class.clearcachemenu.php (working copy) | ||
---|---|---|
class ClearCacheMenu implements backend_toolbarItem {
|
||
protected $cacheActions;
|
||
protected $optionValues;
|
||
/**
|
||
* reference back to the backend object
|
||
... | ... | |
public function __construct(TYPO3backend &$backendReference = null) {
|
||
$this->backendReference = $backendReference;
|
||
$this->cacheActions = array();
|
||
$this->optionValues = array('all', 'pages');
|
||
// Clear cache for ALL tables!
|
||
if($GLOBALS['BE_USER']->isAdmin() || $GLOBALS['BE_USER']->getTSConfigVal('options.clearCache.all')) {
|
||
... | ... | |
);
|
||
}
|
||
// hook for manipulate cacheActions
|
||
if(is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['additionalBackendItems']['cacheActions'])) {
|
||
foreach($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['additionalBackendItems']['cacheActions'] as $cacheAction) {
|
||
$hookObject = &t3lib_div::getUserObj($cacheAction);
|
||
if(!($hookObject instanceof backend_cacheActionsHook)) {
|
||
throw new UnexpectedValueException('$hookObject must implement interface backend_cacheActionsHook', 1228262000);
|
||
}
|
||
$hookObject->manipulateCacheActions($this->cacheActions, $this->optionValues);
|
||
}
|
||
}
|
||
}
|
||
/**
|
||
... | ... | |
* @return boolean true if user has access, false if not
|
||
*/
|
||
public function checkAccess() {
|
||
return (
|
||
$GLOBALS['BE_USER']->isAdmin()
|
||
|| $GLOBALS['BE_USER']->getTSConfigVal('options.clearCache.pages')
|
||
|| $GLOBALS['BE_USER']->getTSConfigVal('options.clearCache.all')
|
||
);
|
||
if ($GLOBALS['BE_USER']->isAdmin()) {
|
||
return true;
|
||
}
|
||
|
||
if (is_array($this->optionValues)) {
|
||
foreach($this->optionValues as $value) {
|
||
if ($GLOBALS['BE_USER']->getTSConfigVal('options.clearCache.' . $value)) {
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
|
||
}
|
||
/**
|
typo3/interfaces/interface.backend_cacheActionsHook.php (revision 0) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 2008 Steffen Kamper <info@sk-typo3.de>
|
||
* All rights reserved
|
||
*
|
||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||
* free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* The GNU General Public License can be found at
|
||
* http://www.gnu.org/copyleft/gpl.html.
|
||
* A copy is found in the textfile GPL.txt and important notices to the license
|
||
* from the author is found in LICENSE.txt distributed with these scripts.
|
||
*
|
||
*
|
||
* This script is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
/**
|
||
* interface for classes which hook into ClearCacheMenu and manipulate CacheMenuItems array
|
||
*
|
||
* @author Steffen Kamper <info@sk-typo3.de>
|
||
* @package TYPO3
|
||
* @subpackage backend
|
||
*/
|
||
interface backend_cacheActionsHook {
|
||
/**
|
||
* modifies CacheMenuItems array
|
||
*
|
||
* @param array array of CacheMenuItems
|
||
* @param array array of AccessConfigurations-identifiers (typically used by userTS with options.clearCache.identifier)
|
||
* @return
|
||
*/
|
||
public function manipulateCacheActions(&$cacheActions, &$optionValues);
|
||
}
|
||
?>
|
- « Previous
- 1
- 2
- Next »