/** * Returns an abstract of the current element * * @return string */ public function getContentTitle() { $this->loadElementData(); if ($this->getStrTitle() != "") { return htmlStripTags($this->getStrTitle()); } else { if ($this->getStrTextContent() != "") { return uniStrTrim(htmlStripTags($this->getStrTextContent()), 120); } else { return parent::getContentTitle(); } } }
/** * Generates an excel sheet based on the changelog entries from the given systemid * * @param string $strSystemid * * @since 4.6.6 * @permissions changelog */ protected function actionGenericChangelogExportExcel($strSystemid = "") { // include phpexcel require_once class_resourceloader::getInstance()->getCorePathForModule("module_phpexcel", true) . '/module_phpexcel/system/phpexcel/PHPExcel.php'; $objPHPExcel = new PHPExcel(); // get system id if ($strSystemid == "") { $strSystemid = $this->getSystemid(); } // get data $arrLogEntries = class_module_system_changelog::getLogEntries($strSystemid); // create excel $objPHPExcel->getProperties()->setCreator("Kajona")->setLastModifiedBy(class_carrier::getInstance()->getObjSession()->getUsername())->setTitle($this->getLang("change_report_title"))->setSubject($this->getLang("change_report_title")); $objDataSheet = $objPHPExcel->getActiveSheet(); $objDataSheet->setTitle($this->getLang("change_report_title")); $objDataSheet->setAutoFilter('A1:F' . (count($arrLogEntries) + 1)); // style $arrStyles = $this->getStylesArray(); $objDataSheet->getStyle("A1:F1")->applyFromArray($arrStyles["header_1"]); $objDataSheet->getDefaultColumnDimension()->setWidth(24); // add header $arrHeader = array(); $arrHeader[] = $this->getLang("commons_date"); $arrHeader[] = $this->getLang("change_user"); if ($strSystemid == "") { $arrHeader[] = $this->getLang("change_module"); } if ($strSystemid == "") { $arrHeader[] = $this->getLang("change_record"); } $arrHeader[] = $this->getLang("change_action"); $arrHeader[] = $this->getLang("change_property"); $arrHeader[] = $this->getLang("change_oldvalue"); $arrHeader[] = $this->getLang("change_newvalue"); $intCol = 0; $intRow = 1; foreach ($arrHeader as $strHeader) { $objDataSheet->setCellValueByColumnAndRow($intCol++, $intRow, $strHeader); } $intRow++; // add body $arrData = array(); /** @var $objOneEntry class_changelog_container */ foreach ($arrLogEntries as $objOneEntry) { $arrRowData = array(); /** @var interface_versionable|class_model $objTarget */ $objTarget = $objOneEntry->getObjTarget(); $strOldValue = $objOneEntry->getStrOldValue(); $strNewValue = $objOneEntry->getStrNewValue(); if ($objTarget != null) { $strOldValue = $objTarget->renderVersionValue($objOneEntry->getStrProperty(), $strOldValue); $strNewValue = $objTarget->renderVersionValue($objOneEntry->getStrProperty(), $strNewValue); } $strOldValue = htmlStripTags($strOldValue); $strNewValue = htmlStripTags($strNewValue); $arrRowData[] = PHPExcel_Shared_Date::PHPToExcel($objOneEntry->getObjDate()->getTimeInOldStyle()); $arrRowData[] = $objOneEntry->getStrUsername(); if ($strSystemid == "") { $arrRowData[] = $objTarget != null ? $objTarget->getArrModule("modul") : ""; } if ($strSystemid == "") { $arrRowData[] = $objTarget != null ? $objTarget->getVersionRecordName() . " " . $objOneEntry->getStrSystemid() : ""; } $arrRowData[] = $objTarget != null ? $objTarget->getVersionActionName($objOneEntry->getStrAction()) : ""; $arrRowData[] = $objTarget != null ? $objTarget->getVersionPropertyName($objOneEntry->getStrProperty()) : ""; $arrRowData[] = $strOldValue; $arrRowData[] = $strNewValue; $arrData[] = $arrRowData; } foreach ($arrData as $arrRow) { $intCol = 0; foreach ($arrRow as $strValue) { $objDataSheet->setCellValueByColumnAndRow($intCol++, $intRow, html_entity_decode(strip_tags($strValue), ENT_COMPAT, "UTF-8")); } // format first column as date $objDataSheet->getStyle('A' . $intRow)->getNumberFormat()->setFormatCode('dd.mm.yyyy hh:mm'); $intRow++; } // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="' . createFilename($this->getLang("change_report_title") . '.xlsx') . '"'); header('Pragma: private'); header('Cache-control: private, must-revalidate'); //header('Cache-Control : No Store'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); //and pass everything back to the browser $objWriter->save('php://output'); flush(); die; }
/** * Returns a list of news. * As defined in the element, this could be an archive or a normal list * * @return string */ protected function actionNewsList() { $strReturn = ""; //Load news using the correct filter if ($this->getParam("filterid") != "") { $strFilterId = $this->getParam("filterid"); } else { $strFilterId = $this->arrElementData["news_category"]; } $strPageview = 1; if ($this->getParam("pv") != 1 && $this->getSystemid() == $this->arrElementData["content_id"]) { $strPageview = $this->getParam("pv"); } //Load all posts $objArraySectionIterator = new class_array_section_iterator(class_module_news_news::getNewsCountPortal($this->arrElementData["news_mode"], $strFilterId)); $objArraySectionIterator->setIntElementsPerPage($this->arrElementData["news_amount"]); $objArraySectionIterator->setPageNumber((int) $strPageview); $objArraySectionIterator->setArraySection(class_module_news_news::loadListNewsPortal($this->arrElementData["news_mode"], $strFilterId, $this->arrElementData["news_order"], $objArraySectionIterator->calculateStartPos(), $objArraySectionIterator->calculateEndPos())); $arrNews = $this->objToolkit->simplePager($objArraySectionIterator, $this->getLang("commons_next"), $this->getLang("commons_back"), "", $this->getPagename(), "&systemid=" . $this->arrElementData["content_id"], "pv", "/module_news/" . $this->arrElementData["news_template"]); //Check rights if (!$objArraySectionIterator->valid()) { $strReturn .= $this->getLang("news_list_empty"); } foreach ($objArraySectionIterator as $objOneNews) { /** @var $objOneNews class_module_news_news */ if ($objOneNews instanceof class_module_news_news && $objOneNews->rightView()) { $objMapper = new class_template_mapper($objOneNews); //generate a link to the details $objMapper->addPlaceholder("news_more_link", class_link::getLinkPortal($this->arrElementData["news_detailspage"], "", "", $this->getLang("news_mehr"), "newsDetail", "", $objOneNews->getSystemid(), "", "", $objOneNews->getStrTitle())); $objMapper->addPlaceholder("news_more_link_href", class_link::getLinkPortalHref($this->arrElementData["news_detailspage"], "", "newsDetail", "", $objOneNews->getSystemid(), "", $objOneNews->getStrTitle())); $objMapper->addPlaceholder("news_start_date", dateToString($objOneNews->getObjStartDate(), false)); $objMapper->addPlaceholder("news_id", $objOneNews->getSystemid()); $objMapper->addPlaceholder("news_title", $objOneNews->getStrTitle()); $objMapper->addPlaceholder("news_intro", $objOneNews->getStrIntro()); $objMapper->addPlaceholder("news_text", $objOneNews->getStrText()); //reset more link? -> no text, no image and no redirect page if (uniStrlen(htmlStripTags($objOneNews->getStrText())) == 0 && uniStrlen($objOneNews->getStrImage()) == 0 && ($objOneNews->getIntRedirectEnabled() == "0" || $objOneNews->getStrRedirectPage() == "")) { $objMapper->addPlaceholder("news_more_link", ""); } //postacomment $arrPAC = $this->loadPostacomments($objOneNews->getSystemid(), $objOneNews->getStrImage() != "" ? "news_list_image" : "news_list"); if ($arrPAC != null) { $objMapper->addPlaceholder("news_nrofcomments", $arrPAC["nrOfComments"]); $objMapper->addPlaceholder("news_commentlist", $arrPAC["commentList"]); } //ratings if ($objOneNews->getFloatRating() !== null) { /** @var $objRating class_module_rating_portal */ $objRating = class_module_system_module::getModuleByName("rating")->getPortalInstanceOfConcreteModule(); $objMapper->addPlaceholder("news_rating", $objRating->buildRatingBar($objOneNews->getFloatRating(), $objOneNews->getIntRatingHits(), $objOneNews->getSystemid(), $objOneNews->isRateableByUser(), $objOneNews->rightRight3())); } //categories $objMapper->addPlaceholder("news_categories", $this->renderCategoryTitles($objOneNews)); //load template section with or without image? if ($objOneNews->getStrImage() != "") { $objMapper->addPlaceholder("news_image", urlencode($objOneNews->getStrImage())); $strOneNews = $objMapper->writeToTemplate("/module_news/" . $this->arrElementData["news_template"], "news_list_image"); } else { $strOneNews = $objMapper->writeToTemplate("/module_news/" . $this->arrElementData["news_template"], "news_list"); } //Add pe code $arrPeConfig = array("pe_module" => "news", "pe_action_edit" => "editNews", "pe_action_edit_params" => "&systemid=" . $objOneNews->getSystemid(), "pe_action_new" => "newNews", "pe_action_new_params" => "", "pe_action_delete" => "delete", "pe_action_delete_params" => "&systemid=" . $objOneNews->getSystemid()); $strReturn .= class_element_portal::addPortalEditorCode($strOneNews, $objOneNews->getSystemid(), $arrPeConfig); } } $arrWrapperTemplate = array(); $arrWrapperTemplate["news"] = $strReturn; $arrWrapperTemplate["link_forward"] = $arrNews["strForward"]; $arrWrapperTemplate["link_pages"] = $arrNews["strPages"]; $arrWrapperTemplate["link_back"] = $arrNews["strBack"]; $strReturn = $this->fillTemplate($arrWrapperTemplate, $this->objTemplate->readTemplate("/module_news/" . $this->arrElementData["news_template"], "news_list_wrapper")); 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"])); } }