/** * 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"); } }