/**
  * @param array $arrErrors
  *
  * @return string
  * @permissions view,right1
  */
 protected function actionRegisterForEvent($arrErrors = array())
 {
     $strReturn = "";
     $objEvent = new class_module_eventmanager_event($this->getSystemid());
     if ($objEvent->getIntLimitGiven() == "1" && $objEvent->getIntParticipantsLimit() <= class_module_eventmanager_participant::getActiveParticipantsCount($this->getSystemid())) {
         $strMessage = $this->getLang("participantLimitReached");
         $strWrapperID = $this->objTemplate->readTemplate("/module_eventmanager/" . $this->arrElementData["char1"], "event_register_message");
         $strReturn = $this->objTemplate->fillTemplate(array("title" => $objEvent->getStrTitle(), "message" => $strMessage), $strWrapperID);
         return $strReturn;
     }
     $bitIsLoggedin = false;
     if ($this->objSession->isLoggedin() && $this->objTemplate->containsSection($this->objTemplate->readTemplate("/module_eventmanager/" . $this->arrElementData["char1"]), "event_register_loggedin")) {
         $bitIsLoggedin = true;
         if ($objEvent->isParticipant($this->objSession->getUserID())) {
             $objParticpant = class_module_eventmanager_participant::getParticipantByUserid($this->objSession->getUserID(), $objEvent->getSystemid());
             $this->setParam("comment", $objParticpant->getStrComment());
             $this->setParam("participant_status", $objParticpant->getIntParticipationStatus());
         }
     }
     $objMapper = new class_template_mapper($objEvent);
     $objMapper->addPlaceholder("forename", $this->getParam("forename"));
     $objMapper->addPlaceholder("lastname", $this->getParam("lastname"));
     $objMapper->addPlaceholder("phone", $this->getParam("phone"));
     $objMapper->addPlaceholder("comment", $this->getParam("comment"));
     $objMapper->addPlaceholder("email", $this->getParam("email"));
     $objMapper->addPlaceholder("participant_status", $this->getParam("participant_status"));
     $objMapper->addPlaceholder("title", $objEvent->getStrTitle());
     $objMapper->addPlaceholder("dateTimeFrom", dateToString($objEvent->getObjStartDate(), true));
     $objMapper->addPlaceholder("dateFrom", dateToString($objEvent->getObjStartDate(), false));
     $objMapper->addPlaceholder("dateTimeUntil", dateToString($objEvent->getObjEndDate(), true));
     $objMapper->addPlaceholder("dateUntil", dateToString($objEvent->getObjEndDate(), false));
     $objMapper->addPlaceholder("formaction", class_link::getLinkPortalHref($this->getPagename(), "", "saveRegisterForEvent", "", $this->getSystemid(), "", $objEvent->getStrTitle()));
     if ($bitIsLoggedin) {
         $objUser = new class_module_user_user($this->objSession->getUserID());
         $objMapper->addPlaceholder("username", $objUser->getStrUsername());
     }
     $strErrors = "";
     if (count($arrErrors) > 0) {
         $strErrTemplate = $this->objTemplate->readTemplate("/module_eventmanager/" . $this->arrElementData["char1"], "error_row");
         foreach ($arrErrors as $strOneError) {
             $strErrors .= "" . $this->objTemplate->fillTemplate(array("error" => $strOneError), $strErrTemplate);
         }
     }
     $objMapper->addPlaceholder("formErrors", $strErrors);
     $strReturn .= $objMapper->writeToTemplate("/module_eventmanager/" . $this->arrElementData["char1"], "event_register" . ($bitIsLoggedin ? "_loggedin" : ""));
     class_module_pages_portal::registerAdditionalTitle($objEvent->getStrTitle());
     return $strReturn;
 }