I don't want to take credit for this, but I definitely wanted to blog about it because I think it is a big deal. In a forum post I made on modxcms.com, ganeshXL came up with an awesome way to cache snippet output with a MODx plugin. Here is what ganeshXL wrote:
$myChunk = 'testMenu'; // your chunk name
$params['startId'] = '0';
$params['level'] = '4';
$html = addslashes($modx->runSnippet('Wayfinder', $params));
$sql= "UPDATE " . $modx->getFullTableName("site_htmlsnippets") . " SET snippet='$html' WHERE name='$myChunk'";
$result= $modx->dbQuery($sql);
Now, every time you edit a doc, the Menu code is being regenerated and stored in your chunk. This should speed up things quite a bit..
This is really cool since it means that you can cache snippet output and give php and mysql a break on processing your code. Like I said, all the credit goes to ganeshXL :) If you're interested in the context that this was created in, you can read the full post here.
Comments (3)
Apr 18, 2008 at 10:51 AM
Dragan (ganeshXL):
Howdy! Surprised to find my little forum post here (I googled for something modx-related stuff); glad you found it useful.
Apr 21, 2008 at 09:44 PM
devtrench:
Thanks, I really did find your solution useful. I ended up modifying the final code to run from a module rather than a plugin, which worked out well for my client. The particular code just took too long to process after every doc save.
Aug 22, 2009 at 08:42 AM
e-Stonia:
Thanks a lot! Really useful!