31 de janeiro de 2011

Esconder Web Debug toolbar

Para desligar a web debug toolbar numa determinada action basta:

public function executeShow(sfWebRequest $request)
    {
        sfConfig::set('sf_web_debug', false);
    }

Isto é particularmente útil quando queremos abrir modalbox's cuja formatação fica estragada quando a dita toolbar está presente.

29 de janeiro de 2011

Form Validator usando dois campos

Os Validators dos forms normalmente apenas se aplicam a um campo, mas há formas de comparar vários campos e fazer uma validação conjunta.
Neste exemplo nem sequer foi preciso criar um Custom Validator, porque a simples comparação já é possível:
class TransactionForm extends BaseTransactionForm {

    public function configure() {
  
        $this->mergePostValidator(
new sfValidatorSchemaCompare('source_id', 
                             sfValidatorSchemaCompare::NOT_EQUAL, 
                             'destination_id', 
                             array(), 
                             array('invalid' => 'Source and Destination Accounts cannot be the same.')));

    }
}

27 de janeiro de 2011

Usar Helpers nas Actions (ex: url_for)

Para usar helpers em qualquer ficheiro da aplicação:

sfProjectConfiguration::getActive()->loadHelpers("Partial", "Url", "MyHelper");

Daqui.