Code snippets for symfony 1.x

Navigation

Refine Tags

Snippets tagged "urlfor"

Render partials in a Task

I needed to send emails from a task using partials. The technique for SF 1.3/4 is explained in the docs, but how to get links to render properly is not. I found some good info on the web that was a bit hidden. Here is what it lead me to come up with.

To be able to use partials you need to set the context correctly:

sfContext::createInstance($this->configuration);
 

Since tasks don't have a url as their base for the request, helpers like url_for and link_to won't work correctly and output things like "/symfony/symfony/mymodule/myaction".

to remedy this I created a helper:

class batchHelpers
{
  public static function url_for($str)
  {
    $url = 'http://'.
            sfConfig::get('app_server_url','www.kaizengine.com') .
            sfContext::getInstance()->getController()->genUrl($str);
 
    return $url;
  }
}
 

the define for the "server_url" is in app.yml

Then in the partial I used this code to call get a correctly generated url:

batchHelpers::url_for('/home', true), array(
          'style'=>"text-decoration:none;margin:0;")
          );
 

I also render the same partial (with the same url_for replacement) inside the web interface and since the urls are absolute, they work correctly.

by Alex Knol on 2010-10-26, tagged email  partial  task  urlfor 
(2 comments)