CMS / CMFã®æãææãªåºæºã®1ã€ã§ããããã©ãŒãã³ã¹ã«ã€ããŠèª¬æããŸãã
äžè¬ã«ãããã©ãŒãã³ã¹ã«ã¯MODxã«ãã¹ãŠã®ã«ãŒã«ããããŸãã 圌èªèº«ã¯éåžžã«æèœã«æžãããæé©åãããŠããŸãã ããã«ããã®æè»æ§ã«ãããéçºè ã¯å®è£ äžã®ãããžã§ã¯ãã®ããã«ããã¯ã管çããããšãã§ããŸãã
ãã ããDittoã䜿çšããŠãã¥ãŒã¹åºåãåŠçããæ¹æ³ãJotã䜿çšããŠã³ã¡ã³ããªã©ãåŠçããæ¹æ³ã«åçŽã«ã·ã§ãã¯ãåããŸããã ã€ãŸããDittoã®ããŒãžå šäœïŒPHxã§ã®äœæ¥ã®åé¡ã«ããïŒãšãJotã¹ããããèªäœã®åŒã³åºãã®äž¡æ¹ã§ãã£ãã·ã¥ãç¡å¹ã«ããå¿ èŠããããŸãã
å®éãå€æ°ã®ãšã³ããªãããå Žåããããã¯1ããŒãžã«åãŸããŸãããã€ãŸããããšãã°ããã¥ãŒã¹ãã£ãŒããè€æ°ã®ããŒãžã«åå²ããå¿ èŠããããŸãã ãã ãããã®ããŒãžã®ãã£ãã·ã¥ãMODxã«å«ãŸããŠããå Žåããã¥ãŒã¹ãã£ãŒãã®éšåãåãæ¿ãããšãæåã«ãã£ãã·ã¥ã«ãããããã³ã³ãã³ãããã¹ãŠè¡šç€ºãããŸãã
å ¬åŒãœãŒã¹ã¯äœãã¢ããã€ã¹ããŠããŸããïŒ
圌ãã¯ãã¹ãããããè€æ°ã®
ãã£ãã·ã¥ãããªãããŒãžã
DittoãšJotãåŒã³åºãäŸã次ã«ç€ºããŸãã
ã¹ããããåŒã³åºãããŒãžããã£ãã·ã¥ãããªããããŒãžèšå®=>ãã£ãã·ã¥=>ãªãã
[[Ditto?
&parents=`1`
&display=`10`
&paginate=`1`
&paginateAlwaysShowLinks=`1`
]]
ã¹ããããåŒã³åºãããŒãžã¯ãããŒãžèšå®=>ãã£ãã·ã¥=>ãªã³ãã«ãã£ãã·ã¥ãããŸã
[!Jot?
&customfields=`name,email`
&pagination=`10`
&badwords=`*****`
&canmoderate=`Site Admins`
&captcha=`1`!]
!]
ã芧ã®ãšãããã©ã¡ãã®å ŽåãMODxã«ãããã£ãã·ã¥ã¯å®è¡ãããŸããã ãã£ãã·ã¥ã®æ¬ åŠã¯ãã·ã¹ãã ã®é床ã«çŽæ¥åœ±é¿ããŸãã ããŒãžãåŒã³åºããããã³ã«ããã¹ãŠã®ã¹ããããããŒã¿ãããŒã¿ããŒã¹ããåéãããŸãã
ç§ã®ãã¹ãã«ããã°ãã¿ã€ãã«ãç°¡åãªæ³šéãå ¬éæ¥ã衚瀺ãããããŒãžããã10ãšã³ããªã®DittoåŒã³åºãããŒãžã¯ãããŒã¿ããŒã¹ã«å¯ŸããŠçŽ11ã®ã¯ãšãªãäœæããŸãã è¿œå ã®ãã£ã«ã¿ãŒã䜿çšããŠããã¬ãã®ãã£ãŒã«ãã§çšèªãæ€çŽ¢ãããšãããã«æ鬱ãªçµ±èšãåŸãããŸãã

