/**
* @param $block
* @param bool $update
*/
public function saveBlock($block, $update = false)
{
$block['mtime'] = microtime(true);
if (!isset($block['locale'])) {
$block['locale'] = null;
}
if (isset($block['_id'])) {
$find = array('_id' => $block['_id']);
} elseif (isset($block['path'])) {
$find = array('locale' => $block['locale'], 'path' => $block['path']);
} else {
$find = array('name' => (string) $block['name']);
}
unset($block['_id']);
if (isset($block['template'])) {
$tpl = $this->appInstance->getQuickyInstance();
$tpl->register_function('getblock', function ($args) {
});
$tpl->load_filter('pre', 'optimize');
$block['templatePHP'] = 'return function($tpl) {
$var = &$tpl->_tpl_vars;
$config = &$tpl->_tpl_config;
$capture = &$tpl->_block_props[\'capture\'];
$foreach = &$tpl->_block_props[\'foreach\'];
$section = &$tpl->_block_props[\'section\'];
?>' . $tpl->_compile_string($block['template'], implode(':', $find)) . '<?php };';
}
$block['cachekey'] = md5($block['templatePHP']);
$this->blocks->upsertOne($find, $update ? array('$set' => $block) : $block);
}