Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $output = '';
- $properties =& $scriptProperties;
- $properties['element'] = empty($element) ? '' : $element;
- $properties['elementClass'] = empty($elementClass) ? 'modChunk' : $elementClass;
- $properties[xPDO::OPT_CACHE_KEY] = $modx->getOption('cache_resource_key', $properties, 'default');
- $properties[xPDO::OPT_CACHE_HANDLER] = $modx->getOption('cache_resource_handler', $properties, 'xPDOFileCache');
- $properties[xPDO::OPT_CACHE_EXPIRES] = (integer) $modx->getOption(xPDO::OPT_CACHE_EXPIRES, $properties, 0);
- $properties['cacheElementKey'] = $modx->resource->getCacheKey() . '/' . md5($modx->toJSON($properties)) . '/' . md5(implode('', $modx->request->getParameters()));
- $properties['cacheOptions'] = array(
- xPDO::OPT_CACHE_KEY => $properties[xPDO::OPT_CACHE_KEY],
- xPDO::OPT_CACHE_HANDLER => $properties[xPDO::OPT_CACHE_HANDLER],
- xPDO::OPT_CACHE_EXPIRES => $properties[xPDO::OPT_CACHE_EXPIRES],
- );
- $cached = false;
- if ($properties['cache']) {
- if ($modx->getCacheManager()) {
- $cached = $modx->cacheManager->get($properties['cacheElementKey'], $properties['cacheOptions']);
- }
- }
- if (!isset($cached['properties']) || !isset($cached['output'])) {
- $elementObj = $modx->getObject($properties['elementClass'], array('name' => $properties['element']));
- if ($elementObj) {
- $elementObj->setCacheable(false);
- if (!empty($properties['toPlaceholder'])) {
- $elementObj->process($properties);
- $output = $modx->getPlaceholder($properties['toPlaceholder']);
- } else {
- $output = $elementObj->process($properties);
- }
- }
- if ($modx->getCacheManager()) {
- $cached = array('properties' => $properties, 'output' => $output);
- $modx->cacheManager->set($properties['cacheElementKey'], $cached, $properties[xPDO::OPT_CACHE_EXPIRES], $properties['cacheOptions']);
- }
- } else {
- $properties = $cached['properties'];
- $output = $cached['output'];
- }
- $modx->setPlaceholders($properties, $properties['namespace']);
- if (!empty($properties['toPlaceholder'])) {
- $modx->setPlaceholder($properties['toPlaceholder'], $output);
- $output = '';
- }
- return $output;
- ?>
Add Comment
Please, Sign In to add comment