Index: trunk/core/kernel/processors/main_processor.php =================================================================== diff -u -N -r8358 -r8374 --- trunk/core/kernel/processors/main_processor.php (.../main_processor.php) (revision 8358) +++ trunk/core/kernel/processors/main_processor.php (.../main_processor.php) (revision 8374) @@ -582,7 +582,7 @@ $res = $BlockParser->ParseTemplate($t, 1, $params, isset($params['is_silent']) ? 1 : 0 ); } - if ( !$BlockParser->DataExists && (isset($params['data_exists']) || isset($params['block_no_data'])) ) { + if (!$BlockParser->DataExists && ((isset($params['data_exists']) && $params['data_exists']) || isset($params['block_no_data']))) { if ($block_no_data = getArrayValue($params, 'block_no_data')) { if (isset($this->Application->PreParsedBlocks[$block_no_data]) ) { // block_no_data is another block name @@ -720,17 +720,21 @@ if (isset($params['design']) && $params['design']) { $block_name = $params['name']; if ($block_name != '__this__') { - $block_params['name'] = $block_name; - $block_params['content'] = $this->MyInclude( Array('template' => $params['name'], 'return_params' => 1, 'strip_nl' => 2) ); + // prepare content + $block_params = $params; + $block_params['template'] = $block_name; + $block_params['return_params'] = 1; + $block_params['strip_nl'] = 2; + $block_content = $this->MyInclude($block_params); - if ( !$this->Application->Parser->DataExists && (isset($params['data_exists']) || isset($params['block_no_data'])) ) { - if ($block_no_data = getArrayValue($params, 'block_no_data')) { - $block_params['content'] = $this->MyInclude(Array('template' => $block_no_data)); - } - else { - return ''; - } + if (isset($params['data_exists']) && $params['data_exists'] && !$block_content) { + return ''; } + + // prepare design + $block_params = Array ( + 'content' => $block_content, + ); } $block_params['name'] = $params['design'];