ActivityLog\Model\Template::render PHP Method

render() public method

Render template from event params
public render ( Zend\EventManager\Event $event, array $template ) : string
$event Zend\EventManager\Event Event
$template array Template data
return string
    public function render(EventManager\Event $event, $template)
    {
        if (empty($this->renderer)) {
            $this->renderer = new Renderer();
            $this->renderer->addPath($this->getTmpPath());
        }
        $name = sprintf('event-%s-%s', str_replace(array('\\', '/'), '-', $template['event_identifier']), $template['event_name']);
        file_put_contents($this->getTmpPath() . '/' . $name . '.phtml', $template['template']);
        return $this->renderer->render($name, array('event' => $event));
    }

Usage Example

Example #1
0
 /**
  * Boostrap
  *
  * @param Event $e Event
  *
  * @return void
  */
 public function onBootstrap(Event $e)
 {
     $this->template = new Template();
     $templates = $this->template->getTemplates();
     $application = $e->getApplication();
     $serviceManager = $application->getServiceManager();
     foreach ($templates as $template) {
         $this->events()->attach($template['event_identifier'], $template['event_name'], function (Event $event) use($template, $serviceManager) {
             $userId = null;
             $auth = $serviceManager->get('Auth');
             if ($auth->hasIdentity()) {
                 $userId = $auth->getIdentity()->getId();
                 $event->setParam('user', $auth->getIdentity()->getName());
             } else {
                 $remote = new RemoteAddress();
                 $event->setParam('user', $remote->getIpAddress());
             }
             $content = $this->template->render($event, $template);
             $this->template->addEvent($content, $template['id'], $userId);
         });
     }
 }