ãã¢
JotåŒã³åºãããŒãžã§ãåãããšãèµ·ãããŸãã
ããŒãžããšã«10åã®ã³ã¡ã³ããä»ããŠJotãåŒã³åºããããããã«ã€ããŠã®æšæºæ å ±
ã³ã¡ã³ããšæ°ããæçš¿ãè¿œå ãããã©ãŒã ã䜿çšããŠã泚æãäœæããŸã
ããŒã¿ããŒã¹ãžã®22-24ã¯ãšãªã

ãã¢
ããŒã¿ããŒã¹ãéåžžã«å°ããéããããã¯éèŠã§ã¯ãããŸããããããŒã¿ããŒã¹ã®æé·ã«äŒŽãããã®ãããªæ°ã®èŠæ±ã«ãããããã¥ã¡ã³ãæ°ã«å¯ŸããŠå¿çæéãææ°é¢æ°çã«å¢å ããŸãã
å°ãèããŠããã1ã€ã®ã¢ãžã¥ãŒã«ã1ã€ã®ã¹ãããããããã³ãµãŒãããŒãã£ã©ã€ãã©ãªã§æ§æãããCacheAcceleratorãäœæããŸããã
Cache Acceleratorã¯ãä»»æã®ã¹ããããïŒDittoããã³Jotã ãã§ãªãïŒã®åºåããã£ãã·ã¥ããããšã«ãããã·ã¹ãã ã®é床ãäžããããŒã¿ããŒã¹ãžã®ã¯ãšãªã®æ°ãæžãããŸãã
ãã¹ãã«ãããšãäžèšã®Dittoã䜿çšããããŒãžãžã®ç¹°ãè¿ããªã¯ãšã¹ãã¯ãããŒã¿ããŒã¹ãžã®åŒã³åºãåæ°ã11ãã3ïŒïŒïŒã«æžãããJotã䜿çšããããŒãžãžã®åŒã³åºãã22ãã1ïŒïŒïŒã«æžãããšãã圢ã§çµæããããããŸãã


ãã®è£œåã¯ãMODxãšã³ãžã³ãžã®çµ±åã®ããã¯æ¹æ³ã䜿çšããŸããã ããã¯å®å šã«ç¬ç«ããã³ãŒããããã¯ã§ãã ã€ã³ã¹ããŒã«ãšäœ¿çšãéåžžã«ç°¡åã§ãã
ã€ã³ã¹ããŒã«ïŒ
ãŸããããŒãžããfileCacheãããŠã³ããŒãããŸãã
http://neo22s.com/filecache/
ããããã®çŽæ¥ãªã³ã¯ïŒ
http://lab.neo22s.com/fileCache/fileCache.zip
ãã£ã¬ã¯ããª/ã¢ã»ãã/ãã©ã°ã€ã³/ cacheacceleratorãäœæããŸã
cacheacceleratorãã£ã¬ã¯ããªã§ããã£ãã·ã¥ãã£ã¬ã¯ããªãäœæããŸãïŒ/ assets / plugins / cacheaccelerator / cacheïŒ
äœæãããäž¡æ¹ã®ãã£ã¬ã¯ããªã«chmod 777ãã€ã³ã¹ããŒã«ããŸã
次ã«ãããŠã³ããŒãããã¢ãŒã«ã€ããããfileCache.phpããã£ã¬ã¯ããª/ assets / plugins / cacheacceleratorã«ã³ããŒããŸã
ãã®åŸãMODxãããŒãžã£ãŒã§ã[ èŠçŽ ]-> [ å¶åŸ¡èŠçŽ ] -> [ ã¹ãããã] -> [ æ°ããã¹ãããã ]ãã¯ãªãã¯ããŸãã CacheAcceleratorãšããæ°ããã¹ãããããäœæããŸãã




