Closed rafaelkapela closed 9 years ago
@rafaelkapela Não na versão atual, mas se você alterar o método block pra algo assim:
/**
* Show a block.
*
* This method must be called when a block must be showed.
* Otherwise, the block will not appear in the resultant
* content.
*
* @param string $block the block name to be parsed
* @param boolean $block false if the block must be cleaned
*/
public function block($block, $append = true) {
if(!in_array($block, $this->blocks)) throw new \InvalidArgumentException("block $block does not exist");
// Checking finally blocks inside this block
if(isset($this->parents[$block])) foreach($this->parents[$block] as $child){
if(isset($this->finally[$child]) && !in_array($child, $this->parsed)){
$this->setValue($child.'_value', $this->subst($this->finally[$child]));
$this->parsed[] = $block;
}
}
if($append){
$this->setValue($block.'_value', $this->getVar($block.'_value') . $this->subst($this->getVar($block)));
} else {
$this->setValue($block.'_value', $this->subst($this->getVar($block)));
}
if(!in_array($block, $this->parsed)) $this->parsed[] = $block;
// Cleaning children
if(isset($this->parents[$block])) foreach($this->parents[$block] as $child) $this->clear($child.'_value');
}
Aí você usa normalmente quando quer o block "sujo":
$this->block("MEU_BLOCO");
E quando quer que o bloco seja limpo do conteúdo anterior:
$this->block("MEU_BLOCK", false);
Me diga se funciona.
Consegui resolver, alterando a linha:
$this->setValue($block.'_value', $this->subst($this->getVar($block)));
para:
$this->setValue($block . '_value', "");
Obrigado pelo feedback, @rafaelkapela
@raelgc É possível remover um bloco setado anteriormente?
Exemplo: