170 Zeilen
5 KiB
PHP
170 Zeilen
5 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Project:
|
||
|
* Contenido Content Management System
|
||
|
*
|
||
|
* Description:
|
||
|
* File with configuration of concache
|
||
|
*
|
||
|
* Requirements:
|
||
|
* @con_php_req 5
|
||
|
*
|
||
|
* @package Frontend
|
||
|
* @subpackage Cache
|
||
|
* @author Murat Purc <murat@purc.de>
|
||
|
* @copyright four for business AG <www.4fb.de>
|
||
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
||
|
* @link http://www.4fb.de
|
||
|
* @link http://www.contenido.org
|
||
|
*
|
||
|
*
|
||
|
* @class cConCache
|
||
|
* @file concache.php
|
||
|
* @version 0.9
|
||
|
* @date 2006-07-07
|
||
|
*
|
||
|
* {@internal
|
||
|
* created 2006-07-07
|
||
|
* modified 2008-07-03, bilal arslan, added security fix
|
||
|
*
|
||
|
* $Id: concache.php 450 2016-07-20 11:11:12Z oldperl $:
|
||
|
* }}
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
if(!defined('CON_FRAMEWORK')) {
|
||
|
die('Illegal call');
|
||
|
}
|
||
|
|
||
|
// uncomment following line 4 debugging any occured errors and warnings
|
||
|
#error_reporting(E_ALL);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* configuration array of frontend caching
|
||
|
* @var array $cfgConCache
|
||
|
*/
|
||
|
global $cfgConCache;
|
||
|
global $auth;
|
||
|
|
||
|
/**
|
||
|
* don't cache output, if we have a contenido variable, e. g. on calling frontend preview from backend
|
||
|
* @var bool $cfgConCache['excludecontenido']
|
||
|
*/
|
||
|
$cfgConCache['excludecontenido'] = true;
|
||
|
|
||
|
/**
|
||
|
* activate caching of frontend output
|
||
|
* @var bool $cfgConCache['enable']
|
||
|
*/
|
||
|
$cfgConCache['enable'] = true;
|
||
|
|
||
|
/**
|
||
|
* compose debuginfo (hit/miss and execution time of caching)
|
||
|
* @var bool $cfgConCache['debug']
|
||
|
*/
|
||
|
$cfgConCache['debug'] = false;
|
||
|
|
||
|
/**
|
||
|
* debug information template
|
||
|
* @var string $cfgConCache['infotemplate']
|
||
|
*/
|
||
|
$cfgConCache['infotemplate'] = '<div id="debug">%s</div>';
|
||
|
|
||
|
/**
|
||
|
* add a html comment including several debug messages to output
|
||
|
* @var bool $cfgConCache['htmlcomment']
|
||
|
*/
|
||
|
$cfgConCache['htmlcomment'] = true;
|
||
|
|
||
|
/**
|
||
|
* lifetime in seconds 2 cache output
|
||
|
* @var int $cfgConCache['lifetime']
|
||
|
*/
|
||
|
$cfgConCache['lifetime'] = 3600;
|
||
|
|
||
|
/**
|
||
|
* directory where cached content is 2 store.
|
||
|
* @var string $cfgConCache['cachedir']
|
||
|
*/
|
||
|
$cfgConCache['cachedir'] = $cfgClient[$client]['path']['frontend'].'cache/';
|
||
|
|
||
|
/**
|
||
|
* cache group, will be a subdirectory inside cachedir
|
||
|
* @var string $cfgConCache['cachegroup']
|
||
|
*/
|
||
|
$cfgConCache['cachegroup'] = 'content';
|
||
|
|
||
|
/**
|
||
|
* add prefix 2 stored filenames
|
||
|
* @var string $cfgConCache['cacheprefix']
|
||
|
*/
|
||
|
$cfgConCache['cacheprefix'] = 'cache_';
|
||
|
|
||
|
/**
|
||
|
* array of several variables 2 create a unique id, if the output depends on them.
|
||
|
* default variables are $_SERVER['REQUEST_URI'], $_POST and $_GET. its also possible to add the
|
||
|
* auth object, if output differs on authentificated user.
|
||
|
* @var array $cfgConCache['idoptions']
|
||
|
*/
|
||
|
$cfgConCache['idoptions'] = array(
|
||
|
'uri' => &$_SERVER['REQUEST_URI'],
|
||
|
'post' => &$_POST,
|
||
|
'get' => &$_GET,
|
||
|
'auth' => &$auth->auth['perm']
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
* array of eventhandler, beeing raised on some events.
|
||
|
* we have actually two events:
|
||
|
* - 'beforeoutput': code to execute before doing the output
|
||
|
* - 'afteroutput' code to execute after output
|
||
|
* you can define any php-code beeing 2 excute on raising a event.
|
||
|
* be aware to define a correct php-code block including finishing semicolon ';'
|
||
|
* example:
|
||
|
* [code]
|
||
|
* $cfgConCache['raiseonevent']['beforeoutput'] = array(
|
||
|
* 'functionCall_One();',
|
||
|
* 'functionCall_Two();',
|
||
|
* 'functionCall_Three();'
|
||
|
* [/code]
|
||
|
* on raising a beforeoutput event the code 'functionCall_One();',
|
||
|
* 'functionCall_Two();' and 'functionCall_Three();' will be executes
|
||
|
* one after another.
|
||
|
*
|
||
|
* [code]
|
||
|
* $cfgConCache['raiseonevent'] = array(
|
||
|
* 'beforeoutput' => array('echo("<pre>beforeoutput</pre>");'),
|
||
|
* 'afteroutput' => array('echo("<pre>afteroutput</pre>");')
|
||
|
* );
|
||
|
* [/code]
|
||
|
* another example with output
|
||
|
*/
|
||
|
|
||
|
// define code 2 update contenido statistics
|
||
|
// this will be excuted on 'afteroutput' event of cache object
|
||
|
|
||
|
// set Security fix
|
||
|
$sStatCode = '
|
||
|
$sql = \'SELECT idcatart FROM \'.$GLOBALS[\'cfg\'][\'tab\'][\'stat\'].\' WHERE idcatart="\'.Contenido_Security::toInteger($GLOBALS[\'idcatart\']).\'" AND idlang="\'.Contenido_Security::toInteger($GLOBALS[\'lang\']).\'"\';
|
||
|
$GLOBALS[\'db\']->query($sql);
|
||
|
if ($GLOBALS[\'db\']->next_record()) {
|
||
|
$sql = \'UPDATE \'.$GLOBALS[\'cfg\'][\'tab\'][\'stat\'].\' SET visited=visited + 1 WHERE idcatart="\'.Contenido_Security::toInteger($GLOBALS[\'idcatart\']).\'" AND idclient="\'.Contenido_Security::toInteger($GLOBALS[\'client\']).\'" AND idlang="\'.Contenido_Security::toInteger($GLOBALS[\'lang\']).\'"\';
|
||
|
} else {
|
||
|
$next = $GLOBALS[\'db\']->nextid($GLOBALS[\'cfg\'][\'tab\'][\'stat\']); $next = Contenido_Security::escapeDB($next, $db);
|
||
|
$sql = \'INSERT INTO \'.$GLOBALS[\'cfg\'][\'tab\'][\'stat\'].\' (visited, idcatart, idlang, idstat, idclient) VALUES (1, "\'.Contenido_Security::toInteger($GLOBALS[\'idcatart\']).\'", "\'. Contenido_Security::toInteger($GLOBALS[\'lang\']).\'", "\'.$next.\'", "\'. Contenido_Security::toInteger($GLOBALS[\'client\']).\'")\';
|
||
|
}
|
||
|
$GLOBALS[\'db\']->query($sql);
|
||
|
';
|
||
|
|
||
|
$cfgConCache['raiseonevent'] = array(
|
||
|
'beforeoutput' => array('/* some code here */'),
|
||
|
'afteroutput' => array($sStatCode, 'page_close();')
|
||
|
);
|
||
|
|
||
|
|
||
|
// include concache file
|
||
|
cInclude('frontend', 'includes/class.concache.php');
|
||
|
|
||
|
|
||
|
?>
|