ã¹ããããã®å 容ãããã«ã³ããŒããŸãã
CacheAcceleratorã¹ããããïŒ
<?php
// . Ditto
if(!function_exists(cacheFieldsCompare)) {
function cacheFieldsCompare ($param1, $param2, $param3){
/*
1 or !=
2 or =
3 or <
4 or >
5 or <=
6 or >=
7
8
*/
switch($param3){
case 1:
return $param1 != $param2;
break;
case 2:
return $param1 == $param2;
break;
case 3:
return $param1 < $param2;
break;
case 4:
return $param1 > $param2;
break;
case 5:
return $param1 <= $param2;
break;
case 6:
return $param1 >= $param2;
break;
case 7:
return stristr($param1, $param2);
break;
case 8:
return !stristr($param1, $param2);
}
}
}
$nocache = isset($nocache)? $nocache : 0; //
$url = $_SERVER["REQUEST_URI"]; // ,
$path_to_cacheengine=$modx->config['base_path']."assets/plugins/cacheaccelerator/"; // CacheAccelerator
$path_to_cache=$modx->config['base_path']."assets/plugins/cacheaccelerator/cache/"; // ( )
require_once ($path_to_cacheengine."fileCache.php"); // fileCache
$cache = fileCache::GetInstance(84600*7,$path_to_cache);// fileCache
//
if((int)$clearCache){
if($logMessages) echo("Clearing cache...");
$cache->deleteCache(0);
return;
}
// , ( , )
$noCacheGroups = isset($noCacheGroups) ? $noCacheGroups : "";
$nocache = intval($modx->isMemberOfWebGroup(explode("||",$nocacheGroups)) || $modx->checkSession()) ? 2 : $nocache;
if($nocache == 2){
if($logMessages) echo("No caching for this web group.");
}
/* -, . , */
if(isset($dropCacheField)){
$fieldsArray = explode("||", $dropCacheField);
foreach ($fieldsArray as $field){
$field1 = explode(";", $field);
if($field1[1] && $field[2]){
if(empty($field1[0])){
foreach ($_POST as $key => $postField){
if(cacheFieldsCompare($postField, $field1[1], $field1[2])){
$nocache = 1;
continue;
}
}
foreach ($_GET as $key => $getField){
if(cacheFieldsCompare($getField, $field1[1], $field1[2])){
$nocache = 1;
continue;
}
}
} else {
if(!empty($_POST[$field1[0]])){
if(cacheFieldsCompare($_POST[$field1[0]], $field1[1], $field1[2])){
$nocache = 1;
continue;
}
}
if(!empty($_GET[$field1[0]])){
if(cacheFieldsCompare($_GET[$field1[0]], $field1[1], $field1[2])){
$nocache = 1;
continue;
}
}
}
} else {
if(!empty($_POST[$field1[0]]) || !empty($_GET[$field1[0]]))
$nocache = 1;
}
}
//
if($nocache == 1){
if($logMessages) echo(" Clearing cache... ");
$cache->deleteCache(0);
}
}
//
if($nocache == 0){
$cached = $cache->cache($cacheId.$url);
if(isset($cached)){
if($logMessages) echo(" Cache hit! ");
$modx->placeholders = $cached['placeholders']; //
return $cached['content']; //
}
}
$output = $modx->runSnippet($snippetToCache, $modx->event->params); //
//
if($nocache == 0){
if($logMessages) echo("Storing to cache...");
$cache->cache($cacheId.$url,array('placeholders' => $modx->placeholders, 'content' => $output));
}
// MODx
return($output);
?>
äœæããã¹ãããããä¿åããŸãã 次ã«ã[ ãã©ã°ã€ã³ ]ã¿ãã«ç§»åããŸãã
ãã©ã°ã€ã³ã®äœæ ] ãã¯ãªãã¯ããŸãã


CacheAcceleratorClearãšããååãä»ããŸãã ãã©ã°ã€ã³ã®å 容ãã³ããŒããŸãã
CacheAcceleratorClearãã©ã°ã€ã³ïŒ
$path_to_cacheengine=$modx->config['base_path']."assets/plugins/cacheaccelerator/"; // CacheAccelerator
$path_to_cache=$modx->config['base_path']."assets/plugins/cacheaccelerator/cache/"; // ( , CacheAccelerator)
require_once ($path_to_cacheengine."fileCache.php");// fileCache
$cache = fileCache::GetInstance(84600*7,$path_to_cache);// fileCache
$cache->deleteCache(0);//
return;
泚æïŒ ãã©ã°ã€ã³ã®å 容ãã³ããŒãããã[ ã·ã¹ãã ã€ãã³ã ]ã¿ãã«ç§»åããŸãããã®ã¿ãã§ã[ ãã£ãã·ã¥ãµãŒãã¹ã€ãã³ã]ã»ã¯ã·ã§ã³ã®[OnCacheUpdate]ã€ãã³ãããªãã«ããŸãã
[ ä¿å]ãã¿ã³ãã¯ãªãã¯ããŠãã ããã


