/** * Creates a forward / backward pager out of the passed array * * @param class_array_section_iterator $objArraySectionIterator * @param string $strForward text for the forwardlink * @param string $strBack text for the backwardslink * @param string $strAction action on the targetpage * @param string $strPage title of the targetpage * @param string $strAdd additional params * @param string $strPvParam the param used to create the pagenumber-entries * @param string $strTemplate if passed, the pager will render all links using the passed template (if the sections are present). Expected sections: pager_fwd, pager_back, pager_entry, pager_entry_active * * @return mixed array containing the created data: * return => [strForward] = link to the next page * [strBack] = link to the previous page * [strPages] = Pager ( [0][1] ...) */ public function simplePager($objArraySectionIterator, $strForward = "next", $strBack = "back", $strAction = "list", $strPage = "", $strAdd = "", $strPvParam = "pv", $strTemplate = "") { $arrReturn = array("arrData" => array(), "strForward" => "", "strBack" => "", "strPages" => ""); //read the template-sections, of given $bitTemplate = false; $strFwdId = ""; $strBackId = ""; $strEntryId = ""; $strEntryActiveId = ""; if ($strTemplate != "") { $strTemplateIdentifier = $this->objTemplate->readTemplate($strTemplate); $bitTemplate = $this->objTemplate->containsSection($strTemplateIdentifier, "pager_fwd") && $this->objTemplate->containsSection($strTemplateIdentifier, "pager_back") && $this->objTemplate->containsSection($strTemplateIdentifier, "pager_entry") && $this->objTemplate->containsSection($strTemplateIdentifier, "pager_entry_active"); $strFwdId = $this->objTemplate->readTemplate($strTemplate, "pager_fwd"); $strBackId = $this->objTemplate->readTemplate($strTemplate, "pager_back"); $strEntryId = $this->objTemplate->readTemplate($strTemplate, "pager_entry"); $strEntryActiveId = $this->objTemplate->readTemplate($strTemplate, "pager_entry_active"); } $strLinkPages = ""; $strLinkForward = ""; $strLinkBack = ""; $arrReturn["arrData"] = array(); $intPage = $objArraySectionIterator->getPageNumber(); //FowardLink if ($intPage < $objArraySectionIterator->getNrOfPages()) { if ($bitTemplate) { $strLinkForward = $this->objTemplate->fillTemplate(array("pageHref" => class_link::getLinkPortalHref($strPage, "", $strAction, "&" . $strPvParam . "=" . ($intPage + 1) . $strAdd)), $strFwdId); } else { $strLinkForward = class_link::getLinkPortal($strPage, "", null, $strForward, $strAction, "&" . $strPvParam . "=" . ($intPage + 1) . $strAdd); } } //BackLink if ($intPage > 1) { if ($bitTemplate) { $strLinkBack = $this->objTemplate->fillTemplate(array("pageHref" => class_link::getLinkPortalHref($strPage, "", $strAction, "&" . $strPvParam . "=" . ($intPage - 1) . $strAdd)), $strBackId); } else { $strLinkBack = class_link::getLinkPortal($strPage, "", null, $strBack, $strAction, "&" . $strPvParam . "=" . ($intPage - 1) . $strAdd); } } //just load the current +-6 pages and the first/last +-3 $intCounter2 = 1; for ($intI = 1; $intI <= $objArraySectionIterator->getNrOfPages(); $intI++) { $bitDisplay = false; if ($intCounter2 <= 3) { $bitDisplay = true; } elseif ($intCounter2 >= $objArraySectionIterator->getNrOfPages() - 3) { $bitDisplay = true; } elseif ($intCounter2 >= $intPage - 6 && $intCounter2 <= $intPage + 6) { $bitDisplay = true; } if ($bitDisplay) { if ($bitTemplate) { if ($intI == $intPage) { $strLinkPages .= $this->objTemplate->fillTemplate(array("pageHref" => class_link::getLinkPortalHref($strPage, "", $strAction, "&" . $strPvParam . "=" . $intI . $strAdd), "pageNumber" => $intI), $strEntryActiveId); } else { $strLinkPages .= $this->objTemplate->fillTemplate(array("pageHref" => class_link::getLinkPortalHref($strPage, "", $strAction, "&" . $strPvParam . "=" . $intI . $strAdd), "pageNumber" => $intI), $strEntryId); } } else { if ($intI == $intPage) { $strLinkPages .= " <strong>" . class_link::getLinkPortal($strPage, "", null, "[" . $intI . "]", $strAction, "&" . $strPvParam . "=" . $intI . $strAdd) . "</strong>"; } else { $strLinkPages .= " " . class_link::getLinkPortal($strPage, "", null, "[" . $intI . "]", $strAction, "&" . $strPvParam . "=" . $intI . $strAdd); } } } $intCounter2++; } if ($objArraySectionIterator->getNrOfPages() > 1) { $arrReturn["strForward"] = $strLinkForward; $arrReturn["strBack"] = $strLinkBack; $arrReturn["strPages"] = $strLinkPages; } return $arrReturn; }
/** * Creates a pageview * * @param class_array_section_iterator $objArraySectionIterator * @param string $strModule * @param string $strAction * @param string $strLinkAdd * * @return mixed a two-dimensional array: ["elements"] and ["pageview"] * @since 3.3.0 * * @deprecated use getPageview instead */ public function getSimplePageview($objArraySectionIterator, $strModule, $strAction, $strLinkAdd = "") { $arrReturn = array(); $intCurrentpage = $objArraySectionIterator->getPageNumber(); $intNrOfPages = $objArraySectionIterator->getNrOfPages(); $intNrOfElements = $objArraySectionIterator->getNumberOfElements(); $arrReturn["elements"] = array(); //read templates $strTemplateBodyID = $this->objTemplate->readTemplate("/elements.tpl", "pageview_body"); $strTemplateForwardID = $this->objTemplate->readTemplate("/elements.tpl", "pageview_link_forward"); $strTemplateBackwardID = $this->objTemplate->readTemplate("/elements.tpl", "pageview_link_backward"); $strTemplateListID = $this->objTemplate->readTemplate("/elements.tpl", "pageview_page_list"); $strTemplateListItemActiveID = $this->objTemplate->readTemplate("/elements.tpl", "pageview_list_item_active"); $strTemplateListItemID = $this->objTemplate->readTemplate("/elements.tpl", "pageview_list_item"); //build layout $arrTemplate = array(); $strListItems = ""; //just load the current +-4 pages and the first/last +-2 $intCounter2 = 1; for ($intI = 1; $intI <= $intNrOfPages; $intI++) { $bitDisplay = false; if ($intCounter2 <= 2) { $bitDisplay = true; } elseif ($intCounter2 >= $intNrOfPages - 1) { $bitDisplay = true; } elseif ($intCounter2 >= $intCurrentpage - 2 && $intCounter2 <= $intCurrentpage + 2) { $bitDisplay = true; } if ($bitDisplay) { $arrLinkTemplate = array(); $arrLinkTemplate["href"] = class_link::getLinkAdminHref($strModule, $strAction, $strLinkAdd . "&pv=" . $intI); $arrLinkTemplate["pageNr"] = $intI; if ($intI == $intCurrentpage) { $strListItems .= $this->objTemplate->fillTemplate($arrLinkTemplate, $strTemplateListItemActiveID); } else { $strListItems .= $this->objTemplate->fillTemplate($arrLinkTemplate, $strTemplateListItemID); } } $intCounter2++; } $arrTemplate["pageList"] = $this->objTemplate->fillTemplate(array("pageListItems" => $strListItems), $strTemplateListID); $arrTemplate["nrOfElementsText"] = class_carrier::getInstance()->getObjLang()->getLang("pageview_total", "system"); $arrTemplate["nrOfElements"] = $intNrOfElements; if ($intCurrentpage < $intNrOfPages) { $arrTemplate["linkForward"] = $this->objTemplate->fillTemplate(array("linkText" => class_carrier::getInstance()->getObjLang()->getLang("pageview_forward", "system"), "href" => class_link::getLinkAdminHref($strModule, $strAction, $strLinkAdd . "&pv=" . ($intCurrentpage + 1))), $strTemplateForwardID); } if ($intCurrentpage > 1) { $arrTemplate["linkBackward"] = $this->objTemplate->fillTemplate(array("linkText" => class_carrier::getInstance()->getObjLang()->getLang("commons_back", "commons"), "href" => class_link::getLinkAdminHref($strModule, $strAction, $strLinkAdd . "&pv=" . ($intCurrentpage - 1))), $strTemplateBackwardID); } $arrReturn["pageview"] = $this->objTemplate->fillTemplate($arrTemplate, $strTemplateBodyID); $arrReturn["elements"] = $objArraySectionIterator->getArrayExtended(true); return $arrReturn; }