/* @var $dc Doctrine_Collection */ $dc = new Doctrine_Collection('City'); for ($i=1;$i<=32;$i++) { $record = new City(); $record->setName('City #' .$i); $dc->add($record); } $this->cities = $dc;
14 de fevereiro de 2011
Criar Doctrine_Collection manualmente
Útil quando não temos dados suficientes em base de dados para fazer alguns testes:
i18n nas actions
Como sabem os helpers estão apenas disponíveis na View, como tal chamar a função __("texto") numa action não funciona.
Como alternativa, numa action.class.php, podemos utilizar a seguinte técnica:
Outra forma é forçar o load dos helpers necessários na configuração da aplicação - isto faz com que a função __("texto") fique disponível em toda a aplicação:
Como alternativa, numa action.class.php, podemos utilizar a seguinte técnica:
$this->getContext()->getI18N()->__("texto");
Outra forma é forçar o load dos helpers necessários na configuração da aplicação - isto faz com que a função __("texto") fique disponível em toda a aplicação:
class frontendConfiguration extends sfApplicationConfiguration { public function configure() { $this->loadHelpers(array('I18N')); } }
11 de fevereiro de 2011
Detectar primeira visita de utilizador
Para detectarmos o primeiro request (visita) do utilizador (logado ou não), basta adicionar o seguinte método à class do user (app_name/lib/myUser.class.php):
Agora numa action:
public function isFirstRequest() { $first_request_parameter = $this->getAttribute('first_request'); if (isset($first_request_parameter)) { return false; } $this->setAttribute('first_request', true); return true; }
Agora numa action:
... if ($this->getUser()->isFirstRequest()) { // primeira visita } else { // re-visita }
1 de fevereiro de 2011
Usar Helpers nas Tasks
Para utilizar helpers nas tasks, precisamos de referenciar qual a aplicação da task. Para isso forçamos uma aplicação default nas options da task pretendida:
Agora, no método execute:
protected function configure() { $this->addOptions(array( new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED,'The application name', 'frontend'), // ... )); }(Neste caso defini a aplicação default como sendo frontend)
Agora, no método execute:
protected function execute($arguments = array(), $options = array()) { // ... $contextInstance = sfContext::createInstance($this->configuration); $contextInstance->getConfiguration()->loadHelpers('Partial'); // ... }
Assinar:
Postagens (Atom)