以äžã§ãCacheAcceleratorã®ã€ã³ã¹ããŒã«ã¯å®äºã§ãã
ãã®ãã©ã°ã€ã³ã¯1ã€ã®æ©èœãå®è¡ããŸãã MODxããã£ãã·ã¥ããã©ãã·ã¥ãããšããCacheAcceleratorãã£ãã·ã¥ããã©ãã·ã¥ããŸã
CacheAcceleratorã䜿çšããŸãïŒ
CacheAcceleratorã¯ãã©ã®ã¹ããããã«ã絶察ã«äœ¿çšã§ããŸãã åºåããã£ãã·ã¥ããŸãã
ãããŸã§ã¯ãDittoãšJotã®åŒã³åºãã®äŸã§ã®äœ¿çšãæ€èšããŸãã
DittoåŒã³åºãã¯æ¬¡ã®ããã«ãªããŸãã
[[CacheAccelerator?
&snippetToCache=`Ditto`
&cacheId=`News`
&parents=`1`
&display=`10`
&paginate=`1`
&paginateAlwaysShowLinks=`1`
]]
DittoèªäœãåŒã³åºã代ããã«ãCacheAcceleratorã¹ãããããåŒã³åºããããã£ãã·ã¥ãããã¹ããããã®ååïŒãã®å Žåã¯DittoïŒãsnippetToCacheãã©ã¡ãŒã¿ãŒã§æå®ãããŸãã
次ã¯cacheIdãã©ã¡ãŒã¿ãŒã§ãã ããŒãžã«è€æ°ã®ãã£ãã·ã¥ãããã¹ãããããããå Žåããã£ãã·ã¥ãããã³ã³ãã³ããåé¢ããããã«èšèšãããŠããŸãã ããšãã°ãå·ŠåŽã®ã¡ãã¥ãŒãææ°ã®ãã¥ãŒã¹ããã¥ãŒã¹ãã£ãŒãèªäœã ãã£ãã·ã¥ãããã³ã³ãã³ãããã€ã³ããããä»»æã®å€ãå«ããããšãã§ããŸãã
Dittoãäºéè§æ¬åŒ§[[]]ã§åŒã³åºãããå Žåããã®åŒã³åºãããããã«å«ãŸããŠããå¿ èŠãããããšã«æ³šæããŠãã ããã
JotåŒã³åºãã®äŸïŒ
[!CacheAccelerator?
&snippetToCache=`Jot`
&cacheId=`Comments`
&dropCacheField=`JotForm||post;true;2||;publish;2||;unpublish;2||;delete;2||;edit;2`
&noCacheGroups=`Site Admins`
&customfields=`name,email`
&pagination=`10`
&badwords=`*****`
&canmoderate=`Site Admins`
&captcha=`1`
!]
ãã£ãã·ã¥ãããã¹ããããèªäœãsnippetToCacheãã©ã¡ãŒã¿ãŒã§æå®ãããcacheIdã§ã¯ããŒãžäžã®ãã£ãã·ã¥ãããã³ã³ãã³ãã®èå¥åã§æå®ãããŸãã
dropCacheFieldãšnoCacheGroupsã®2ã€ã®ãã©ã¡ãŒã¿ãŒããããŸãã ãããã«ã€ããŠããã«è©³ãã説æããŸãã
äºå®ã¯ãMODxãããŒãžã£ãŒããè¿œå ããããã¥ãŒã¹ãããã¯ãšã¯ç°ãªããåãã¥ãŒã¹ãè¿œå ããåŸã«ãã£ãã·ã¥ãã¯ãªã¢ãããJotã³ã¡ã³ããã£ãŒãã§ã¯ããµã€ãã«ã¢ã¯ã»ã¹ãããŠãŒã¶ãŒã¯ã³ã¡ã³ããè¿œå ã§ããŸãã åæã«ããã®ã³ã¡ã³ãã圌ãšä»ã®ãŠãŒã¶ãŒã®äž¡æ¹ã«è¡šç€ºããã«ã¯ãCacheAcceleratorãã£ãã·ã¥ãã¯ãªã¢ããå¿ èŠããããŸãã ãã®ã¢ã¯ã·ã§ã³ã¯ãJotã ãã§ãªããåºåããã£ãã·ã¥ããä»ã®å€ãã®ã¹ããããã«ãå¿ èŠãªå ŽåããããŸããããŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³åŸã«ãã£ãã·ã¥ãæŽæ°ããå¯èœæ§ãæäŸããŸãã
ãããã®ç®çã®ããã«ãdropCacheFieldãã©ã¡ãŒã¿ãŒãæ©èœããŸãã
||ã§åºåãããæ¡ä»¶ã®ãªã¹ããå«ãŸããŠããŸã ãããã®æ¡ä»¶ã®ãããããããªã¬ãŒããããšãCacheAcceleratorãã£ãã·ã¥ãã¯ãªã¢ãããŸãã
æ¡ä»¶ã¯ãã£ãŒã«ãåã§ãã
GETãŸãã¯POSTãªã¯ãšã¹ãã§ã©ã¡ããæ€åºããããšããã£ãã·ã¥ãæŽæ°ãããŸãã
ããã¯ãæ¯èŒã®ãããããŸããã
ã»ãã³ãã³ããªã¹ããããŸãã
;;_
ãã£ãŒã«ãåèªäœã空ãšããŠç€ºãããŠããå Žåããã¹ãŠã®æ¢åã®ãã£ãŒã«ããæ¯èŒãããŸãã
以äžã«äŸã瀺ããŸãã
&dropCacheField=`JotForm||post;true;2||;delete;2`
ããã«ç€ºãããŠããŸãïŒ
- èŠæ±ã«JotFormãã£ãŒã«ããå«ãŸããå Žå
- æçš¿ãã£ãŒã«ããããããããtrueã®å Žå
- ããããã®ãã£ãŒã«ãã«å€deleteãããå Žå
å¶ç¶ã«ããã£ãã·ã¥ã¯ã¯ãªã¢ãããŸãã
Jotã§æ°ããã¡ãã»ãŒãžãæçš¿ãããšãJotFormãã£ãŒã«ããå«ããã©ãŒã ãéä¿¡ãããŸãã ãããã£ãŠãã³ã¡ã³ããæçš¿ããåŸããã£ãã·ã¥ã¯ã¯ãªã¢ãããæ å ±ã¯é¢é£ãããŸãŸã«ãªããŸãã ãã®ããŒãžãžã®æåã®èŠæ±ã®åŸããã£ãã·ã¥ãåã³äœæãããåŸç¶ã®åŒã³åºãããã£ãã·ã¥ããæäŸãããŸãã
noCacheGroupsãã©ã¡ãŒã¿ãŒã«ã¯ã||ã§åºåããããªã¹ããå«ãŸããŸãããªã¹ãã«ã¯ãããŒã¿ããã£ãã·ã¥ããè¿ãããªãWebãŠãŒã¶ãŒã®ã°ã«ãŒããå«ãŸããã¹ããããã¯åŒã³åºãããšã«å®è¡ãããŸãã ããšãã°ãã¢ãã¬ãŒã¿ãŒã®å Žåãåºåãã©ãŒã ã¯ã³ã³ãããŒã«ãã¿ã³ã«ãã£ãŠç°ãªãããã®ãããªãªã¯ãšã¹ãããã£ãã·ã¥ã«å ¥ããšãä»ã®ãã°ã€ã³ãŠãŒã¶ãŒã«ãããªã¯ãšã¹ãã«é¢ä¿ã®ãªãèŠçŽ ãæã€ãã©ãŒã ã衚瀺ãããŸãã
ãŸããããã©ã«ãã§ã¯ãMODxãããŒãžã£ãŒã§èš±å¯ãããŠãããŠãŒã¶ãŒã®ãã£ãã·ã¥åŠçã¯è¡ãããŸããã ãŸããããªããè³æãç·šéããŠãããŠãŒã¶ãŒã管çããã«ã®ã¡ã³ããŒã§ããå Žåããã®åé¡ã¯èªç¶ã«æ¶ããŸãã
以äžãåŒã³åºãããšã§ãã©ãããã§ãCacheAcceleratorãã£ãã·ã¥ãã¯ãªã¢ããããšãã§ããŸãã
ãã£ã³ã¯ããïŒ
[!CacheAccelerator? &clearCache=`1`!]
ã¹ããããããïŒ
$modx->runSnippet("CacheAccelerator", array("clearCache" => 1))
ãã£ãã·ã¥å¯èœãªã¹ããããã§å®çŸ©ããããã¬ãŒã¹ãã«ããŒããã£ãã·ã¥ããåŒã³åºããããšãã«ãã£ãã·ã¥ããã³ç»é²ãããŸãã
äŸïŒ
[[CacheAccelerator?&snippetToCache=`Ditto`&cacheId=`News`]]
[+start+] - [+stop+] [+total+] <br>
[+previous+] [+pages+] [+next+]<br>
ãã©ã¡ãŒã¿ãªã¹ãïŒ
snippetToCache-ãã£ãã·ã³ã°ã®ã¹ããããåãããšãã°ã `Ditto`ã
cacheId-ããŒãžäžã®ãã£ãã·ã¥ãããã¹ããããã®èå¥åãããšãã°ããNewsã
dropCacheField-ãã£ãŒã«ããšãããã®æ¡ä»¶ã®ãªã¹ããããã«ããããã£ãã·ã¥ããªã»ãããããŸãïŒäŸïŒ `JotForm || post; true; 2`ïŒ
noCacheGroups-ãã£ãã·ã¥åŠçãå®è¡ãããªãã°ã«ãŒãã®ãªã¹ããããšãã°ããadmins || moderatorsã
clearCache-å€ã1ã®å Žåããã£ãã·ã¥ã¯åŒ·å¶çã«ã¯ãªã¢ãããŸãã
logMessages-ã¹ããããã®ã³ã³ãã³ãã®åã®å€ã1ã®å Žåããã£ãã·ã¥ãžã®ã¢ã¯ã»ã¹ã«é¢ããã·ã¹ãã ã¡ãã»ãŒãžãªã©ã衚瀺ãããŸãã
æ¡ä»¶ã®ãªã¹ãïŒ
1 ïŒ=çãããªã
2 =çãã
3 <ããå°ãã
4 >以äž
5 <=ããå°ãããçãã
6 > =以äž
7å«ã
8ãå«ãŸããŠã
ãã®ãµã€ãã§CacheAcceleratorã®å®æçãããŠã³ããŒãã§ããŸãã
決ããŠå®æåã®ãµããããŠããã®äœæ¥ã«ãšã©ãŒããªãããšã¯ãããŸããã ããã¯æåã®ã¢ã«ãã¡çã§ããããã®ãããªããã¥ã¢ã«ãäœæããçµéšã¯ã»ãšãã©ãããŸããã
æ¬ ç¹ããšã©ãŒã®éçºãšè§£æ¶ã«ãååããã ããã°å¹žãã§ãã
UPD
æ°ãããã©ã¡ãŒã¿ã¯ãã¹ããããïŒ
noCacheRoles-ãã£ãã·ã¥åŠçãå®è¡ãããªããããŒãžã£ãŒããŒã«ã®ãªã¹ã
ããšãã°ãã管çè ||ç·šéè ã
checkURL-ç°ãªãURLã«åå¥ã®ãã£ãã·ã¥ãäœæããŸãïŒ1 | 0ïŒã ããã¯ãããã©ã«ãã§æå¹ã«ãªã£ãŠã ã€ã³ã¯ã«ãŒãã¯ãããŒãžããã²ãŒã·ã§ã³ã¹ããââããã«åœ¹ç«ã¡ãŸãã
ãŸãããã©ã°ã€ã³ã®æ°ãããã©ã¡ãŒã¿ãŒïŒ
only_manual-ãã£ãã·ã¥ã®æåãªã»ããã®ã¿ãèš±å¯ããŸãã
Andchirã®æ¹èšã«æè¬ããŸãã
æ°ããããŒãžã§ã³ã¯ããããŸãã¯ãã ããããŠã³ããŒãã§ããŸãã