function smarty_block_block($params, $content, $template, &$repeat) { global $smarty_block_stack; global $smarty_blocks; if (!$content) { $block = new Block($params['name']); apply_block_params($block, $params); $block->output(false); if (count($smarty_block_stack) > 0) { $parent = end($smarty_block_stack); $parent->add_block($block); } array_push($smarty_block_stack, $block); } else { $block = end($smarty_block_stack); if (count($smarty_block_stack) > 0) { array_pop($smarty_block_stack); } if (strpos($content, '{elements}') !== FALSE) { $count = substr_count($content, '{elements}'); $count -= 1; if ($count > 0) { $content = preg_replace('/{elements}/', "", $content, $count); } } PC::content($content); $block->html($content); str_replace('{elements}', '', $content); if (count($smarty_block_stack) == 0) { return $block->show(); } else { return '{elements}'; } } }