private function generate_response(View $tpl)
 {
     $message = $this->get_message();
     $page = AppContext::get_request()->get_getint('page', 1);
     $response = new SiteDisplayResponse($tpl);
     $graphical_environment = $response->get_graphical_environment();
     $breadcrumb = $graphical_environment->get_breadcrumb();
     $breadcrumb->add($this->lang['module_title'], ShoutboxUrlBuilder::home($page));
     if ($message->get_id() === null) {
         $graphical_environment->set_page_title($this->lang['shoutbox.add'], $this->lang['module_title']);
         $breadcrumb->add($this->lang['shoutbox.add'], ShoutboxUrlBuilder::add());
         $graphical_environment->get_seo_meta_data()->set_canonical_url(ShoutboxUrlBuilder::add());
     } else {
         $graphical_environment->set_page_title($this->lang['shoutbox.edit'], $this->lang['module_title']);
         $breadcrumb->add($this->lang['shoutbox.edit'], ShoutboxUrlBuilder::edit($message->get_id(), $page));
         $graphical_environment->get_seo_meta_data()->set_canonical_url(ShoutboxUrlBuilder::edit($message->get_id(), $page));
     }
     return $response;
 }