Index: branches/RC/core/kernel/nparser/nparser.php =================================================================== diff -u -r11368 -r11373 --- branches/RC/core/kernel/nparser/nparser.php (.../nparser.php) (revision 11368) +++ branches/RC/core/kernel/nparser/nparser.php (.../nparser.php) (revision 11373) @@ -434,11 +434,16 @@ $data_exists_bak = $this->DataExists; // if we are parsing design block and we have block_no_data - we need to wrap block_no_data into design, - // so we should set DataExists to true manually, otherwise the design block will be skipped because of data_exists in params + // so we should set DataExists to true manually, otherwise the design block will be skipped because of data_exists in params (by Kostja) // // keep_data_exists is used by block RenderElement (always added in ntags.php), to keep the DataExists value - // from inside-content block, otherwise when parsing the design block DataExists will be reset to false resulting missing design block - $this->DataExists = isset($params['keep_data_exists']) && $this->DataExists || (isset($params['design']) && isset($params['block_no_data']) && $params['name'] == $params['design']); + // from inside-content block, otherwise when parsing the design block DataExists will be reset to false resulting missing design block (by Kostja) + // + // Inside-content block parsing result is given to design block in "content" parameter (ntags.php) and "keep_data_exists" + // is only passed, when parsing design block. In case, when $this->DataExists is set to true, but + // zero-length content (in 2 cases: method NParser::CheckNoData set it OR really empty block content) + // is returned from inside-content block, then design block also should not be shown (by Alex) + $this->DataExists = (isset($params['keep_data_exists']) && isset($params['content']) && $params['content'] != '' && $this->DataExists) || (isset($params['design']) && isset($params['block_no_data']) && $params['name'] == $params['design']); if (!array_key_exists($params['name'], $this->Elements)) { $pre_parsed = $this->Application->TemplatesCache->GetPreParsed($params['name']);