public function execute(HTTPRequestCustom $request)
 {
     AppContext::get_session()->csrf_get_protect();
     $message = $this->get_message($request);
     $this->check_authorizations($message);
     GuestbookService::delete('WHERE id=:id', array('id' => $message->get_id()));
     GuestbookMessagesCache::invalidate();
     AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : GuestbookUrlBuilder::home(), LangLoader::get_message('guestbook.message.success.delete', 'common', 'guestbook'));
 }
 public function get_menu_content()
 {
     //Create file template
     $tpl = new FileTemplate('guestbook/GuestbookModuleMiniMenu.tpl');
     //Assign the lang file to the tpl
     $tpl->add_lang(LangLoader::get('common', 'guestbook'));
     $tpl->put('U_GUESTBOOK', GuestbookUrlBuilder::home()->rel());
     $guestbook_cache = GuestbookMessagesCache::load();
     $random_message = $guestbook_cache->get_message(array_rand($guestbook_cache->get_messages()));
     if ($random_message !== null) {
         $user_group_color = User::get_group_color($random_message['groups'], $random_message['level']);
         $tpl->put_all(array('C_ANY_MESSAGE_GUESTBOOK' => true, 'C_USER_GROUP_COLOR' => !empty($user_group_color), 'C_MORE_CONTENTS' => strlen($random_message['contents']) >= 200, 'C_VISITOR' => empty($random_message['user_id']), 'CONTENTS' => $random_message['contents'], 'SHORT_CONTENTS' => nl2br(TextHelper::substr_html($random_message['contents'], 0, 200)), 'USER_PSEUDO' => $random_message['login'], 'USER_LEVEL_CLASS' => UserService::get_level_class($random_message['level']), 'USER_GROUP_COLOR' => $user_group_color, 'U_MESSAGE' => GuestbookUrlBuilder::home($random_message['page'], $random_message['id'])->rel(), 'U_PROFILE' => UserUrlBuilder::profile($random_message['user_id'])->rel()));
     }
     return $tpl->render();
 }
 private function save()
 {
     $message = $this->get_message();
     if ($this->form->has_field('pseudo')) {
         $message->set_login($this->form->get_value('pseudo'));
     }
     $message->set_contents($this->form->get_value('contents'));
     if ($message->get_id() === null) {
         $id_message = GuestbookService::add($message);
     } else {
         $id_message = $message->get_id();
         GuestbookService::update($message);
     }
     GuestbookMessagesCache::invalidate();
     return $id_message;
 }
 private function save()
 {
     $this->config->set_items_per_page($this->form->get_value('items_per_page'));
     $forbidden_tags = array();
     foreach ($this->form->get_value('forbidden_tags') as $field => $option) {
         $forbidden_tags[] = $option->get_raw_value();
     }
     $this->config->set_forbidden_tags($forbidden_tags);
     if ($this->form->get_value('max_links_number_per_message_enabled')) {
         $this->config->enable_max_links_number_per_message();
         $this->config->set_maximum_links_message($this->form->get_value('max_links_number_per_message'));
     } else {
         $this->config->disable_max_links_number_per_message();
     }
     $this->config->set_authorizations($this->form->get_value('authorizations')->build_auth_array());
     GuestbookConfig::save();
     GuestbookMessagesCache::invalidate();
 }