/**
  * Loads the form specified
  *
  * @return string
  */
 protected function actionList()
 {
     $strReturn = "";
     $this->setParam("formaction", getLinkPortalHref($this->getParam("page"), "", "sendForm"));
     $arrParams = $this->getAllParams();
     foreach ($arrParams as $strKey => $strValue) {
         $arrParams[$strKey] = htmlspecialchars($strValue, ENT_QUOTES, "UTF-8", false);
     }
     //any errors to print?
     if (count($this->arrError) > 0) {
         $strError = "";
         //Collect errors
         $strTemplateErrorID = $this->objTemplate->readTemplate("/element_form/" . $this->arrElementData["formular_template"], "errorrow");
         foreach ($this->arrError as $strOneError) {
             $strError .= $this->fillTemplate(array("error" => $strOneError), $strTemplateErrorID);
         }
         //and the complete form
         $strTemplateErrorFormid = $this->objTemplate->readTemplate("/element_form/" . $this->arrElementData["formular_template"], "errors");
         $arrParams["formular_fehler"] = $this->fillTemplate(array("liste_fehler" => $strError), $strTemplateErrorFormid);
     }
     //and the form itself
     $strTemplateformId = $this->objTemplate->readTemplate("/element_form/" . $this->arrElementData["formular_template"], "contactform");
     //get actions
     $strReturn .= $this->fillTemplate($arrParams, $strTemplateformId);
     return $strReturn;
 }
 /**
  * @return string
  */
 private function getUserlist()
 {
     $strReturn = "";
     $strTemplateWrapperID = $this->objTemplate->readTemplate("/element_userlist/" . $this->arrElementData["char1"], "userlist_wrapper");
     $strTemplateRowID = $this->objTemplate->readTemplate("/element_userlist/" . $this->arrElementData["char1"], "userlist_row");
     $arrUserFinal = $this->loadUserlist();
     $strRows = "";
     foreach ($arrUserFinal as $objOneUser) {
         $objTargetUser = $objOneUser->getObjSourceUser();
         if ($objTargetUser instanceof class_usersources_user_kajona) {
             $arrRow = array();
             $arrRow["userName"] = $objTargetUser->getStrName();
             $arrRow["userForename"] = $objTargetUser->getStrForename();
             $arrRow["userStreet"] = $objTargetUser->getStrStreet();
             $arrRow["userEmail"] = $objTargetUser->getStrEmail();
             $arrRow["userPostal"] = $objTargetUser->getStrPostal();
             $arrRow["userCity"] = $objTargetUser->getStrCity();
             $arrRow["userPhone"] = $objTargetUser->getStrTel();
             $arrRow["userMobile"] = $objTargetUser->getStrMobile();
             $arrRow["userBirthday"] = uniStrlen($objTargetUser->getLongDate()) > 5 ? dateToString(new class_date($objTargetUser->getLongDate()), false) : "";
             $strRows .= $this->fillTemplate($arrRow, $strTemplateRowID);
         }
     }
     $strLink = getLinkPortalHref($this->getPagename(), "", "exportToCsv");
     $strReturn .= $this->fillTemplate(array("userlist_rows" => $strRows, "csvHref" => $strLink), $strTemplateWrapperID);
     return $strReturn;
 }
 /**
  * Returns the ready image-htmlcode
  *
  * @return string
  */
 public function loadData()
 {
     $strReturn = "";
     $strTemplate = $this->arrElementData["image_template"];
     //fallback
     if ($strTemplate == "") {
         $strTemplate = "image.tpl";
     }
     //choose template section
     if ($this->arrElementData["image_link"] != "") {
         $strTemplateID = $this->objTemplate->readTemplate("/element_image/" . $strTemplate, "image_link");
     } else {
         $strTemplateID = $this->objTemplate->readTemplate("/element_image/" . $strTemplate, "image");
     }
     $this->arrElementData["image_src"] = $this->arrElementData["image_image"];
     //TODO: rename db columns as well and remove this two lines
     $this->arrElementData["image_width"] = $this->arrElementData["image_x"];
     $this->arrElementData["image_height"] = $this->arrElementData["image_y"];
     //Link?
     if ($this->arrElementData["image_link"] != "") {
         //internal page?
         if (class_module_pages_page::getPageByName($this->arrElementData["image_link"]) !== null) {
             $this->arrElementData["link_href"] = getLinkPortalHref($this->arrElementData["image_link"], "");
         } else {
             $this->arrElementData["link_href"] = getLinkPortalHref("", $this->arrElementData["image_link"]);
         }
     }
     $strReturn .= $this->fillTemplate($this->arrElementData, $strTemplateID);
     return $strReturn;
 }
 /**
  * Looks up the last modified-date of the current page
  *
  * @return string the prepared html-output
  */
 public function loadData()
 {
     //actions or systemids passed? pagename?
     $strSystemid = $this->getParam("systemid");
     $strActions = $this->getParam("action");
     $strPageName = $this->getPagename();
     //load the template
     $strTemplateID = $this->objTemplate->readTemplate("/element_tagto/" . $this->arrElementData["char1"], "tagtos");
     $strLink = getLinkPortalHref($strPageName, "", $strActions, "", $strSystemid);
     $strReturn = $this->fillTemplate(array("pageurl" => $strLink), $strTemplateID);
     return $strReturn;
 }
 /**
  * Returns the ready switch-htmlcode
  *
  * @return string
  */
 public function loadData()
 {
     //fallback for old elements not yet using the template
     if (!isset($this->arrElementData["char1"]) || $this->arrElementData["char1"] == "") {
         $this->arrElementData["char1"] = "languageswitch.tpl";
     }
     $arrObjLanguages = class_module_languages_language::getObjectList(true);
     //load the languageset in order to generate more specific switches
     $objLanguageset = class_module_languages_languageset::getLanguagesetForSystemid($this->getParam("systemid"));
     //Iterate over all languages
     $strRows = "";
     foreach ($arrObjLanguages as $objOneLanguage) {
         //Check, if the current page has elements
         $objPage = class_module_pages_page::getPageByName($this->getPagename());
         $objPage->setStrLanguage($objOneLanguage->getStrName());
         if ($objPage === null) {
             continue;
         }
         if ((int) $objPage->getNumberOfElementsOnPage(true) == 0) {
             continue;
         }
         $strTargetSystemid = null;
         if ($objLanguageset != null) {
             $strTargetSystemid = $objLanguageset->getSystemidForLanguageid($objOneLanguage->getSystemid());
         }
         //the languageswitch is content aware. check if the target id is a news-entry
         $strSeoAddon = "";
         if (validateSystemid($strTargetSystemid)) {
             $objRecord = class_objectfactory::getInstance()->getObject($strTargetSystemid);
             $strSeoAddon = $objRecord->getStrDisplayName();
         }
         //and the link
         $arrTemplate = array();
         if ($strTargetSystemid === null) {
             $arrTemplate["href"] = getLinkPortalHref($objPage->getStrName(), "", "", "", "", $objOneLanguage->getStrName(), $strSeoAddon);
         } else {
             $arrTemplate["href"] = getLinkPortalHref($objPage->getStrName(), "", $this->getAction(), "", $strTargetSystemid, $objOneLanguage->getStrName(), $strSeoAddon);
         }
         $arrTemplate["langname_short"] = $objOneLanguage->getStrName();
         $arrTemplate["langname_long"] = $this->getLang("lang_" . $objOneLanguage->getStrName());
         $strTemplateRowID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_entry");
         $strTemplateActiveRowID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_entry_active");
         if ($objOneLanguage->getStrName() == $this->getStrPortalLanguage()) {
             $strRows .= $this->fillTemplate($arrTemplate, $strTemplateActiveRowID);
         } else {
             $strRows .= $this->fillTemplate($arrTemplate, $strTemplateRowID);
         }
     }
     $strTemplateWrapperID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_wrapper");
     return $this->fillTemplate(array("languageswitch_entries" => $strRows), $strTemplateWrapperID);
 }
 /**
  * Creates a search form using the template specified in the admin
  *
  * @return string
  * @permissions view
  */
 protected function actionList()
 {
     $strTemplateID = $this->objTemplate->readTemplate("/module_search/" . $this->arrElementData["search_template"], "search_form");
     $arrTemplate = array();
     if ($this->arrElementData["search_query_id"] != "") {
         $this->objSearchSearch = new class_module_search_search($this->arrElementData["search_query_id"]);
     }
     $strPage = $this->arrElementData["search_page"];
     if ($strPage == "") {
         $strPage = $this->getPagename();
     }
     $arrTemplate["action"] = getLinkPortalHref($strPage, "", "search");
     return $this->fillTemplate($arrTemplate, $strTemplateID);
 }
 /**
  * Responsible for creating the xml-feed
  *
  * @param string $strTitle
  * @param string $strLink
  * @param string $strDesc
  * @param string $strPage
  * @param class_module_news_news[] $arrNews
  *
  * @return string
  */
 private function createNewsfeedXML($strTitle, $strLink, $strDesc, $strPage, $arrNews)
 {
     $objFeed = new class_rssfeed();
     $objFeed->setStrTitle($strTitle);
     $objFeed->setStrLink($strLink);
     $objFeed->setStrDesc($strDesc);
     foreach ($arrNews as $objOneNews) {
         if ($objOneNews->rightView()) {
             $objDate = $objOneNews->getObjStartDate();
             if ($objDate == null) {
                 $objDate = new class_date();
             }
             $objFeed->addElement($objOneNews->getStrTitle(), getLinkPortalHref($strPage, "", "newsDetail", "", $objOneNews->getSystemid(), "", $objOneNews->getStrTitle()), $objOneNews->getSystemid(), $objOneNews->getStrIntro(), mktime($objDate->getIntHour(), $objDate->getIntMin(), $objDate->getIntSec(), $objDate->getIntMonth(), $objDate->getIntDay(), $objDate->getIntYear()));
         }
     }
     return $objFeed->generateFeed();
 }
 /**
  * Does a little "make-up" to the contents
  *
  * @return string
  */
 public function loadData()
 {
     $strReturn = "";
     $strTemplate = $this->arrElementData["paragraph_template"];
     //fallback
     if ($strTemplate == "") {
         $strTemplate = "paragraph.tpl";
     }
     //choose template section
     $strTemplateSection = "paragraph";
     if ($this->arrElementData["paragraph_image"] != "" && $this->arrElementData["paragraph_link"] != "") {
         $strTemplateSection = "paragraph_image_link";
     } else {
         if ($this->arrElementData["paragraph_image"] != "" && $this->arrElementData["paragraph_link"] == "") {
             $strTemplateSection = "paragraph_image";
         } else {
             if ($this->arrElementData["paragraph_image"] == "" && $this->arrElementData["paragraph_link"] != "") {
                 $strTemplateSection = "paragraph_link";
             }
         }
     }
     $strTemplateID = $this->objTemplate->readTemplate("/element_paragraph/" . $strTemplate, $strTemplateSection);
     if ($this->arrElementData["paragraph_image"] != "") {
         //remove the webpath (was added for paragraphs saved pre 3.3.0)
         $this->arrElementData["paragraph_image"] = str_replace("_webpath_", "", $this->arrElementData["paragraph_image"]);
     }
     if ($this->arrElementData["paragraph_link"] != "") {
         //internal page?
         if (class_module_pages_page::getPageByName($this->arrElementData["paragraph_link"]) !== null) {
             $this->arrElementData["paragraph_link"] = getLinkPortalHref($this->arrElementData["paragraph_link"]);
         } else {
             $this->arrElementData["paragraph_link"] = getLinkPortalHref("", $this->arrElementData["paragraph_link"]);
         }
     }
     if ($this->arrElementData["paragraph_title"] != "") {
         $strTemplateTitleID = $this->objTemplate->readTemplate("/element_paragraph/" . $strTemplate, "paragraph_title_tag");
         $this->arrElementData["paragraph_title_tag"] = $this->fillTemplate($this->arrElementData, $strTemplateTitleID);
     }
     $strReturn .= $this->fillTemplate($this->arrElementData, $strTemplateID);
     return $strReturn;
 }
 /**
  * Creates the html-code for one single navigationpoint. The check if the user has the needed rights should have been made before!
  *
  * @param class_module_navigation_point $objPointData
  * @param bool $bitActive
  * @param int $intLevel
  * @param bool $bitFirst
  * @param bool $bitLast
  *
  * @return string
  */
 private function createNavigationPoint(class_module_navigation_point $objPointData, $bitActive, $intLevel, $bitFirst = false, $bitLast = false)
 {
     //and start to create a link and all needed stuff
     $arrTemp = array();
     $arrTemp["page_intern"] = $objPointData->getStrPageI();
     $arrTemp["page_extern"] = $objPointData->getStrPageE();
     $arrTemp["systemid"] = $objPointData->getSystemid();
     $arrTemp["text"] = $objPointData->getStrName();
     $arrTemp["link"] = getLinkPortal($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrTarget(), $arrTemp["text"], $objPointData->getStrLinkAction(), "", $objPointData->getStrLinkSystemid());
     $arrTemp["href"] = getLinkPortalHref($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrLinkAction(), "", $objPointData->getStrLinkSystemid());
     $arrTemp["target"] = $objPointData->getStrTarget();
     if ($objPointData->getStrImage() != "") {
         $arrTemp["image"] = getLinkPortal($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrTarget(), "<img src=\"" . _webpath_ . $objPointData->getStrImage() . "\" border=\"0\" alt=\"" . $arrTemp["text"] . "\"/>", $objPointData->getStrLinkAction(), "", $objPointData->getStrSystemid());
         $arrTemp["image_src"] = $objPointData->getStrImage();
     }
     if ($objPointData->getStrPageI() != "") {
         $objPage = class_module_pages_page::getPageByName($objPointData->getStrPageI());
         if ($objPage != null && $objPage->getIntLmTime() != "") {
             $arrTemp["lastmodified"] = strftime("%Y-%m-%dT%H:%M:%S", $objPage->getIntLmTime());
         }
     }
     //Load the correct template
     $strSection = "level_" . $intLevel . "_" . ($bitActive ? "active" : "inactive") . ($bitFirst ? "_first" : "") . ($bitLast ? "_last" : "");
     $strTemplateId = $this->objTemplate->readTemplate("/module_navigation/" . $this->arrElementData["navigation_template"], $strSection);
     //Fill the template
     $strReturn = $this->objTemplate->fillTemplate($arrTemp, $strTemplateId, false);
     //BUT: if we received an empty string and are in the situation of a first or last point, then maybe the template
     //     didn't supply a first / last section. so we'll try to load a regular point
     if ($strReturn == "" && ($bitFirst || $bitLast)) {
         $strSection = "level_" . $intLevel . "_" . ($bitActive ? "active" : "inactive");
         $strTemplateId = $this->objTemplate->readTemplate("/module_navigation/" . $this->arrElementData["navigation_template"], $strSection);
         //And fill it once more
         $strReturn = $this->objTemplate->fillTemplate($arrTemp, $strTemplateId, false);
     }
     return $strReturn;
 }
 /**
  * Saves the passed values to db
  *
  * @throws class_exception
  * @return string "" in case of success
  */
 protected function actionSaveGuestbook()
 {
     $strReturn = "";
     if (!$this->validateData()) {
         $this->setParam("eintragen_fehler", $this->getLang("eintragen_fehler"));
         return $this->actionInsertGuestbook($this->getAllParams());
     }
     $objBook = new class_module_guestbook_guestbook($this->arrElementData["guestbook_id"]);
     //check rights
     if ($objBook->rightRight1()) {
         //create a post-object
         $objPost = new class_module_guestbook_post();
         $objPost->setStrGuestbookPostName($this->getParam("gb_post_name"));
         $objPost->setStrGuestbookPostEmail($this->getParam("gb_post_email"));
         $objPost->setStrGuestbookPostPage($this->getParam("gb_post_page"));
         $objPost->setStrGuestbookPostText($this->getParam("gb_post_text"));
         $objPost->setIntGuestbookPostDate(time());
         //save obj to db
         if (!$objPost->updateObjectToDb($objBook->getSystemid())) {
             throw new class_exception("Error saving entry", class_exception::$level_ERROR);
         }
         $strMailtext = $this->getLang("new_post_mail");
         $strMailtext .= getLinkAdminHref("guestbook", "edit", "&systemid=" . $objPost->getSystemid(), false);
         $objMessageHandler = new class_module_messaging_messagehandler();
         $arrGroups = array();
         $allGroups = class_module_user_group::getObjectList();
         foreach ($allGroups as $objOneGroup) {
             if (class_rights::getInstance()->checkPermissionForGroup($objOneGroup->getSystemid(), class_rights::$STR_RIGHT_EDIT, $this->getObjModule()->getSystemid())) {
                 $arrGroups[] = $objOneGroup;
             }
         }
         $objMessageHandler->sendMessage($strMailtext, $arrGroups, new class_messageprovider_guestbook());
         //Flush the page from cache
         $this->flushPageFromPagesCache($this->getPagename());
         $this->portalReload(getLinkPortalHref($this->getPagename()));
     } else {
         $strReturn = $this->getLang("commons_error_permissions");
     }
     return $strReturn;
 }
 /**
  * Creates an email to send to a friend
  * @return void
  */
 private function sendForm()
 {
     //load url the user visited before
     $strUrl = $this->getHistory(2);
     $arrUrl = explode("&", $strUrl);
     $strPage = "";
     $strSystemid = "";
     $strParams = "";
     $strAction = "";
     foreach ($arrUrl as $arrOnePart) {
         $arrPair = explode("=", $arrOnePart);
         if ($arrPair[0] == "page") {
             $strPage = $arrPair[1];
         } else {
             if ($arrPair[0] == "systemid") {
                 $strSystemid = $arrPair[1];
             } else {
                 if ($arrPair[0] == "action") {
                     $strAction = $arrPair[1];
                 } else {
                     if ($arrPair[0] != "language") {
                         $strParams .= "&" . $arrPair[0] . "=" . $arrPair[1];
                     }
                 }
             }
         }
     }
     $strHref = getLinkPortalHref($strPage, "", $strAction, $strParams, $strSystemid, $this->getStrPortalLanguage());
     $arrMessage = array();
     $arrMessage["tellafriend_url"] = "<a href=\"" . $strHref . "\">" . $strHref . "</a>";
     $arrMessage["tellafriend_receiver_name"] = htmlStripTags($this->getParam("tellafriend_receiver_name"));
     $arrMessage["tellafriend_sender_name"] = htmlStripTags($this->getParam("tellafriend_sender_name"));
     $arrMessage["tellafriend_message"] = htmlStripTags($this->getParam("tellafriend_message"));
     $strMailTemplateID = $this->objTemplate->readTemplate("/element_tellafriend/" . $this->arrElementData["tellafriend_template"], "email_html");
     $strEmailBody = $this->fillTemplate($arrMessage, $strMailTemplateID);
     $objScriptlet = new class_scriptlet_helper();
     $strEmailBody = $objScriptlet->processString($strEmailBody);
     //TODO: check if we have to remove critical characters here?
     $strSubject = $this->fillTemplate(array("tellafriend_sender_name" => htmlStripTags($this->getParam("tellafriend_sender_name"))), $this->objTemplate->readTemplate("/element_tellafriend/" . $this->arrElementData["tellafriend_template"], "email_subject"));
     //TODO: check if we have to remove critical characters here?
     $objEmail = new class_mail();
     $objEmail->setSender($this->getParam("tellafriend_sender"));
     $objEmail->setSenderName($this->getParam("tellafriend_sender_name"));
     $objEmail->addTo($this->getParam("tellafriend_receiver"));
     $objEmail->setSubject($strSubject);
     $objEmail->setHtml($strEmailBody);
     if ($objEmail->sendMail()) {
         $this->portalReload(class_link::getLinkPortalHref($this->arrElementData["tellafriend_success"]));
     } else {
         $this->portalReload(class_link::getLinkPortalHref($this->arrElementData["tellafriend_error"]));
     }
 }
 /**
  * Creates a form to collect a users data
  *
  * @return string
  */
 private function editUserData()
 {
     $arrErrors = array();
     $bitForm = true;
     //what to do?
     if ($this->getParam("submitUserForm") != "") {
         $objTextValidator = new class_text_validator();
         $objEmailValidator = new class_email_validator();
         if ($this->getParam("password") == "" || $this->getParam("password") != $this->getParam("password2")) {
             $arrErrors[] = $this->getLang("pr_passwordsUnequal");
         }
         if (!$objTextValidator->validate($this->getParam("username"))) {
             $arrErrors[] = $this->getLang("pr_noUsername");
         }
         //username already existing?
         if ($objTextValidator->validate($this->getParam("username")) && count(class_module_user_user::getAllUsersByName($this->getParam("username"))) > 0) {
             $arrErrors[] = $this->getLang("pr_usernameGiven");
         }
         if (!$objEmailValidator->validate($this->getParam("email"))) {
             $arrErrors[] = $this->getLang("pr_invalidEmailadress");
         }
         //Check captachcode
         if ($this->getParam("form_captcha") == "" || $this->getParam("form_captcha") != $this->objSession->getCaptchaCode()) {
             $arrErrors[] = $this->getLang("pr_captcha");
         }
         if (count($arrErrors) == 0) {
             $bitForm = false;
         }
     }
     if ($bitForm) {
         $strTemplateID = $this->objTemplate->readTemplate("/element_portalregistration/" . $this->arrElementData["portalregistration_template"], "portalregistration_userdataform");
         $arrTemplate = array();
         $arrTemplate["username"] = $this->getParam("username");
         $arrTemplate["email"] = $this->getParam("email");
         $arrTemplate["forename"] = $this->getParam("forename");
         $arrTemplate["name"] = $this->getParam("name");
         $arrTemplate["formaction"] = class_link::getLinkPortalHref($this->getPagename(), "", "portalCreateAccount");
         $arrTemplate["formErrors"] = "";
         if (count($arrErrors) > 0) {
             foreach ($arrErrors as $strOneError) {
                 $strErrTemplate = $this->objTemplate->readTemplate("/element_portalregistration/" . $this->arrElementData["portalregistration_template"], "errorRow");
                 $arrTemplate["formErrors"] .= "" . $this->fillTemplate(array("error" => $strOneError), $strErrTemplate);
             }
         }
         return $this->fillTemplate($arrTemplate, $strTemplateID);
     } else {
         //create new user, inactive
         $objUser = new class_module_user_user();
         $objUser->setStrUsername($this->getParam("username"));
         $objUser->setIntActive(0);
         $objUser->setIntAdmin(0);
         $objUser->setIntPortal(1);
         $objUser->setStrSubsystem("kajona");
         $strAuthcode = generateSystemid();
         $objUser->setStrAuthcode($strAuthcode);
         if ($objUser->updateObjectToDb()) {
             $objSourceuser = $objUser->getObjSourceUser();
             $objSourceuser->setStrEmail($this->getParam("email"));
             $objSourceuser->setStrForename($this->getParam("forename"));
             $objSourceuser->setStrName($this->getParam("name"));
             $objSourceuser->setStrPass($this->getParam("password"));
             $objSourceuser->updateObjectToDb();
             //group assignments
             $objGroup = new class_module_user_group($this->arrElementData["portalregistration_group"]);
             $objGroup->getObjSourceGroup()->addMember($objUser->getObjSourceUser());
             //and to the guests to avoid conflicts
             $objGroup = new class_module_user_group(class_module_system_setting::getConfigValue("_guests_group_id_"));
             $objGroup->getObjSourceGroup()->addMember($objUser->getObjSourceUser());
             //create a mail to allow the user to activate itself
             $strMailContent = $this->getLang("pr_email_body");
             $strTemp = getLinkPortalHref($this->getPagename(), "", "portalCompleteRegistration", "&authcode=" . $strAuthcode, $objUser->getSystemid());
             $strMailContent .= html_entity_decode("<a href=\"" . $strTemp . "\">" . $strTemp . "</a>");
             $strMailContent .= $this->getLang("pr_email_footer");
             $objScriptlets = new class_scriptlet_helper();
             $strMailContent = $objScriptlets->processString($strMailContent);
             $objMail = new class_mail();
             $objMail->setSubject($this->getLang("pr_email_subject"));
             $objMail->setHtml($strMailContent);
             $objMail->addTo($this->getParam("email"));
             $objMail->sendMail();
         }
         return $this->getLang("pr_register_suc");
     }
 }