コード例 #1
0
 /**
  * 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();
         }
     }
 }
コード例 #2
0
 /**
  * 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;
 }
コード例 #3
0
 /**
  * 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;
 }
コード例 #4
0
 /**
  * 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"]));
     }
 }